Полезные команды FFmpeg для работы с аудио и видео файлами

Опубликовано: 2022-02-26

FFmpeg — чрезвычайно мощный и универсальный инструмент командной строки для преобразования аудио- и видеофайлов. Это бесплатно и доступно для компьютеров с Windows, Mac и Linux. Если вы хотите соединить два видеофайла, извлечь звуковой компонент из видеофайла, преобразовать видео в анимированный GIF, FFmpeg может сделать все это и даже больше.

Извлеките аудио из видеофайла с помощью этой простой команды FFmpeg. Извлеките аудио из видеофайла с помощью этой простой команды FFmpeg.

Полезные команды FFmpeg

FFmpeg поддерживает все популярные форматы аудио и видео. Или вы можете запустить команду ./ffmpeg -formats , чтобы получить список всех форматов, поддерживаемых вашей установкой FFmpeg. Если вы только начинаете, вот несколько команд, которые дадут вам хорошее представление о возможностях этого инструмента.

1. Разрежьте видеофайл на меньший клип

Вы можете использовать параметр смещения времени (-ss), чтобы указать отметку времени начала в формате ЧЧ:ММ:СС.мс, а параметр -t предназначен для указания фактической продолжительности клипа в секундах.

ffmpeg -i input.mp4 -ss 00:00:50.0 -codec copy -t 20 output.mp4

2. Разделите видео на несколько частей

Если вы хотите разделить большое видео на несколько меньших клипов без повторного кодирования, вам может помочь ffmpeg. Эта команда разделит исходное видео на 2 части: одна заканчивается через 50 секунд от начала, а другая начинается через 50 секунд и заканчивается в конце входного видео.

ffmpeg -i video.mp4 -t 00:00:50 -c copy small-1.mp4 -ss 00:00:50 -codec copy small-2.mp4

3. Конвертировать видео из одного формата в другой

Вы можете использовать параметр -vcodec , чтобы указать формат кодирования, который будет использоваться для выходного видео. Кодирование видео требует времени, но вы можете ускорить процесс, принудительно установив предустановку, хотя это ухудшит качество выходного видео.

ffmpeg -i youtube.flv -c:v libx264 filename.mp4

ffmpeg -i video.wmv -c:v libx264 -preset ultrafast video.mp4

4. Присоединяйте (объединяйте) видеофайлы

Если у вас есть несколько аудио- или видеофайлов, закодированных одними и теми же кодеками, вы можете объединить их в один файл с помощью FFmpeg. Создайте входной файл со списком всех исходных файлов, которые вы хотите объединить, а затем выполните эту команду.

ffmpeg -f concat -i file-list.txt -c copy output.mp4

5. Отключите звук видео (удалите звуковой компонент)

Используйте параметр -an , чтобы отключить звуковую часть видеопотока.

ffmpeg -i video.mp4 -an mute-video.mp4

6. Извлеките аудио из видео

Переключатель -vn извлекает звуковую часть из видео, и мы используем переключатель -ab для сохранения звука в виде аудиофайла MP3 со скоростью 256 кбит/с.

ffmpeg -i video.mp4 -vn -ab 256 audio.mp3

7. Превратите видео в анимированный GIF

FFmpeg — отличный инструмент для преобразования видео в анимированные GIF-файлы, и качество тоже неплохое. Используйте масштабный фильтр, чтобы указать ширину GIF, параметр -t определяет продолжительность, а -r указывает частоту кадров (fps).

ffmpeg -i video.mp4 -vf scale=500:-1 -t 10 -r 10 image.gif

8. Извлеките кадры изображения из видео

Эта команда извлечет видеокадр на отметке 15 с и сохранит его как изображение JPEG шириной 800 пикселей. Вы также можете использовать ключ -s (например, -s 400x300), чтобы указать точные размеры файла изображения, хотя это, вероятно, создаст растянутое изображение, если размер изображения не соответствует соотношению сторон исходного видеофайла.

ffmpeg -ss 00:00:15 -i video.mp4 -vf scale=800:-1 -vframes 1 image.jpg

9. Конвертируйте видео в изображения

Вы можете использовать FFmpeg для автоматического извлечения кадров изображения из видео каждые «n» секунд, и изображения сохраняются в последовательности. Эта команда сохраняет кадры изображения из видео каждые 4 секунды.

ffmpeg -i movie.mp4 -r 0.25 frames_%04d.png

10. Объедините аудио и видео файл

Вы также можете указать переключатель -shortest , чтобы завершить кодирование, когда закончится самый короткий клип.

ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -strict experimental output.mp4

ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -strict experimental -shortest output.mp4

11. Измените размер видео

Используйте переключатель размера (-s) с ffmpeg, чтобы изменить размер видео при сохранении соотношения сторон.

ffmpeg -i input.mp4 -s 480x320 -c:a copy output.mp4

12. Создайте видео слайд-шоу из изображений

Эта команда создает видео слайд-шоу, используя серию изображений с именами img001.png, img002.png и т. д. Каждое изображение будет иметь продолжительность 5 секунд (-r 1/5).

ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p slideshow.mp4

13. Добавьте изображение постера к аудио

Вы можете добавить обложку к аудиофайлу, и длина выходного видео будет такой же, как у входного аудиопотока. Это может пригодиться для загрузки MP3 на YouTube.

ffmpeg -loop 1 -i image.jpg -i audio.mp3 -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest output.mp4

14. Превратите одно изображение в видео

Используйте параметр -t, чтобы указать продолжительность видео.

ffmpeg -loop 1 -i image.png -c:v libx264 -t 30 -pix_fmt yuv420p video.mp4

15. Добавьте субтитры к фильму

Это возьмет субтитры из файла .srt. FFmpeg может декодировать все распространенные форматы субтитров.

ffmpeg -i movie.mp4 -i subtitles.srt -map 0 -map 1 -c copy -c:v libx264 -crf 23 -preset veryfast output.mkv

16. Обрежьте аудиофайл

Это создаст 30-секундный аудиофайл, начиная с 90 секунд исходного аудиофайла без перекодирования.

ffmpeg -ss 00:01:30 -t 30 -acodec copy -i inputfile.mp3 outputfile.mp3

17. Изменить громкость звука

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

ffmpeg -i input.wav -af 'volume=0.5' output.wav

18. Поверните видео

Эта команда повернет видеоклип на 90° по часовой стрелке. Вы можете установить транспонирование на 2, чтобы повернуть видео на 90° против часовой стрелки.

ffmpeg -i input.mp4 -filter:v 'transpose=1' rotated-video.mp4

Это повернет видео на 180° против часовой стрелки.

ffmpeg -i input.mp4 -filter:v 'transpose=2,transpose=2' rotated-video.mp4

19. Ускорьте или замедлите видео

Вы можете изменить скорость своего видео, используя setpts (установить отметку времени презентации) FFmpeg. Эта команда сделает видео в 8 раз (1/8) быстрее или использует setpts=4*PTS , чтобы сделать видео в 4 раза медленнее.

ffmpeg -i input.mp4 -filter:v "setpts=0.125*PTS" output.mp4

20. Ускорить или замедлить звук

Для изменения скорости звука используйте звуковой фильтр atempo . Эта команда удвоит скорость звука. Вы можете использовать любое значение от 0,5 до 2,0 для звука.

ffmpeg -i input.mkv -filter:a "atempo=2.0" -vn output.mkv

В Stack Exchange есть хороший обзор, который поможет вам начать работу с FFmpeg. Вы также должны проверить официальную документацию на ffmpeg.org или вики на trac.ffmpeg.org, чтобы узнать обо всех возможных вещах, которые вы можете сделать с FFmpeg.

Также см. Основные команды Linux.