Как исправить синхронизацию видео, созданного с помощью ffmpeg, с добавлением промежутков?

Вопрос или проблема

Я выполнил следующую команду для обрезки видео с использованием 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

Подробное описание команды

  1. -ss 00:15:35.685: Эта опция указывает ffmpeg, с какого момента начать извлечение. Ваша текущая команда использования -ss перед вводом файла указывает на "принудительное" округление к ключевой кадровой позиции, что может привести к незначительной задержке в начале.

  2. -to 00:15:46.696: Эта опция указывает ffmpeg, на каком моменте остановить извлечение.

  3. -c:v libx264: Установка кодека для видео, чтобы сохранить его в формате H.264.

  4. -c:a copy: Копирует аудио поток без изменений.

  5. -c:s copy: Копирует субтитры без изменений (если они есть).

  6. -avoid_negative_ts make_zero: Эта опция гарантирует, что начальный временной штамп будет установлен в ноль, что решает вашу проблему с "паддингом" в начале видео.

  7. -y output.mkv: Заменяет выходной файл без предупреждений, если он уже существует.

Дополнительные рекомендации

  • Тестирование: После выполнения команды проверьте новое видео в mpv, чтобы убедиться, что временные метки настроены правильно, и прогресс-бар показывает ожидаемую информацию.

  • Кодеки: Убедитесь, что используемые вами кодеки поддерживаются вашим плеером. Иногда проблемы с воспроизведением могут возникать из-за несоответствия кодеков.

  • Форматирование: Если видео всё еще имеет проблемы с временными метками, возможно, стоит рассмотреть использование других флагов, подобных -fflags +genpts, которые могут помочь в генерировании правильных временных меток.

Заключение

Используя указанные выше параметры, вы должны быть в состоянии успешно исправить любые проблемы с паддингом в начале и конце вашего видео. Это улучшит общее качество и сделает просмотр более приятным и удобным. Если проблема сохраняется, попробуйте изменить параметры или исследовать кодеки, используемые в вашем видеофайле.

Оцените материал
Добавить комментарий

Капча загружается...