Вопрос или проблема
Я выполнил следующую команду для обрезки видео с использованием ffmpeg, сохраняя его субтитры и шрифты:
ffmpeg `
-ss 00:15:35.685 -to 00:15:46.696 `
-i video.mkv `
-map 0 `
-c:v libx264 -c:a copy -c:s copy `
-y copy-1.mkv
При открытии видео в mpv полоса прогресса показывает первый кадр на 7 секунде (и я не могу перемотать назад) и последний кадр не соответствует продолжительности видео, так что осталось ~500мс (и я не могу перемотать вперед).
Как мне сделать так, чтобы первый кадр начинался с 0с, а последний кадр точно соответствовал продолжительности видео?
Ответ или решение
Чтобы исправить временные метки видео, созданного с помощью ffmpeg и избежать дополнительных задержек при воспроизведении, следуйте этим рекомендациям:
Проблема
Вы столкнулись с проблемой, когда видео, которое вы извлекли с помощью команды ffmpeg, имеет неправильные временные метки. Ваша задача состоит в том, чтобы исправить так, чтобы первое изображение начиналось с нуля секунд, а последнее изображение соответствовало продолжительности видео без "паддинга" в конце.
Решение
Чтобы правильно обрезать видео, необходимо учесть несколько аспектов в команде ffmpeg. Попробуйте выполнить следующую команду:
ffmpeg -i video.mkv -ss 00:15:35.685 -to 00:15:46.696 -c:v libx264 -c:a copy -c:s copy -avoid_negative_ts make_zero -y output.mkv
Подробное описание команды
-
-ss 00:15:35.685: Эта опция указывает ffmpeg, с какого момента начать извлечение. Ваша текущая команда использования
-ss
перед вводом файла указывает на "принудительное" округление к ключевой кадровой позиции, что может привести к незначительной задержке в начале. -
-to 00:15:46.696: Эта опция указывает ffmpeg, на каком моменте остановить извлечение.
-
-c:v libx264: Установка кодека для видео, чтобы сохранить его в формате H.264.
-
-c:a copy: Копирует аудио поток без изменений.
-
-c:s copy: Копирует субтитры без изменений (если они есть).
-
-avoid_negative_ts make_zero: Эта опция гарантирует, что начальный временной штамп будет установлен в ноль, что решает вашу проблему с "паддингом" в начале видео.
-
-y output.mkv: Заменяет выходной файл без предупреждений, если он уже существует.
Дополнительные рекомендации
-
Тестирование: После выполнения команды проверьте новое видео в mpv, чтобы убедиться, что временные метки настроены правильно, и прогресс-бар показывает ожидаемую информацию.
-
Кодеки: Убедитесь, что используемые вами кодеки поддерживаются вашим плеером. Иногда проблемы с воспроизведением могут возникать из-за несоответствия кодеков.
-
Форматирование: Если видео всё еще имеет проблемы с временными метками, возможно, стоит рассмотреть использование других флагов, подобных
-fflags +genpts
, которые могут помочь в генерировании правильных временных меток.
Заключение
Используя указанные выше параметры, вы должны быть в состоянии успешно исправить любые проблемы с паддингом в начале и конце вашего видео. Это улучшит общее качество и сделает просмотр более приятным и удобным. Если проблема сохраняется, попробуйте изменить параметры или исследовать кодеки, используемые в вашем видеофайле.