Карманный справочник по ffmpeg и видео

Лето в самом разгаре, озеро ждёт, но, как известно, ни один уважающий себя админ не предаст себя блаженствам, пока не забацает какой-нибудь скрипт в консоли.

В этой заметке будет всё очень сжато и без воды... Поехали!

1. Склеить несколько видеофайлов в один.

- Создаём временные файлы элементарных транспортных потоков:
 
#for (( i=0; i<=10; i+=1 )); do ffmpeg -i videopart$i.mp4 -vcodec libx264 -bsf:v h264_mp4toannexb -f mpegts temp$i.ts ; done
 
Мы получим несколько файлов с расширением ts. Такие файлы очень легко и быстро соединять без пересчёта видеоряда.
 
- Соединяем полученные потоки в единый файл:
 
#ffmpeg -f mpegts -i "concat:temp0.ts|temp1.ts|temp2.ts|temp3.ts|temp4.ts|temp5.ts|temp6.ts|temp7.ts|temp8.ts|temp9.ts|temp10.ts|temp11.ts|temp12.ts|temp13.ts|temp14.ts" -c copy out.mp4
 
На выходе у нас будет единый файл с расширением mp4.
 
2. Обрезать видео
 
#ffmpeg -i in.mp4 -vcodec copy -acodec copy -ss <начало ЧЧ:ММ:СС.ссс> -t <длительность ЧЧ:ММ:СС.ссс> out.mp4
 
3. Синхронизировать аудио с видео
 
Параметр itsoffset указывается перед сдвигаемой дорожкой. Номер видеодорожки - 0, аудио - 1
 
#ffmpeg -itsoffset 2.8 -i input.mp4 -i input.mp4 -map 0:0 -map 1:1 -vcodec copy -acodec copy -ss 00:10:35.000 output.mp4
 
Теперь у тебя есть выбор, какой скрипт удачно запустить! Другие инструкции будут появляться здесь ниже.