При использовании FFMPEG для -codec copy
ввода с Редактировать атомы перед транскодированием, результирующий вывод содержит неправильные длительности.
mp4dump показывает список атомов редактирования для этого примера mp4 на звуковой дорожке.
...
[edts] size=8+52
[elst] size=12+40
entry count = 3
entry/segment duration = 111968
entry/media time = 0
entry/media rate = 1
entry/segment duration = 111968
entry/media time = 322560
entry/media rate = 1
entry/segment duration = 111968
entry/media time = 645120
entry/media rate = 1
...
с использованием ffmpeg version 4.1.3
и запуском
ffmpeg -i example.mp4 -codec copy example-copy.ts
и затем запуск
ffmpeg -i example-copy.ts example-out.mp4
производит выход с другой длительностью, чем вход, представляющий проблемы синхронизации A / V
длительность входного аудиопотока = 21,868776
длительность выходного аудиопотока = 23,821769
Проблема не возникает при пропуске шага -codec copy
и переходе прямо к шагу транскодирования (но этот шаг в настоящее время является важной частью нашего рабочего процесса).
Эта проблема также не возникает (для этого примера) при -codec copy
обращении к другому контейнеру видео, например .nut , но в других примерах (в частности, с одной записью редактирования атома с > 0 media_time) изменение контейнера видео не решает проблему.
FFMPEG игнорирует / отбрасывает список редактирования при использовании операции копирования кодека?
Это ожидаемое поведение или проблема с FFMPEG?