[FFmpeg-trac] #8443(undetermined:new): A/V drift when reencoding NTSC
FFmpeg
trac at avcodec.org
Thu Dec 26 03:00:43 EET 2019
#8443: A/V drift when reencoding NTSC
-------------------------------------+-------------------------------------
Reporter: | Type: defect
madscientist159 |
Status: new | Priority: normal
Component: | Version:
undetermined | unspecified
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Summary of the bug:
I have been having significant difficulty with A/V sync drift in ffmpeg
(live streaming applications), which unfortunately do not lend themselves
well to debugging by most ffmpeg developers. In the process of debugging
the live stream, I was able to reproduce the A/V sync problems with the
attached input file, which was specifically built to find A/V desync
issues.
The input file is very simple. It is a 24000/1001 (NTSC) MPEG2 sync check
file, with every 24th frame showing a coinciding tone and white flash.
This file was assembled by mencoder, and I have verified that the audio
tones are sent exactly once every 1.001 seconds in the output file.
The ffmpeg command below simply overlays the audio waveform back over the
video frames. If ffmpeg was processing this input file correctly, each
white frame should have the audio tone starting at exactly the same
position. Unfortunately, as you can see, the audio tone in fact drifts
significantly (in fact it often ends up in the adjacent frame). In
addition to this obvious desync with ~4.004s periodicity, there is a very
slight continual desync of the audio even when only looking at the output
every 4.004s. Interestingly, 4.004s is the normal self-sync period for
audio and video frames in NTSC content, indicating something may be wrong
with how the underlying A/V frames ('''not''' video frames!) are handled /
decoded / encoded.
How to reproduce:
{{{
% ffmpeg -y -copyts -i sample.mpeg -filter_complex "[0:a]
showwaves=s=720x240:colors=Red|Green|Blue|Yellow:split_channels=1:mode=cline
[waveview]; [0:v][waveview] overlay=0:H/2" --acodec copy -f dvd
output.mpeg
ffmpeg built from GIT master
}}}
Note that the attached segment file was trivially reduced with dd, as the
original file is far too large to attach. This should not affect the
results given that this is a transport stream file.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/8443>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list