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

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


video

Розбіжності

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

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

Both sides previous revision Попередня ревізія
Наступна ревізія
Попередня ревізія
video [2017/05/14 08:14]
wombat [Монтаж] OpenShot
video [2020/05/06 21:10] (поточний)
wombat Видео из одного графического файла
Рядок 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 -
 +
 +
 +===== Извлечение кадров =====
 +[[https://​stackoverflow.com/​a/​10962408 | Fastest way to extract frames using ffmpeg?]]
 +  ffmpeg -i file.mpg -r 1/1 $filename%03d.bmp
 +
 +
 +
 +
 +
 +====== Создание ======
 +
 +===== Съёмка =====
 +
 +===== Захват с экрана =====
 +
 +==== 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).
 +===== Рип =====
 +
 +
 +
 +===== Из картинок =====
 +
 +
 +==== Один кадр ====
 +
 +[[https://​stackoverflow.com/​a/​25895709 | Creating a video from a single image for a specific duration in ffmpeg]]
 +
 +  ffmpeg -loop 1 -i image.png -c:v libx264 -t 15 -pix_fmt yuv420p -vf scale=320:​240 out.mp4
 +
 +Здесь ''​-t 15''​ обозначает длительность 15 секунд,​ а ''​-vf scale=320:​240''​ устанавливает ширину и высоту кадра.
 +
 +  ​
 +  ​
 +
 +==== Много кадров ====
 +FIXME
 +
 +
 +
 +
 +
 +
 +
 +====== Обработка ======
 +
 +===== Монтаж =====
 +
 +==== OpenShot ====
 +
 +[[http://​www.openshot.org/​ | OpenShot]] -- простой видеоредактор. Хорош для простого монтажа и создания видео из фрагментов видеофайлов,​ аудиофайлов,​ картинок. Графический интерфейс написан на языке Python и использует библиотеку ''​PyQt''​. Версии 1.X были основаны на библиотеке [[https://​www.mltframework.org/​ | MLT]]. Начиная с версии 2.0 используется своя собственная библиотека [[http://​www.openshot.org/​libopenshot/​ | LibOpenShot]].
 +
 +==== Соединение роликов ====
 +
 +[[https://​video.stackexchange.com/​a/​10401 | How to concatenate clips from the same video with ffmpeg]]
 +
 +=== Демультиплескором ===
 +
 +Соединять видеоролики таким способом можно только при условии,​ что они имеют одинаковый формат:​ размеры кадра, кодеки,​ ... и т.д.
 +
 +Создаём файл, в котором перечислено,​ какие фрагменты из каких файлов необходимо соединить(([[http://​ffmpeg.org/​ffmpeg-formats.html#​concat-1 | FFmpeg Documentation]],​ [[https://​trac.ffmpeg.org/​wiki/​Concatenate | FFmpeg wiki: Concatenating media files]], [[https://​ffmpeg.org/​faq.html#​toc-How-can-I-join-video-files_003f | FFmpeg FAQ]])):
 +
 +<file txt concat.txt>​
 +file '​part1.mkv'​
 +
 +file '​part2.mkv'​
 +duration 00:​00:​04.080
 +inpoint 00:​00:​02.000
 +outpoint 00:​00:​03.000
 +
 +file '​part3.mkv'​
 +duration 300
 +inpoint 15
 +outpoint 25
 +</​file>​
 +
 +В этом файле ''​part1.mkv'',​ ''​part2.mkv''​ и ''​part3.mkv''​ -- видеоролики,​ части которых нам надо соединить. После параметра ''​duration''​ указывается длительность соответствующего ролика. Параметр ''​inpoint''​ показывает начальный момент времени,​ с которого нужно считывать фрагмент. Параметр ''​outpoint''​ показывает конечный момент времени в ролике,​ до которого его нужно считывать. Все эти параметры относятся к предшествующему параметру ''​file''​. Соответственно,​ аналогичные параметры,​ стоящие после второго упоминания ''​file'',​ будут относиться уже ко второму ролику.
 +
 +Как видим, время можно указывать либо в формате ''​чч:​мм:​сс.мс'',​ либо одним числом в секундах.
 +
 +Другой вариант этой процедуры -- сначала вырезать нужные фрагменты из каждого ролика:​
 +
 +  ffmpeg -ss 00:​00:​02.000 -i video2.mkv -t 1 part2.mkv
 +  ffmpeg -ss 15 -i video3.mkv -t 10 part3.mkv
 +
 +затем опустить все параметры в файле ''​concat.txt'',​ оставить только имена файлов:​
 +
 +<file txt concat.txt>​
 +file '​part1.mkv'​
 +file '​part2.mkv'​
 +file '​part3.mkv'​
 +</​file>​
 +
 +Затем, когда файл тем или иным образом составлен,​ можно запустить собственно соединение:​
 +
 +  ffmpeg -f concat -i concat.txt -codec copy output.mkv
 +
 +
 +=== Фильтром ===
 +
 +Применяя фильтр ''​concat'',​ можно соединять даже видеоролики,​ бывшие в разных форматах и закодированные разными кодеками. Использовать этот фильтр удобно в комбинации с фильтром ''​trim'',​ который вырезает нужный фрагмент из видеоролика. Важно при этом не забыть об одновременном применении фильтра ''​atrim'',​ который вырезает нужный фрагмент из аудиодорожки. Как правило,​ вырезанные фрагменты видео и аудио должны совпадать по времени.
 +
 +  ffmpeg -i part1.mkv -i part2.mkv -i part1.mkv \
 +  -filter_complex \
 +  "​[1:​v]trim=start=2:​end=3,​setpts=PTS-STARTPTS[v1];​ \
 +   ​[1:​a]atrim=start=2:​end=3,​asetpts=PTS-STARTPTS[a1];​ \
 +   ​[2:​v]trim=15:​25,​setpts=PTS-STARTPTS[v2];​
 +   ​[2:​a]atrim=15:​25,​asetpts=PTS-STARTPTS[a2];​ \
 +   ​[0:​v][0:​a][v1][a1][v2][a2]concat=n=3:​v=1:​a=1[out]"​ \
 +  -map "​[out]"​ output.mkv
 +
 +Такая команда передаст первый ролик из файла ''​part1.mkv''​ целиком в фильтр ''​concat'',​ т.к. мы не применяли к нему обрезку (''​trim''​). При этом видеодорожка из этого файла обозначается ''​[0:​v]'',​ а аудиодорожка -- ''​[0:​a]''​. Из второго входного файла ''​part2.mkv''​ будет вырезан фрагмент со 2й по 3ю секунды,​ и затем передан фильтру ''​concat''​ под обозначением ''​[v1]''​ для видео и ''​[a1]''​ для аудио. Из третьего файла ''​part1.mkv''​ будет вырезан фрагмент с 15й по 25ю секунды и тоже передан фильтру ''​concat''​. ​
 +
 +Если при вырезании фрагмента будет отсутствовать параметр ''​start='',​ это обозначает,​ что фрагмент должен начинаться с самого начала,​ а если отсутствует параметр ''​end='',​ это обозначает,​ что фрагмент должен длиться до конца.
 +
 +В качестве параметров фильтру ''​concat''​ передаётся количество входных фрагментов (''​n=3''​),​ количество видеодорожек в выходном файле (''​v=1''​) и количество аудиодорожек в выходном файле (''​a=1''​).
 +
 +
 +
 +
 +
 +===== Кодирование видео =====
 +
 +==== 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
 +
 +
 +Объединение видеодорожки из файла ''​Video.mkv''​ и аудиодорожки из файла ''​Separate_audio.ogg''​ без перекодирования:​
 +
 +  ffmpeg -i Video.mkv -i Separate_audio.ogg -map 0:v -map 1:a -сodec copy ResultVideo.mkv
 +
 +То же самое, с перекодированием только аудиодорожки:​
 +
 +  ffmpeg -i Video.mkv -i separate_audio.wav -map 0:v -map 1:a -vcodec copy -acodec libvorbis -q 3 ResultVideo.mkv
 +  ​
 +Название аудиодорожек(([[https://​superuser.com/​a/​835069 | How do I name an audio track with ffmpeg]])):
 +  ffmpeg -i Video.mkv -i audio1.ogg -i audio2.ogg -map 0:v -map 1:a -map 2:a -codec copy -metadata:​s:​a:​0 title="​Звуковая дорожка 1" -metadata:​s:​a:​1 title="​Звуковая дорожка 2" ResultVideo.mkv
 +  ​
 +  ​
 +===== Создание DVD =====
 +
 +[[dvd|Создание Video DVD]]
 +
 +====== Вещание ======
 +
 +====== Полезные ссылки ======
 +
 +https://​libav.org/​avconv.html#​libx264
 +https://​sites.google.com/​site/​linuxencoding/​x264-ffmpeg-mapping
video.1494749640.txt.bz2 · В останнє змінено: 2017/05/14 08:14 by wombat