Есть ли способ вырезать первую 1 секунду видео из .webm без ключевого кадра, используя Ffmpeg? - PullRequest
0 голосов
/ 14 апреля 2020

Недавно у меня была задача обработать несколько тысяч видео, как .mp4, так и .webm. Цель состояла в том, чтобы отрезать 1 секунду от фронта видео. В качестве ограничения я хотел избежать перекодирования видео, так как количество заданий заняло бы слишком много времени. Файлы .mp4 прошли гладко, каждая работа занимала всего несколько секунд.

Однако при попытке выполнить то же самое для файлов .webm sh я натолкнулся на блок. Это команда, которую я выполняю:

ffmpeg -i downloaded_raw_vids/{{vid_hash}}.webm -ss 00:00:01 -map 0 -c copy trimmed_videos/{video_url}.webm

Кажется, что происходит то, что в файлах .webm не происходит никакого вырезания или редактирования. Теперь, если я изменю метку времени на что-то вроде

ffmpeg -i downloaded_raw_vids/{{vid_hash}}.webm -ss 00:00:15 -map 0 -c copy trimmed_videos/{video_url}.webm

, я получу файл, который будет вырезан примерно в первые 10 секунд, но не на 15 секунд.

Насколько я понимаю, что файлы .webm могут быть вырезаны только на ключевых кадрах, а ключевые кадры слишком разрежены, чтобы фактически обрезать метку в 1 секунду, как первоначально требовалось. Похоже, что первый ключевой кадр присутствует около 10-секундной отметки, поэтому 15-секундный аргумент обрезается в этом месте. вырезать, без необходимости перекодировать каждый файл .webm, с которым я работаю.

1 Ответ

1 голос
/ 14 апреля 2020

В конечном счете, мне интересно, есть ли способ выполнить sh вырезку за 1 секунду, без необходимости перекодировать каждый файл .webm, с которым я работаю.

Нет , Вы можете вырезать только ключевые кадры, иначе это требует перекодирования. Здесь нет трюков или волхвов c, это свойство того, как работает временное сжатие видео.

...