Полезные команды FFmpeg для работы с аудио и видео файлами
Опубликовано: 2022-02-26FFmpeg — чрезвычайно мощный и универсальный инструмент командной строки для преобразования аудио- и видеофайлов. Это бесплатно и доступно для компьютеров с Windows, Mac и Linux. Если вы хотите соединить два видеофайла, извлечь звуковой компонент из видеофайла, преобразовать видео в анимированный GIF, 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.