
Проблема:
Мне регулярно нужно аккуратно объединить два файла .MKV с помощью ffmpeg. Примерно в 10–20% случаев последние 3–5 кадров первого видеосегмента имеют проблемы в различных видеоплеерах (VLC и PotPlayer для тестирования). Типичный эффект заключается в том, что во время воспроизведения видео кадры с третьего по пятый с конца из первого сегмента, которые объединяются, замирают и остаются на экране в течение следующих нескольких кадров, пока не начнется объединение второго сегмента. Звук по-прежнему правильно воспроизводится за изображением. Как ни странно, если я использую элемент управления «e» в VLC для покадрового перемещения по последовательности, все кадры кажутся там. Оба сегмента берутся из одного источника и имеют все одинаковые свойства. Исходный сегмент ненетесть эта проблема сама по себе. Исходные сегменты кодируются сами при производстве, поэтому у них не должно быть никаких проблем с ключевыми кадрами.
Что я пробовал:
- Кодирование только видео при выполнении команды конкатенации (копирование аудио и субтитров)
- Кодирование видео и аудио при выполнении команды конкатенации (копирование субтитров)
- Увеличьте значения анализируемой продолжительности и размера зонда, как указано в предупреждениях
- Вывод только видео по-прежнему приводит к возникновению проблемы (нет звука, нет субтитров)
- Я видел посты о проблемах, очень похожих на эту, но, похоже, не могу найти серебряную пулю.
Что я делаю, чтобы возникла эта проблема:
Команда, которую я даю, следующая:
ffmpeg.exe -f concat -safe 0 -i "C:\Users\test\Downloads\ConcatListTEMP00000.txt" -c copy -map 0 "C:\Users\test\Downloads\TEST JOIN COPY.mkv"
Содержимое файла конкатенации:
file 'C:\Users\test\Downloads\CutSegmentTEMP0001.mkv'
file 'C:\Users\test\Downloads\CutSegmentTEMP0002.mkv'
Вот ссылка pastebin на вывод консоли при выполнении указанной выше команды: https://pastebin.com/mpBS6TZY
решение1
Использование фильтров trim, atrim и concat в filtergraph, похоже, решило проблему. Я разберусь с субтитрами отдельно.