ffmpeg -to с -ss перед входным файлом - PullRequest
1 голос
/ 26 апреля 2020

Использование ffmpeg в порядке ffmpeg -ss 00:04:21 -i "filename.mp4" -to 00:04:47 -c copy "output.mp4" намного быстрее, чем переключение порядка флагов -ss и -i, но -ss приводит к тому, что временные метки становятся неправильными для флага -to, что делает их несоответствующими и -to не соответствует правильному времени в исходном файле. Добавление -copyts устраняет эту проблему и обрезает ее до правильного времени, но заставляет временные метки показывать оригиналы в выходном файле, то есть время в выходном файле начинается в 4:47 для любого зрителя, несмотря на то, что видео только 26 секунд.

Использование порядка ffmpeg -i "filename.mp4" -ss 00:04:21 -to 00:04:47 -c copy "output.mp4" решает проблему за счет гораздо более длительного времени выполнения.

Есть ли способ получить лучшее из обоих, чтобы он стремился к правильное время перед открытием файла при быстром быстродействии?

1 Ответ

0 голосов
/ 27 апреля 2020

FFmpeg по умолчанию нормализует временные метки ввода, начиная с 0. Таким образом, -to в качестве опции вывода фактически становится ограничителем длительности. -copyts позволяет избежать этого, не сбрасывая метки времени. Однако некоторые игроки не могут корректно обрабатывать ненулевое время старта.

Использование -to в качестве опции ввода (доступно начиная с версии 4.0) достигает вашей цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...