Користувальницькькі налаштування

Налаштування сайту


video

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Both sides previous revision Попередня ревізія
video [2014/07/26 21:28]
wombat [Захват с экрана]
video [2017/05/14 08:14] (поточний)
wombat [Монтаж] OpenShot
Рядок 1: Рядок 1:
 +====== Просмотр ======
  
 +===== Локальные файлы =====
 +
 +==== В консоли ====
 +
 +  mplayer -fs -zoom -vo x11 -display :0.0 /​home/​Clips/​Dakh\ Daughters\ \ Rozy\ \ \ Donbass-IHJprqxIwdc.webm
 +  ​
 +===== URL =====
 +
 +==== Youtube ====
 +
 +=== Live streams ===
 +
 +  youtube-dl -g https://​www.youtube.com/​watch?​v=<​video_ID>​ | vlc -
 +====== Создание ======
 +
 +===== Съёмка =====
 +
 +===== Захват с экрана =====
 +
 +==== ffmpeg (avconv) ====
 +
 +  avconv -f x11grab -s 300x140 -r 25 -i :0.0+10,20 -an -sn -vcodec libvpx -vb 20k /​tmp/​out.mkv
 +
 +Вырежет из экрана прямоугольник шириной 300 пикселей и высотой 140 пикселей,​ начиная с координат (10,20). Т.е. смещённый вправо от левого края экрана на 10 пикселей и вниз от верхнего края экрана -- на 20 пикселей.
 +При этом кодек может быть какой угодно. Однако,​ вероятно,​ стоит придерживаться того правила,​ что для того, чтобы придерживаться реального времени,​ компьютер должен успевать обрабатывать заданное число кадров в секунду. В примере выше это 25 кадров в секунду. И при высоком разрешении и относительно слабом компьютере,​ вероятно,​ стоит использовать кодек, менее требовательный к ресурсам ПК (например,​ XviD или даже MPEG2).
 +===== Рип =====
 +
 +
 +
 +
 +====== Обработка ======
 +
 +===== Монтаж =====
 +
 +==== OpenShot ====
 +
 +[[http://​www.openshot.org/​ | OpenShot]] -- простой видеоредактор. Хорош для простого монтажа и создания видео из фрагментов видеофайлов,​ аудиофайлов,​ картинок. Графический интерфейс написан на языке Python и использует библиотеку ''​PyQt''​. Версии 1.X были основаны на библиотеке [[https://​www.mltframework.org/​ | MLT]]. Начиная с версии 2.0 используется своя собственная библиотека [[http://​www.openshot.org/​libopenshot/​ | LibOpenShot]].
 +
 +
 +===== Кодирование видео =====
 +
 +==== Mencoder ====
 +
 +=== XviD ===
 +
 +  time mencoder -vf yadif=0,​hqdn3d=0:​0:​15:​15,​scale=360:​288 -ovc xvid -xvidencopts bitrate=500:​threads=2 -nosound -lavcopts acodec=libmp3lame:​abitrate=64 ​ -o /​mnt/​multimedia/​encoded.avi /​mnt/​multimedia/​Мой\ фильм.avi
 +
 +  time mencoder -vf yadif=0,​hqdn3d=0:​0:​15:​15 -ovc xvid -xvidencopts bitrate=1200:​threads=2 -oac lavc -lavcopts acodec=libmp3lame:​abitrate=64 ​ -o /​mnt/​multimedia/​encoded.avi /​mnt/​multimedia/​Мой\ фильм.avi
 +
 +    time (mencoder -dvd-device /temp/ dvd://1 -vf yadif=0,​scale=704:​528,​dsize=4/​3 -nosound -ovc xvid -xvidencopts pass=1:​bitrate=1200:​threads=2 -o Rojdennie_mislit-1-video.avi && mencoder -dvd-device /temp/ dvd://1 -vf yadif=0,​scale=704:​528,​dsize=4/​3 -nosound -ovc xvid -xvidencopts pass=2:​bitrate=1200:​threads=2 -o Rojdennie_mislit-1-video.avi)
 +
 +=== x264 ===
 +
 +
 +  /​x264-enc-2p.sh "​-nosound /​mnt/​multimedia/​Films/​ToRecompress/​show_32.avi"​ 935 "​scale=576:​432,​dsize=4/​3,"​
 +
 +
 +<file bash x264-enc-2p.sh>​
 +#​!/​bin/​bash ​
 +# x264-enc-3p.sh
 +source="​$1" ​
 +bitrate="​$2" ​
 +filters="​$3" ​
 +name="​$(date +%F-%T)"​.avi ​
 +log="​$name"​.log
 +
 +# With niceness = 19 (the lowest priority
 +#​E1="​nice -n 19 mencoder "​$source"​ -vf pullup,​softskip,"​$filters"​harddup -ovc x264 -x264encopts threads=2:​subq=1:​frameref=1:​bframes=3:​b_pyramid=normal:​direct_pred=auto:​bitrate=$bitrate"​
 +#​E2="​nice -n 19 mencoder "​$source"​ -vf pullup,​softskip,"​$filters"​harddup -ovc x264 -x264encopts threads=2:​psnr:​ssim:​b_adapt=2:​deblock:​cabac:​chroma_me:​subq=9:​partitions=all:​8x8dct:​me=umh:​nofast_pskip:​nodct_decimate:​me_range=16:​trellis=2:​frameref=5:​bframes=3:​b_pyramid=normal:​weight_b:​mixed_refs:​direct_pred=auto:​bitrate=$bitrate"​
 +
 +# With niceness = 0 (normal priority)
 +#​E1="​mencoder "​$source"​ -vf pullup,​softskip,"​$filters"​harddup -ovc x264 -x264encopts threads=2:​subq=1:​frameref=1:​bframes=3:​b_pyramid=normal:​direct_pred=auto:​bitrate=$bitrate"​
 +#​E2="​mencoder "​$source"​ -vf pullup,​softskip,"​$filters"​harddup -ovc x264 -x264encopts threads=2:​psnr:​ssim:​b_adapt=2:​deblock:​cabac:​chroma_me:​subq=9:​partitions=all:​8x8dct:​me=umh:​nofast_pskip:​nodct_decimate:​me_range=16:​trellis=2:​frameref=5:​bframes=3:​b_pyramid=normal:​weight_b:​mixed_refs:​direct_pred=auto:​bitrate=$bitrate"​
 +E1="​mencoder "​$source"​ -vf "​$filters"​harddup -ovc x264 -x264encopts threads=2:​subq=1:​frameref=1:​bframes=3:​b_pyramid=normal:​direct_pred=auto:​bitrate=$bitrate"​
 +E2="​mencoder "​$source"​ -vf "​$filters"​harddup -ovc x264 -x264encopts threads=2:​psnr:​ssim:​b_adapt=2:​deblock:​cabac:​chroma_me:​subq=9:​partitions=all:​8x8dct:​me=umh:​nofast_pskip:​nodct_decimate:​me_range=16:​trellis=2:​frameref=5:​bframes=3:​b_pyramid=normal:​weight_b:​mixed_refs:​direct_pred=auto:​bitrate=$bitrate"​
 +
 +
 +time (\
 +time $E1:pass=1 -o /dev/null && \
 +time $E2:pass=2 -o "​$name"​ && \
 +echo "​Encoding time:"​)
 +
 +rm -v divx2pass.log
 +
 +
 +#(time (\ 
 +#time $E1:pass=1 -o /dev/null && \
 +#time $E2:pass=2 -o "​$name"​ && \
 +#echo "​Encoding time:"​) &> "​$log";​ \
 +#)&
 +
 +#rm -v divx2pass.log
 +#(time (\ 
 +#time $E1:pass=1 -o /dev/null && \ 
 +#time $E2:pass=2 -o "​$name"​ && \ 
 +#echo "​Encoding time:"​) &> "​$log";​\ ​
 +#rm -v divx2pass.log*\ ​
 +#) &
 +
 +#(time (\ 
 +#time $e:pass=1 -o /dev/null && \ 
 +#time $e:pass=3 -o /dev/null && \ 
 +#time $e:pass=3 -o "​$name"​ && \ 
 +#echo "​Encoding time:"​) &> "​$log";​\ ​
 +#rm -v divx2pass.log*\ ​
 +#) &
 +#tail -f "​$log"​
 +</​file>​
 +
 +<file bash x264-enc-3p.sh>​
 +#​!/​bin/​bash ​
 +# x264-enc-3p.sh
 +source="​$1" ​
 +bitrate="​$2" ​
 +filters="​$3" ​
 +name="​$(date +%F-%T)"​.avi ​
 +log="​$name"​.log
 +# 21 
 +#​e="​mencoder "​$source"​ -vf pullup,​softskip,"​$filters"​harddup -ovc x264 -x264encopts threads=auto:​psnr:​ssim:​ b_adapt=2:​deblock:​cabac:​chroma_me:​subq=9:​partitions=all:​8x8dct:​me=umh:​nofast_pskip:​nodct_decimate:​ me_range=32:​trellis=2:​frameref=16:​bframes=16:​b_pyramid:​weight_b:​mixed_refs:​direct_pred=auto:​ keyint=750:​keyint_min=25:​direct_8x8=-1:​aq_mode=1:​aq_strength=1.0:​psy_rd=1.0,​0.0:​bitrate=$bitrate"​(
 +#​e="​mencoder "​$source"​ -vf pullup,​softskip,"​$filters"​harddup -ovc x264 -x264encopts threads=2:​psnr:​ssim:​b_adapt=2:​deblock:​cabac:​chroma_me:​subq=9:​partitions=all:​8x8dct:​me=umh:​nofast_pskip:​nodct_decimate:​me_range=32:​trellis=2:​frameref=16:​bframes=16:​b_pyramid:​weight_b:​mixed_refs:​direct_pred=auto:​keyint=750:​keyint_min=25:​direct_8x8=-1:​aq_mode=1:​aq_strength=1.0:​psy_rd=1.0,​0.0:​bitrate=$bitrate"​
 +
 +# With niceness = 19 (the lowest priority
 +#​E1="​nice -n 19 mencoder "​$source"​ -vf pullup,​softskip,"​$filters"​harddup -ovc x264 -x264encopts threads=2:​subq=1:​frameref=1:​bframes=3:​b_pyramid=normal:​direct_pred=auto:​bitrate=$bitrate"​
 +#​E2="​nice -n 19 mencoder "​$source"​ -vf pullup,​softskip,"​$filters"​harddup -ovc x264 -x264encopts threads=2:​psnr:​ssim:​b_adapt=2:​deblock:​cabac:​chroma_me:​subq=9:​partitions=all:​8x8dct:​me=umh:​nofast_pskip:​nodct_decimate:​me_range=16:​trellis=2:​frameref=5:​bframes=3:​b_pyramid=normal:​weight_b:​mixed_refs:​direct_pred=auto:​bitrate=$bitrate"​
 +
 +# With niceness = 0 (normal priority)
 +E1="​mencoder "​$source"​ -vf pullup,​softskip,"​$filters"​harddup -ovc x264 -x264encopts threads=2:​subq=1:​frameref=1:​bframes=3:​b_pyramid=normal:​direct_pred=auto:​bitrate=$bitrate"​
 +E2="​mencoder "​$source"​ -vf pullup,​softskip,"​$filters"​harddup -ovc x264 -x264encopts threads=2:​psnr:​ssim:​b_adapt=2:​deblock:​cabac:​chroma_me:​subq=9:​partitions=all:​8x8dct:​me=umh:​nofast_pskip:​nodct_decimate:​me_range=16:​trellis=2:​frameref=5:​bframes=3:​b_pyramid=normal:​weight_b:​mixed_refs:​direct_pred=auto:​bitrate=$bitrate"​
 +
 +#​E2="​mencoder "​$source"​ -vf pullup,​softskip,"​$filters"​harddup -ovc x264 -x264encopts threads=2:​psnr:​ssim:​ b_adapt=2:​deblock:​cabac:​chroma_me:​subq=6:​partitions=all:​8x8dct:​me=umh:​nofast_pskip:​nodct_decimate:​me_range=32:​trellis=2:​frameref=5:​bframes=3:​b_pyramid:​weight_b:​mixed_refs:​direct_pred=auto:​keyint=750:​keyint_min=25:​direct_8x8=-1:​aq_mode=1:​aq_strength=1.0:​psy_rd=1.0,​0.0:​bitrate=$bitrate"​
 +#​E2="​mencoder "​$source"​ -vf pullup,​softskip,"​$filters"​harddup -ovc x264 -x264encopts threads=2:​subq=1:​frameref=1:​bframes=3:​b_pyramid=normal:​direct_pred=auto:​bitrate=$bitrate"​
 +
 +
 +time (\ 
 +time $E1:pass=1 -o /dev/null && \
 +time $E2:pass=2 -o "​$name"​ && \
 +echo "​Encoding time:"​)
 +
 +rm -v divx2pass.log
 +
 +
 +#(time (\ 
 +#time $E1:pass=1 -o /dev/null && \
 +#time $E2:pass=2 -o "​$name"​ && \
 +#echo "​Encoding time:"​) &> "​$log";​ \
 +#)&
 +
 +#rm -v divx2pass.log
 +#(time (\ 
 +#time $E1:pass=1 -o /dev/null && \ 
 +#time $E2:pass=2 -o "​$name"​ && \ 
 +#echo "​Encoding time:"​) &> "​$log";​\ ​
 +#rm -v divx2pass.log*\ ​
 +#) &
 +
 +#(time (\ 
 +#time $e:pass=1 -o /dev/null && \ 
 +#time $e:pass=3 -o /dev/null && \ 
 +#time $e:pass=3 -o "​$name"​ && \ 
 +#echo "​Encoding time:"​) &> "​$log";​\ ​
 +#rm -v divx2pass.log*\ ​
 +#) &
 +#tail -f "​$log"​
 +</​file>​
 +
 +==== FFMpeg (avconv) ====
 +
 +  avconv [global options] [[infile options][-i infile]]... {[outfile options] outfile}...
 +
 +
 +=== VP8 ===
 +
 +  avconv -i input_movie.mp4 -vcodec libvpx -vb 20k -r 25 -s 320x180 -pass 1 -an -sn -y output_movie-20k.mkv
 +  avconv -i input_movie.mp4 -vcodec libvpx -vb 20k -r 25 -s 320x180 -pass 2 -acodec libvorbis -ac 1 -aq 0 -sn -y output_movie-20k.mkv
 +
 +=== x264 ===
 +
 +[[https://​libav.org/​avconv.html#​libx264 | Параметры кодека x264]]
 +
 +    avconv -ss 60 -i input_movie.avi -vf hqdn3d=10:​10:​10:​10 -vcodec libx264 -vb 2800k -r 30 -acodec libvorbis -ac 1 -aq -1 -sn -t 10 -y output_movie-denoise-2800.mkv
 +
 +В приведённом примере происходит перекодирование видео с 60-й по 70-ю секунды видеокодеком x264 с потоком видео в 2800 кбит/​с,​ частотой кадров 30 кадров/​с и аудиокодеком Vorbis с качеством "​-1"​.
 +
 +''​-ss 60''​ -- перемотка на 60-ю секунду исходного видеофайла
 +
 +''​-vf hqdn3d=10:​10:​10:​10''​ -- использование видеофильтра //hqdn3d// для подавления шумов; объяснение параметров ниже
 +
 +''​-vcodec libx264''​ -- использование библиотеки //libx264// для кодирования видео
 +
 +''​-vb 2800k''​ -- видеопоток 2800 кбит/с
 +
 +''​-r 30''​ -- частота кадров 30 кадров/​с
 +
 +''​-acodec libvorbis''​ -- использование библиотеки //​libvorbis//​ для кодирования аудио
 +
 +''​-ac 1''​ -- количество каналов в звуковой дорожке;​ в данном случае -- 1 канал
 +
 +''​-aq -1''​ -- качество кодирования Vorbis; в данном случае "​-1"​
 +
 +''​-sn''​ -- нет субтитров
 +
 +''​-t 10''​ -- длительность результирующего видео; в данном случае -- 10 секунд
 +
 +
 +=== XviD ===
 +
 +Согласно [[http://​libav.org/​faq.html#​How-do-I-encode-Xvid-or-DivX-video-with-avconv_003f | инструкции]] от разработчиков ''​libav'',​ для кодирования видео кодеком ''​XviD''​ нужно указывать параметр ''​-c:​v mpeg4''​. При этом значение параметра ''​fourcc''​ в конечном файле по умолчанию будет выставлено в ''​FMP4''​. Чтобы изменить это значение,​ можно воспользоваться параметром ''​-vtag''​ и указать любое значение. Например,​ ''​-vtag xvid''​.
 +
 +  avconv -i input_film.VOB -vtag xvid -c:v mpeg4 -b:v 1000k -r 25 -pass 1 -an -sn -y output_movie-1000k.mkv
 +  avconv -i input_film.VOB -vtag xvid -c:v mpeg4 -b:v 1000k -r 25 -pass 2 -acodec libvorbis -aq 1 -ac 2 -sn -y output_movie-1000k.mkv
 +  ​
 +===== Кодирование аудио =====
 +
 +  mplayer -dvd-device /mnt/cdrom/ mplayer dvd://1 -vc null -vo null -ao pcm:​file=audio.fifo:​waveheader:​fast
 +
 +
 +
 +  oggenc -o Rojdennie_mislit-1-audio.ogg -q2 audio.fifo
 +  ​
 +
 +
 + 
 +
 +
 +
 +===== Фильтры =====
 +
 +==== Видеофильтры ====
 +
 +=== Изменение размера ===
 +
 +  mplayer -vf crop=620:​432:​10:​0,​scale=576:​432,​dsize=4/​3 -nosound /​mnt/​multimedia/​Films/​ToRecompress/​show_22.avi
 +
 +  mplayer -vf scale=576:​432,​dsize=4/​3 -nosound /​mnt/​multimedia/​Films/​ToRecompress/​show_26.avi
 +
 +  mplayer -vf scale=576:​432,​dsize=4/​3 -endpos 1497 -nosound /​mnt/​multimedia/​Films/​ToRecompress/​show_33_34.avi
 +
 +=== Обрезка краёв ===
 +
 +  mplayer -vf crop=624:​480:​16:​0,​scale=576:​432,​dsize=4/​3 -ss 1497 -nosound /​mnt/​multimedia/​Films/​ToRecompress/​show_33_34.avi
 +
 +  mplayer -vf crop=624:​480:​16:​0,​scale=576:​432,​dsize=4/​3 -nosound /​mnt/​multimedia/​Films/​ToRecompress/​show_35.avi
 +
 +=== Подавление шумов ===
 +
 +  mplayer -ss 510 -vf hqdn3d=0:​0:​15:​15 -ao null dvd://2 -dvd-device /​mnt/​lan/​data/​Родина\ или\ смерть\!\ \(Фидель\ Кастро\)/​
 +
 +
 +=== Добавление чёрных полос ===
 +
 +
 +==== Аудиофильтры ====
 +
 +
 +====== Выпуск ======
 +
 +===== Мультиплексирование =====
 +
 +  mkvmerge -o Rojdennie_mislit-1.mkv Rojdennie_mislit-1-video.avi -y 0:250 Rojdennie_mislit-1-audio.ogg
 +
 +  mkvmerge -o Patria.mkv 2010-05-23-01\:​13\:​27.avi -y 0:0 /​mnt/​data/​Patria_o_muerte.ogg
 +
 +  mkvmerge -o show_31.mkv 2010-05-23-07\:​37\:​34.avi -y 0:400 show_31.ogg
 +
 +===== Создание DVD =====
 +
 +[[dvd|Создание Video DVD]]
 +
 +====== Вещание ======
 +
 +====== Полезные ссылки ======
 +
 +https://​libav.org/​avconv.html#​libx264
 +https://​sites.google.com/​site/​linuxencoding/​x264-ffmpeg-mapping
video.txt · В останнє змінено: 2017/05/14 08:14 by wombat