У меня есть .Файл MP4 с одной видеодорожкой (H. 264, 25 кадров / С) и одной звуковой дорожкой (MP2). Общая продолжительность ~2: 52 (два часа 52 минуты). Я заметил, что A/V синхронен до ~2:34, но асинхронен после этого, т. е. звук опаздывает ~0.3 s.
мой план был
- извлечь звуковую дорожку .MP2
- вырезать 0.3 s (используя mp3directCut, который работает нормально)
- Mux видеодорожка и вырезать звуковую дорожку.
сделано. Однако результат не был удовлетворительным, потому что A / V не синхронизировался с самого начала видео. Я внимательно посмотрел на исходный файл и сбросил временные метки. Наименьший PTS видеотрека составляет 0,16 С, а все PTSs увеличиваются на 0,04 и без какого-либо зазора. Наименьший PTS звуковой дорожки составляет 0,212 С, а большинство PTSs увеличиваются на 24 мс( нормально для MP2), но несколько различий меньше или больше 24 мс (что нормально, но, очевидно, проблема при извлечении дорожки, см. вопрос ниже)
мои вопросы: я теряю временные метки при извлечении в MP2? Тогда мой первоначальный план заранее продуман. Каким еще способом можно вырезать небольшую часть звуковой дорожки внутри файла MP4? Без перекодирования звука, конечно. Я знаком с FFmpeg и AviDemux.