commit 4b5c30ce094dc7bd5379517c1d7c89af02d1e5c2 from: Aleksey Ryndin date: Thu Nov 07 12:51:45 2024 UTC Add: /trap/ffmpeg_options.gmi commit - e9f6c498ddcd314f599d62a87369ee0a8b220e29 commit + 4b5c30ce094dc7bd5379517c1d7c89af02d1e5c2 blob - 3879308da7584de4ee44bea4c3012c5a9efe1596 blob + 755dad20f7c11a7614a69fdf8c4fa818d04297b4 --- capsule/atom.xml +++ capsule/atom.xml @@ -8,7 +8,13 @@ continue continue@to.any-key.press - 2024-10-28T16:01:43.965865+00:00 + 2024-11-07T12:42:37.807566+00:00 + + gemini://any-key.press/trap/ffmpeg_options.gmi + + Часто используемые команды ffmpeg для обработки видео с фото-ловушки + 2024-11-07T12:42:37.807566+00:00 + gemini://any-key.press/forth/preForth.gmi blob - b0566e0bae70d330b616e9ded2a0aa0c37aaa575 blob + fa72c14c7abace6ad9197f859ca975e8ee062e99 --- capsule/trap/index.gmi +++ capsule/trap/index.gmi @@ -25,3 +25,7 @@ ## Вокруг скелета курицы (осень 2024) => 2024-09-2x.gmi Вокруг скелета курицы + +## Узелок на память: часто используемые команды ffmpeg для обработки видео с фото-ловушки + +=> ffmpeg_options.gmi Часто используемые команды ffmpeg для обработки видео с фото-ловушки blob - /dev/null blob + 07966a171c26d9d6e46279728eaa2e856ab83e40 (mode 644) --- /dev/null +++ capsule/trap/ffmpeg_options.gmi @@ -0,0 +1,78 @@ +# Часто используемые команды ffmpeg для обработки видео с фото-ловушки + +Решил сделать для себя небольшой файл-заметку о том, какие команды запуска утилиты 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 +``` + +Подробнее: +=> https://trac.ffmpeg.org/wiki/Scaling FFmpeg wiki: Scaling + +## Склеивание общего видео файла из нескольких фрагметнов + +Предварительно необходимо сформировать файл, содержащий список путей файлов, из которых будет "склеено" результирующее видео. Пример содержимого файла для конкатенации файлов 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 +``` + +Подробнее: +=> https://trac.ffmpeg.org/wiki/Concatenate FFmpeg wiki: Concatenate + +## Вырезание фрагмента видео файла + +Довольно часто нужно обрезать видео до момента, когда объект наблюдения полностью покинул кадр. Для этого нужно запомнить до какой секунды требуется оставить исходное видео. Это значение нужно подставить в опцию -to. Например для того, что бы оставить только первые 7 секунд видео нужно выполнить следующую команду: + +``` +ffmpeg -i DSCF0005.AVI -to 00:07 DSCF0005.mp4 +``` + +Бывает и обратная ситуация, когда нужно оставить только конец видео, отбросив начало. Тут снова нужно определить с какой секунды требуется оставить исходное видео. Это значение нужно подставить в опцию -ss. Например для того, что бы отбросить первые 15 секунд видео можно выполнить следующую команду: + +``` +ffmpeg -i DSCF0005.AVI -ss 00:15 DSCF0005.mp4 +``` + +Можно комбинировать опции -to и -ss в одном вызове, что бы вырезать интересующий кусок видео, указав с какой позиции и до какой требуется оставить материал. + +Подробнее: +=> https://ffmpeg.org/ffmpeg.html#Main-options Documentation: 5.4 Main options + +## Удаление аудио + +В подавляющем большинстве случаев фото-ловушка не фиксирует в звуковых данных ничего интересного. Что бы удалить аудио можно использовать опцию -an, например: + +``` +ffmpeg -i DSCF0001.AVI -an DSCF0001.mp4 +``` + +Подробнее: +=> https://ffmpeg.org/ffmpeg.html#Audio-Options ffmpeg Documentation: 5.7 Audio Options