Решил сделать для себя небольшой файл-заметку о том, какие команды запуска утилиты ffmpeg я использую наиболее часто.
Самый базовый интерфейс заключается в том, что бы в аргументе -i указать входной файл, а последним аргументом командной строки указать выходной файл. Например для конвертации из DSCF0001.AVI в DSCF0001.mp4 можно выполнить следующую команду:
ffmpeg -i DSCF0001.AVI DSCF0001.mp4
Фото-ловушка пишет видео в разрешении 3840 на 2160. Файлы получаются слишком большими, особенно для выкладывания их в сеть. Поэтому (перед тем как делиться видео) я уменьшаю разрешение видео.
Пример для 1920 на 1080:
ffmpeg -i DSCF0001.AVI -vf scale=1920x1080 DSCF0001.mp4
Пример для 1280 на 720:
ffmpeg -i DSCF0001.AVI -vf scale=1280x720 DSCF0001.mp4
Подробнее:
Предварительно необходимо сформировать файл, содержащий список путей файлов, из которых будет "склеено" результирующее видео. Пример содержимого файла для конкатенации файлов DSCF0001.AVI, DSCF0002.AVI и DSCF0003.AVI:
$ cat /tmp/files.txt file '/path/to/DSCF0001.AVI' file '/path/to/DSCF0002.AVI' file '/path/to/DSCF0003.AVI'
Команда последовательного объединения файлов DSCF0001.AVI, DSCF0002.AVI и DSCF0003.AVI в результирующий файл DSCF0001-3.mp4 будет выглядеть так:
ffmpeg -f concat -safe 0 -i /tmp/files.txt DSCF0001-3.mp4
Подробнее:
Довольно часто нужно обрезать видео до момента, когда объект наблюдения полностью покинул кадр. Для этого нужно запомнить до какой секунды требуется оставить исходное видео. Это значение нужно подставить в опцию -to. Например для того, что бы оставить только первые 7 секунд видео нужно выполнить следующую команду:
ffmpeg -i DSCF0005.AVI -to 00:07 DSCF0005.mp4
Бывает и обратная ситуация, когда нужно оставить только конец видео, отбросив начало. Тут снова нужно определить с какой секунды требуется оставить исходное видео. Это значение нужно подставить в опцию -ss. Например для того, что бы отбросить первые 15 секунд видео можно выполнить следующую команду:
ffmpeg -i DSCF0005.AVI -ss 00:15 DSCF0005.mp4
Можно комбинировать опции -to и -ss в одном вызове, что бы вырезать интересующий кусок видео, указав с какой позиции и до какой требуется оставить материал.
Подробнее:
Documentation: 5.4 Main options
В подавляющем большинстве случаев фото-ловушка не фиксирует в звуковых данных ничего интересного. Что бы удалить аудио можно использовать опцию -an, например:
ffmpeg -i DSCF0001.AVI -an DSCF0001.mp4
Подробнее: