Опубликовано: 2021-02-11
Обновлено: 2022-01-26
Подсказки про ffmpeg
Это для меня, т.к. изредка бывает нужно что-то сделать и начинаю снова гуглить…
Фильтры объединяются через запятую -filter:v "scale=1:1,setpts=PTS"
Объединение видео
Простой способ
Очень просто, но не всегда работает
ffmpeg -f concat -i video01.mp4 -i video02.mp4 -c copy output.mp4
или так
ffmpeg -i 'concat:video01.mp4|video02.mp4' -c copy output.mp4
Через промежуточные файлы
Тут могут возникнуть проблемы с кодеком, можно будет попробовать тогда h264_mp4toannexb
ffmpeg -i video01.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate2.ts
ffmpeg -i video02.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate2.ts
ffmpeg -i "concat:intermediate1.ts|intermediate2.ts" -c copy -bsf:a aac_adtstoasc output.mp4
Изменение разрешения видео
Делается через фильтр scale
ffmpeg -i input.mp4 -c copy -filter:v "scale=1280:960" output.mp4
Изменение скорости воспроизведения видео
Делается через фильтр setpts
Множитель является инвертированным знаением. Для ускорения в 2 раза надо умножать на 0.5
, а для замедления в 2 раза надо умножать на 2
.
ffmpeg -i input.mp4 -c copy -filter:v "setpts=0.75*PTS" output.mp4
Изменить начало и конец видео
-ss
с какого момента начать, в форматеHH:MM:SS
-t
продолжительность видео в секундах
ffmpeg -i input.mp4 -ss 00:01:20 -t 53 -c copy output.mp4
Отключить звук
-an
audio no
ffmpeg -i input.mp4 -c copy -an output.mp4
Обрезать изображение
Обрезка области производится через видео фильтр crop
. Синтаксис фильтра
crop=out_width:out_height:from_x:from_y
, где
out_width
- ширина областиout_height
- высота областиfrom_x
- точка на оси Х от которой начинатьfrom_y
- точка на оси Y от которой начинать
ffmpeg -i in.mp4 -filter:v "crop=650:600:210:120" out.mp4
Конвертирование webm в mp4
ffmpeg -fflags +genpts -i in.webm -r 24 out.mp4