Я пытаюсь использовать ffmpeg, чтобы вырезать видео файлы в точное время. Справка ffmpeg показывает опцию -timecode_frame_start, чтобы указать начальный кадр, но я не могу заставить эту команду работать. Полученное видео всегда начинается с начала исходного видео. Вот пример команды, которую я запускаю:
ffmpeg -i input.mpg -acodec copy -vcodec copy -timecode_frame_start 200 -vframes 210 -n ouput.mpg
Я переместил параметр timecode_frame_start до и после других параметров без изменений в результатах. Есть ли дополнительная опция, которую мне нужно указать? Я пробовал различные форматы файлов, mkv, avi, mp4, и, похоже, проблема не связана с кодеками. Вот один файл, который я пробовал:
http://www.seaotter.com/marine/movies/hermit-long-01.mpg
Я что-то пропустил?
melt
, см. Точно вырезать видеофайлы из командной строки - Super UserОтветы:
Я только что узнал, что
timecode_frame_start
так не работает. Единственный способ начать с определенных кадров - преобразовать количество кадров вss.ms
синтаксис илиhh:mm:ss.ms
. Итак, если ваше видео на скорости 25 кадров в секунду и вы хотите начать с 133 кадров, вам понадобитсяИтак, беги
Обратите внимание, что обрезка точных кадров с помощью битового потока copy (
-c:v copy
) невозможна, поскольку не все кадры являются внутренне кодированными и могут стоять самостоятельно.-ss
всегда будет с точностью до кадра.Если вы хотите кодировать определенное количество кадров, используйте
-frames:v
, например:У вас также есть выбор использования видеофильтров , но поддержка аудио может быть не точной. И, видимо, поиск по кадрам все еще не является особенностью. Вы можете следовать этой ветке списка рассылки FFmpeg-users для получения дополнительной информации:
источник
select=gte(n\,100)
метод работает , но искание съедает производительность. Если вы тестируете, кодируя только 30 кадров за раз. Чем дальше в видео, которое я запускаю, тем больше ffmpeg требуется для завершения из-за поиска.Опция
например,вырезает видео из (включает) 200-й (включает) 300-й кадр, отсчет последовательности начинается с 0.
источник