| Порівняння попередніх версійПопередня ревізіяНаступна ревізія | Попередня ревізія |
| video [2013/05/21 21:30] – [Создание DVD] wombat | video [2021/03/25 14:21] (поточний) – [Багато кадрів] wombat |
|---|
| | ====== Просмотр ====== |
| |
| | ===== Локальные файлы ===== |
| | |
| | ==== В консоли ==== |
| | |
| | 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'' устанавливает ширину и высоту кадра. |
| | |
| | |
| | |
| | |
| | ==== Багато кадрів ==== |
| | |
| | Якщо файли названо: |
| | |
| | img001.jpg |
| | img002.jpg |
| | img003.jpg |
| | ... |
| | |
| | то поєднати їх в одному відео можна наступною командою: |
| | |
| | ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf "fps=25,format=yuv420p" out.mp4 |
| | |
| | При цьому параметр "''-r 1/5''" позначає, що одне зображення триматиметься протягом 5 секунд відео. Якщо потрібно змінювати швидше, наприклад, 2 картинки на секунду відео, то можна вказати просто "''-r 2''". |
| | |
| | |
| | ====== Обработка ====== |
| | |
| | ===== Монтаж ===== |
| | |
| | ==== 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 |