ffmpeg -i input0.mp3 -i input1.mp3 -filter_complex amix=inputs=2:duration=longest output.mp3
https://stackoverflow.com/questions/14498539/how-to-overlay-downmix-two-audio-files-using-ffmpeg
ffmpeg -i input.aac -af "arnndn=model=std.rnnn:mix=1" out.aac
input.aac - исходное аудио
out.aac - результат
std.rnnn - файл модели из https://github.com/richardpl/arnndn-models (arnndn-models-master.zip)
ffmpeg -i input.mkv "%08d.png" ffmpeg -framerate 10 -i "%08d.png" -vcodec huffyuv output.mkv
mogrify -format jpg *.png mogrify -format jpg *.png && rm *.png
youtube-dl --hls-prefer-native -r 3m -o - <URL> | ffmpeg -y -i - -t 300 -c copy test.ts
Скачивает файл «<URL>» со скоростью не более 3-х мегабайт/сек (-r 3m) продолжительностью 5 минут (-t 300) в файл «test.ts»
ffmpeg -i inpit.mkv -filter:v "minterpolate=fps=60:mi_mode=mci:mc_mode=aobmc:me_mode=bidir:vsbmc=1" -vcodec huffyuv output.mkv
https://drive.google.com/file/d/1GjHINk-mZDbf_-egTIL-h8TyP2zHJUVw/view?usp=sharing
На март 2021г. в репах rpmfusion для Fedora 33 ffmpeg (4.3.2) был собран без возможности кодирования в webp, поэтому был использован ffmpeg 4.3.1 статической сборки:
4.3.2:
$ ffmpeg -hide_banner -codecs | grep webp D.VILS webp WebP
4.3.1-static:
$ ffmpeg-alt -hide_banner -codecs | grep webp DEVILS webp WebP (encoders: libwebp_anim libwebp )
ffmpeg-alt -i input.mp4 -vcodec libwebp -lossless 1 -q 60 -loop 0 -preset default -an -vsync 0 output.webp
ffmpeg -i in.mp4 -metadata:s:v rotate=-90 -c copy -y out.mp4
или
ffmpeg -display_rotation -90 -i in.mp4 -c copy out.mp4
Поворачивает видео на 90º по часовой стрелке. Не сохраняет метаданные в MKV.
ffmpeg по умолчанию записывает нефрагментированный поток MP4, из-за чего, невозможно просматривать записываемый файл одновременно с записью, а так-же получить параметры записываемого файла тем-же mediainfo.
Для получения фрагментированного MP4 файла, необходимо добавить параметр -movflags frag_keyframe и, как правило, параметр -bsf:a aac_adtstoasc. Перекодирование не требуется, параметры влияют только на контейнер.
Из исходного файла in.mp4 удаляется звук, устанавливается 10 fps и сохраняется в файл in-10fps.mkv:
mkvmerge --output in-10fps.mkv --no-audio --default-duration 0:10p in.mp4
И, уже с 10 fps в mp4:
ffmpeg -i in-10fps.mkv -c copy out-10fps.mp4
convert 1.png 1.png 2.png 2.png 1.png -morph 10 -set delay 10 out.gif
ffmpeg -reconnect 1 -reconnect_at_eof 1 -reconnect_streamed 1 -reconnect_delay_max 2 -timeout 10000000 -i ...
ffmpeg -filter_complex aevalsrc=0 -loop 1 -i picture.png -t 10 -vcodec huffyuv -y out.avi
или одна картинка с аудиотреком:
ffmpeg -loop 1 -i picture.jpg -i sound.mp3 -t 05:40 -c:v libx264 -c:a copy -y out.mkv
ffmpeg -i input.mkv -vf drawtext="text='Текст для вывода': \ font=URW Chancery L: \ fontcolor=red@.5: \ shadowcolor=gray@.5: \ shadowx=1: \ shadowy=1: \ fontsize=20: \ x=5: y=5" \ -acodec copy -crf 20 -vcodec libx264 -y output.mkv
Исходные видео:
Необходимо получить видео с общим размером 1920×1080.
Команда:
ffmpeg -i 1-up.avi -i 2-bt.avi -filter_complex "nullsrc=size=1920x1080 [base];[0:v]setpts=PTS-STARTPTS,scale=1920x768[upperleft];[1:v]setpts=PTS-STARTPTS,scale=1920x312[lowerleft];[base][upperleft]overlay=shortest=1[tmp1];[tmp1][lowerleft]overlay=shortest=1:y=769" -vcodec huffyuv -acodec copy -y 3-all.avi
Подробнее здесь.
Ещё один пример («hstack» стыкует видео по горизонтали, «vstack» - по вертикали):
ffmpeg -i left.mkv -i right.mkv -filter_complex "[0:v][1:v]hstack" -acodec copy -vcodec huffyuv -y out.mkv ffmpeg -i top.mkv -i bottom.mkv -filter_complex "[0:v][1:v]vstack" -acodec copy -vcodec huffyuv -y out.mkv
«left.mkv» и «right.mkv» имеют одинаковую высоту.
«top.mkv» и «bottom.mkv» имеют одинаковую ширину.
ffmpeg -hide_banner -y -i big.mp4 -i little.mkv -map 1:1 -filter_complex "[1]scale=iw/5:-1[pip];[0][pip]overlay=W-w-20:H-h-20:shortest=1[v];[0:a][1:a]amerge[a]" -map "[v]" -map "[a]" -c:a aac -c:v huffyuv out.mkv
Полупрозрачный
ffmpeg -hide_banner -y -i big.mp4 -i little.mkv -map 1:1 -filter_complex "[1]scale=iw/5:-1,format=rgba,colorchannelmixer=aa=0.4[pip];[0][pip]overlay=W-w-20:H-h-20:shortest=1[v];[0:a][1:a]amerge[a]" -map "[v]" -map "[a]" -c:a aac -c:v huffyuv out.mkv
Встраиваемая (little.mkv) уменьшается в пять раз (scale=iw/5:-1) и располагается в правом нижнем углу с отступом от края 20 пикс. (W-w-20:H-h-20). Звук из little.mkv ( -map 1:1).
ffmpeg -i input.mkv -i logo.png -filter_complex "[0:v][1:v]overlay=8:8" -vcodec libx264 -acodec ac3 -y output.mkv
input.mkv - Входной видео файл
logo.png - Файл логотипа
output.mkv - Выходной видео файл
8:8 - координаты логотипа (0:0 - верхний левый угол).
Выравнивает громкость аудио.
sox input.wav output.wav compand 0.3,.8 -120,-10 -10 -100 .1
ffmpeg -i input.ts -vcodec copy -af "compand=0 0:1 1:-60/-24 -48/-12 0/0:6:2:0:0" -acodec ac3 output.mkv
Установить пакет ladspa-swh-plugins
В файл /etc/pulse/default.pa добавляем:
load-module module-ladspa-sink sink_name=drc sink_master=speakers plugin=sc4_1882 label=sc4 control=1,1.5,401,-24,10,10,12 update-sink-proplist drc device.description="Dynamic Range Compressor (DRC)"
В данном примере, родительским синком для DRC канала является виртуальный синк speakers.
mplayer -vo jpeg input.avi
convert *.jpg -delay 100 -layers optimize output.gif
А можно ещё проще:
ffmpeg -i input.avi output.gif
Более качественный вариант:
ffmpeg -i input.avi -r 10 -f image2pipe -vcodec ppm - | convert -delay 5 -loop 0 -layers Optimize - output.gif
Прямое и обратное проигрывание.
Прямой файл:
convert in.avi forward.gif
Обратный файл:
convert in.avi -reverse reverse.gif
Слияние полученных файлов:
convert -coalesce forward.gif reverse.gif out.gif
vlc v4l2:///dev/video0 :v4l2-standard=SECAM :input-slave=alsa://hw:1,0
/dev/video0 - тюнер
SECAM - стандарт вещания
hw:1,0 - аудио устройство («звук по шине PCI»)
find -iname '*.mp3' -print0 | xargs -0 mid3iconv -eCP1251 --remove-v1
Необходим пакет python-mutagen
forum.russianfedora.ru
Изменено 25 мая 2013г. (Fedora 18).
ffmpeg -y -t 600 -s 800x600 -f x11grab -i :0.0+100,200 -vpre libx264-lossless_ultrafast /mnt/cap/screen.avi
Опции:
-y - Перезаписывать существующий файл -t 600 - Продолжительность записи в секундах -s 800x600 - Размер захватываемой области -f x11grab - Устройство захвата (экран) -i :0.0+100,200 - Параметры устройства захвата. Номер экрана - :0.0, координаты захватываемой области - +100,200 -vpre libx264-lossless_ultrafast - Предустановки видеокодека (быстрый способ, почти без сжатия) /mnt/cap/screen.avi - Сохраняемый файл
В Fedora 27 вместо «-vpre libx264-lossless_ultrafast» используется «-preset speed».
Содержимое файла предустановок («/usr/share/ffmpeg/libx264-lossless_ultrafast.ffpreset»):
vcodec=libx264 flags=+loop+cgop partitions=-parti8x8-parti4x4-partp8x8-partp4x4-partb8x8 me_method=dia subq=0 me_range=16 g=250 keyint_min=25 sc_threshold=40 i_qfactor=0.71 b_strategy=1 qcomp=0.6 qmin=0 qmax=69 qdiff=4
Ролик, снятый таким способом (youtube.com, 1920x1080)
Со звуком:
ffmpeg -y -t 600 -s 1920x1080 -f x11grab -i :0.0+0,0 -f alsa -ac 2 -i pulse -vpre libx264-lossless_ultrafast /mnt/cap/screen.avi
Весь экран с кодеком HuffYUV:
ffmpeg -y -s 1920x1080 -f x11grab -i :0.0+0,0 -vcodec huffyuv -y screen.avi
Сохраняются дорожки 1 (audio) и 4 (video):
mencoder input.wmv -of lavf -ovc copy -oac copy -aid 1 -vid 4 -o output.wmv
Исходный файл DTS (audio.dts):
Audio Format : DTS Format/Info : Digital Theater Systems Format profile : MA / Core Duration : 3h 9mn Bit rate mode : Variable Bit rate : 1 750 Kbps / 1 510 Kbps Channel(s) : 8 channels / 6 channels Channel positions : Front: L C R, Side: L R, Back: L R, LFE / Front: L C R, Side: L R, LFE Sampling rate : 48.0 KHz Bit depth : 16 bits Compression mode : Lossless / Lossy
Команда:
ffmpeg -i audio.dts -ab 448000 -ar 48000 -ac 6 -acodec ac3 -y audio.ac3
Результат AC3 (audio.ac3):
Audio Format : AC-3 Format/Info : Audio Coding 3 Mode extension : CM (complete main) Duration : 2h 0mn Bit rate mode : Constant Bit rate : 448 Kbps Channel(s) : 6 channels Channel positions : Front: L C R, Side: L R, LFE Sampling rate : 48.0 KHz Bit depth : 16 bits Compression mode : Lossy Stream size : 388 MiB (100%)
vobcopy -i VIDEO_TS -l -n 3
-i VIDEO_TS - Папка с структурой DVD.
-l - Возможность создать vob файл размером более 2Гб.
-n 3 - Создавать файл из третьего заголовка.
Параметры DVD можно узнать командой
Краткая информация:
lsdvd VIDEO_TS
Полная информация:
lsdvd VIDEO_TS -x
Нумерация каналов:
0 - Front Left (Передний Левый) - FL
1 - Front Right (Передний Правый) - FR
2 - Rear Left (Задний Левый) - RL
3 - Rear Right (Задний Правый) - RR
4 - Front Center (Передний Центральный) - FC
5 - Subwoofer (Сабвуфер) - SW
Преобразование шестиканального звука в двухканальный, с ослаблением всех каналов, кроме Переднего Центрального:
Входные каналы | ||||||||||||||||||||||
FL | FR | RL | RR | FC | SW | |||||||||||||||||
0.5 | 0 | 0 | 0.5 | 0.5 | 0 | 0 | 0.5 | 1 | 1 | 0.5 | 0.5 | |||||||||||
Выходные каналы | ||||||||||||||||||||||
L | R | L | R | L | R | L | R | L | R | L | R |
Первый параметр устанавливает количество выходных каналов.
-af pan=2:0.5:0:0:0.5:0.5:0:0:0.5:1:1:0.5:0.5
Преобразование 6 → 6 с усилением тыловых и переднего центрального каналов и ослаблением сабвуфера:
-af pan=6:1:0:0:0:0:0:0:1:0:0:0:0:0:0:2:0:0:0:0:0:0:2:0:0:0:0:0:0:2:0:0:0:0:0:0:0.5
Пример для ffmpeg:
ffmpeg -i 4359-rus.dts -ab 128000 -vf pan="stereo: FL<0.5*FL+1.0*FC+0.1*BC+0.1*SL : FR<0.5*FR+1.0*FC+0.1*BC+0.1*SR" -ac 2 -acodec ac3 -y 4359-rus.ac3
$ cat dvd-chapters-to-mpg VIDEO_TS 5 7 #!/usr/bin/perl $folder=@ARGV[0]; $chapter_start=@ARGV[1]; $chapter_end=@ARGV[2]; if ("$folder" eq ""){ print "\nCommand:\n"; print "dvd-chapters-to-mpg dvd_folder [chapter_start] [chapter_end]\n"; exit; } if ("$chapter_start" eq ""){ $chapter_start=1;} if ("$chapter_end" eq ""){ $chapter_end=$chapter_start;} for ($i=$chapter_start;$i<=$chapter_end;$i++){ $chap=$i; while (length ($chap)<3) {$chap="0".$chap;} print "Chapter - $chap\n"; `mencoder dvd:// -dvd-device \"$folder\" -chapter $i-$i -ovc copy -oac copy -of mpeg -o $chap.mpg`; }
Параметры запуска; dvd-chapters-to-mpg dvd_folder [chapter_start] [chapter_end]
dvd_folder - папка со структурой DVD диска (VIDEO_TS)
chapter_start - начальная глава (5)
chapter_end - конечная глава (7)
mplayer file.avi -vo png -nosound -sstep 60
Преобразование ape в wav:
mac file.ape file.wav
Преобразование wav в mp3:
lame --preset insane file.wav file.mp3
Разрезание файла mp3 на треки (необходим cue файл):
mp3splt -c file.cue file.mp3 -o "@n - @a - @t"
Где @n - номер дорожки, @a - артист, @t - композиция.
Необходимые пакеты, отсутствующие в репозиториях Fedora 18:
mp3splt-2.4.3-11.fc18.x86_64.rpm
mp3splt-gtk-0.7.3-11.fc18.x86_64.rpm
libmp3splt-0.7.3-11.fc18.x86_64.rpm
Исправление индексов:
mencoder -idx input.avi -ovc copy -oac copy -o output.avi
Перекодирование 1.mkv в o1.avi (первый проход):
mencoder 1.mkv -nosound -ovc xvid -xvidencopts vhq=1:pass=1:qpel:trellis -o /dev/null
(второй проход):
mencoder 1.mkv -oac mp3lame -aid 1 -ovc xvid -xvidencopts vhq=1:pass=2:qpel:trellis:bitrate=1563 -o o1.avi
mplayer видеофайл.avi -dumpaudio -dumpfile аудиофайл.ac3
mencoder -vf dsize=4/3 ...
Для соединения двух (и более) avi файлов:
mencoder -oac copy -ovc copy -o out.avi in-1.avi in-2.avi
mencoder -of mpeg mencoder -of help (доступные контейнеры)