Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
Both sides previous revision Попередня ревізія Наступна ревізія | Попередня ревізія Наступна ревізія Both sides next revision | ||
video [2013/09/10 16:06] wombat [FFMpeg (avconv)] VP8 example added |
video [2014/06/09 22:05] wombat [Просмотр] Youtube live streams through VLC |
||
---|---|---|---|
Рядок 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 - | ||
+ | ====== Создание ====== | ||
+ | |||
+ | ===== Съёмка ===== | ||
+ | |||
+ | ===== Захват с экрана ===== | ||
+ | |||
+ | ===== Рип ===== | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ====== Обработка ====== | ||
+ | |||
+ | ===== Монтаж ===== | ||
+ | |||
+ | ===== Кодирование видео ===== | ||
+ | |||
+ | ==== 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 |