Команды для обработки видео

FFmpeg — набор утилит командной строки, с помощью которого можно записывать, конвертировать и передавать цифровые аудио- и видео записи в различных форматах.

Получение информации о видео

C:\ffmpeg\bin\ffprobe -i src_video.mp4 -show_format
C:\ffmpeg\bin\ffprobe -i src_video.mp4 -show_streams

В различных форматах

C:\ffmpeg\bin\ffprobe -i src_video.mp4 -show_streams -print_format json -hide_banner
C:\ffmpeg\bin\ffprobe -i src_video.mp4 -show_streams -print_format xml  -hide_banner
C:\ffmpeg\bin\ffprobe -i src_video.mp4 -show_streams -print_format csv
C:\ffmpeg\bin\ffprobe -i src_video.mp4 -show_streams -print_format ini

Получение информации о файле

C:\ffmpeg\bin\ffmpeg -i src_video.mp4 -hide_banner

Перезапись существующего видеофайла

Разрешить перезапись существующего видеофайла без вывода запроса на подтверждения (флаг -y).

Запретить перезапись существующего видеофайла без вывода запроса на подтверждения (флаг -n).

Кодирование без потерь

-vcodec ffv1

Указание исходного видеофайла (флаг -i)

C:\ffmpeg\bin\ffmpeg -i 0.avi -metadata title="my title" out.flv
C:\ffmpeg\bin\ffmpeg -i 0.avi out.mp4 (размеры кадра?) h264 (libx264)
C:\ffmpeg\bin\ffmpeg -i 0.avi out.avi (качество?) mpeg4 (native)

C:\ffmpeg\bin\ffmpeg -i 0.avi -vcodec libx264rgb -b:v 2M out3.avi
C:\ffmpeg\bin\ffmpeg -i src_video.mp4 -vcodec libx264rgb -b:v 2M -acodec aac out4.avi
C:\ffmpeg\bin\ffmpeg -i src_video.mp4 -vcodec libx264rgb out4.avi

Изменение битрейта видео

C:\ffmpeg\bin\ffmpeg -i src_video.mp4 -b:v 1M test7.mp4

Изменение битрейта аудио (флаг -vn отключение видео)

C:\ffmpeg\bin\ffmpeg -i test3.flac -vn -b:a 320k test3_1.mp3

Изменение количества кадров в секунду

C:\ffmpeg\bin\ffmpeg -i src_video.mp4 -r 24 test8.mp4

Изменение размера кадра

C:\ffmpeg\bin\ffmpeg -i src_video.mp4 -s 640x480 test9.mp4

Изменение длительности (от начала в секундах)

C:\ffmpeg\bin\ffmpeg -i src_video.mp4 -t 10 test10.mp4

Вырезание куска (пропуская указанное количество в секундах)

C:\ffmpeg\bin\ffmpeg -ss 10 -i src_video.mp4 -t 10 test11.mp4

Вырезание куска (пропуская указанное количество в таймкоде)

C:\ffmpeg\bin\ffmpeg -ss 00:00:10 -i src_video.mp4 -t 10 test14.mp4

Кроп кадра

(-vf crop=w:h:x:y) константа in_w - ширина, а in_h - высота

C:\ffmpeg\bin\ffmpeg -i src_video.mp4 -vf crop=640:480:0:0 -t 30 test15.mp4
C:\ffmpeg\bin\ffmpeg -i src_video.mp4 -vf crop=640:480:in_w-700:in_h-500 -t 20 test16.mp4

Ускорение и замедление видео

(меньше 1 - ускорение, а больше - замедление) константа PTS - текущее значение

ускорение в 2 раза

C:\ffmpeg\bin\ffmpeg -i src_video.mp4 -vf setpts=0.5*PTS -t 20 test17.mp4

замедление в 2 раза

C:\ffmpeg\bin\ffmpeg -i src_video.mp4 -vf setpts=2*PTS -t 20 test18.mp4

Поворот и отражение видео

(0 - 90 гр. против часовой стрелки (и отражение), 1 - 90 гр. по часовой стрелке, 2 - 90 гр. против часовой стрелки, 3 - 90 гр. по часовой стрелке (и отражение))

C:\ffmpeg\bin\ffmpeg -i src_video.mp4 -vf transpose=1 -t 20 test18.mp4
C:\ffmpeg\bin\ffmpeg -i src_video.mp4 -vf transpose=2 -t 20 test19.mp4
C:\ffmpeg\bin\ffmpeg -i src_video.mp4 -vf transpose=3 -t 20 test20.mp4
C:\ffmpeg\bin\ffmpeg -i src_video.mp4 -vf transpose=0 -t 20 test21.mp4

rotate=угол в радианах

C:\ffmpeg\bin\ffmpeg -i src_video.mp4 -vf rotate=45*PI/180 -t 20 test22.mp4
C:\ffmpeg\bin\ffmpeg -i src_video.mp4 -vf rotate=-45*PI/180 -t 20 test23.mp4

отражение

C:\ffmpeg\bin\ffmpeg -i src_video.mp4 -vf hflip -t 20 test24.mp4
C:\ffmpeg\bin\ffmpeg -i src_video.mp4 -vf vflip -t 20 test25.mp4
C:\ffmpeg\bin\ffmpeg -i src_video.mp4 -vf hflip,vflip -t 20 test26.mp4

Добавление субтитров

C:\ffmpeg\bin\ffmpeg -i src_video.mp4 -vf subtitles=test.srt -t 20 test27.mp4

Язык субтитров

-slang rus

Содержимое файла с субтитрами (кодировка UTF-8 Unix-формат завершения строк)

1
00:00:01,0 --> 00:00:10,0
Это начало видео

2
00:00:10,116 --> 00:00:20,0
Это середина видео

Наложение логотипа на видео

test.png (координаты 10 и 10)

C:\ffmpeg\bin\ffmpeg -i src_video.mp4 -i test.png -filter_complex "[0:v][1:v]overlay=10:10" -t 20 test28.mp4

Соединение нескольких видео

C:\ffmpeg\bin\ffmpeg -i "concat:src_video.mp4|src_video2.mp4" -codec copy test29.mp4
????
C:\ffmpeg\bin\ffmpeg -i src_video.mp4 -i src_video2.mp4 -codec copy test29.mp4

Стабилизация видео

C:\ffmpeg\bin\ffmpeg -i src_video.mp4 -vf deshake=edge=0 -t 20 test28.mp4
Предыдущая статья Все статьи Следующая статья