[FFmpeg-trac] #1678(undetermined:new): Regression with -vsync 1

FFmpeg trac at avcodec.org
Sat Aug 25 07:47:37 CEST 2012


#1678: Regression with -vsync 1
-------------------------------------+-------------------------------------
             Reporter:  jwjwjw       |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:  git-
  undetermined                       |  master
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:

 It seems that the latest version of ffmpeg from git has a bug with -vsync
 1. I re-encoded some footage from BBC television and the A/V sync slightly
 drifts over time which is noticeable with the lipsync being off, even
 though the original file has no sync issues. Using -vsync 1 has always
 fixed this in the past but it no longer works with the latest version of
 ffmpeg (N-43888-gfef9e84). It does, however, work with an earlier version,
 N-31890-gecaf514.

 Included is a sample file (bbc1sample.mp4) as well as two ffmpeg output
 files, bbc1-ok.mov and bbc1-fail.mov, the 'ok' being encoded using
 N-31890-gecaf514 which is in perfect sync and the 'fail' being from the
 latest git master (N-43888-gfef9e84) which slowly drifts out of sync (I
 think it's out by around 0.1s in the sample media because I couldn't
 upload a larger clip, but as time goes by the sync gets worse and you can
 notice the lipsync is slightly off when the man is talking in vision).
 Both used identical ffmpeg options, just different ffmpeg versions.

 However, playing the encoded file in QuickTime is fine. No sync issues.
 Using VLC or encoding to FLV and playing it in Flash does exhibit the sync
 issue. The original bbc1sample.mp4 plays fine in all players. Frame by
 frame visual comparisons between the 'ok' and 'fail' clips show a
 mismatch.

 N-31890-gecaf514 results in a file with a duration of 00:00:49.64 and the
 latest version produces a file with a duration of 00:00:49.72. The sample
 outputs were encoded using libx264 and libfaac to reduce the file size but
 the problem occurs regardless of video or audio codec and the use or
 omission of -async has no effect either.

 I have included log files which should hopefully shed more light on it.

 How to reproduce:
 {{{
 % ffmpeg -i bbc1sample.mp4 -vb 300k -vsync 1 -async 1 -acodec libfaac -ab
 192k -ac 2 -ar 44100 -vcodec mpeg4 bbc1-fail.mov
 ffmpeg version N-43888-gfef9e84 Copyright (c) 2000-2012 the FFmpeg
 developers
   built on Aug 25 2012 01:37:52 with gcc 4.4.5 (Debian 4.4.5-8)
   configuration: --enable-libdc1394 --prefix=/usr --extra-cflags='-Wall -g
 ' --enable-shared --enable-libmp3lame --enable-gpl --enable-libvorbis
 --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc
 --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-
 amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex
 --enable-nonfree --disable-stripping --enable-avfilter --enable-
 libschroedinger --disable-encoder=libschroedinger --enable-version3
 --enable-libopenjpeg --enable-libvpx --extra-libs=-lgcrypt --disable-
 altivec --disable-armv5te --disable-armv6 --disable-vis
   libavutil      51. 70.100 / 51. 70.100
   libavcodec     54. 54.100 / 54. 54.100
   libavformat    54. 25.104 / 54. 25.104
   libavdevice    54.  2.100 / 54.  2.100
   libavfilter     3. 13.101 /  3. 13.101
   libswscale      2.  1.101 /  2.  1.101
   libswresample   0. 15.100 /  0. 15.100
   libpostproc    52.  0.100 / 52.  0.100
 [h264 @ 0xf81a20] AVC: nal size 21839902
 [h264 @ 0xf81a20] no frame!
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0xf7b240] max_analyze_duration 5000000 reached
 at 5022161
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'bbc1sample.mp4':
   Metadata:
     major_brand     : isom
     minor_version   : 512
     compatible_brands: isomiso2avc1mp41
     encoder         : Lavf54.25.104
   Duration: 00:00:49.58, start: 0.000000, bitrate: 900 kb/s
     Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p,
 640x360 [SAR 1:1 DAR 16:9], 798 kb/s, 28.27 fps, 25 tbr, 1k tbn, 50 tbc
     Metadata:
       handler_name    : VideoHandler
     Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo,
 s16, 93 kb/s
     Metadata:
       handler_name    : SoundHandler
 -async is forwarded to lavfi similarly to -af
 aresample=min_comp=0.001:min_hard_comp=0.100000.
 Output #0, mov, to 'bbc1-fail.mov':
   Metadata:
     major_brand     : isom
     minor_version   : 512
     compatible_brands: isomiso2avc1mp41
     encoder         : Lavf54.25.104
     Stream #0:0(und): Video: mpeg4 (mp4v / 0x7634706D), yuv420p, 640x360
 [SAR 1:1 DAR 16:9], q=2-31, 300 kb/s, 25 tbn, 25 tbc
     Metadata:
       handler_name    : VideoHandler
     Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo,
 s16, 192 kb/s
     Metadata:
       handler_name    : SoundHandler
 Stream mapping:
   Stream #0:0 -> #0:0 (h264 -> mpeg4)
   Stream #0:1 -> #0:1 (aac -> libfaac)
 Press [q] to stop, [?] for help
 [h264 @ 0x12a07a0] AVC: nal size 21839902
     Last message repeated 1 times
 [h264 @ 0x12a07a0] no frame!
 Error while decoding stream #0:0: Operation not permitted
 frame= 1243 fps=189 q=31.0 Lsize=    3069kB time=00:00:49.57 bitrate=
 507.2kbits/s dup=1 drop=159
 video:2116kB audio:920kB subtitle:0 global headers:0kB muxing overhead
 1.077261%
 }}}

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/1678>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list