[FFmpeg-trac] #2400(undetermined:new): when merging audio and video to mp4 , the audio / video not syncdiated correctly

FFmpeg trac at avcodec.org
Mon Mar 25 02:13:27 CET 2013


#2400: when merging audio and video to mp4 , the audio / video not syncdiated
correctly
-------------------------------------+-------------------------------------
             Reporter:  chinshou     |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:  git-
  undetermined                       |  master
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 executing following command with the two videos I attached.

 >ffmpeg -i aaa.mp4 -i bbb.mp4 test.mp4

 C:\Conversion>ffmpeg -i aaa.mp4 -i bbb.mp4 test.mp4
 ffmpeg version N-51211-ge0e8c20 Copyright (c) 2000-2013 the FFmpeg
 developers
   built on Mar 22 2013 08:56:38 with gcc 4.7.2 (GCC)
   configuration: --enable-gpl --enable-version3 --disable-w32threads
 --enable-av
 isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls
 --enab
 le-libass --enable-libbluray --enable-libcaca --enable-libfreetype
 --enable-libg
 sm --enable-libilbc --enable-libmp3lame --enable-libopencore-amrnb
 --enable-libo
 pencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp
 --enable-li
 bschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora
 --enable-lib
 twolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis
 --enabl
 e-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
   libavutil      52. 22.101 / 52. 22.101
   libavcodec     55.  1.100 / 55.  1.100
   libavformat    55.  0.100 / 55.  0.100
   libavdevice    55.  0.100 / 55.  0.100
   libavfilter     3. 48.100 /  3. 48.100
   libswscale      2.  2.100 /  2.  2.100
   libswresample   0. 17.102 /  0. 17.102
   libpostproc    52.  2.100 / 52.  2.100
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'aaa.mp4':
   Metadata:
     major_brand     : isom
     minor_version   : 512
     compatible_brands: isomiso2avc1mp41
     encoder         : Lavf54.59.102
   Duration: 00:00:08.71, start: 0.000000, bitrate: 245 kb/s
     Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p,
 1366x768,
  241 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc
     Metadata:
       handler_name    : VideoHandler
 Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'bbb.mp4':
   Metadata:
     major_brand     : isom
     minor_version   : 512
     compatible_brands: isomiso2mp41
     encoder         : Lavf54.59.102
   Duration: 00:00:00.13, start: 0.023220, bitrate: 9029 kb/s
     Stream #1:0(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo,
 fltp, 89
 40 kb/s
     Metadata:
       handler_name    : SoundHandler
 File 'test.mp4' already exists. Overwrite ? [y/N] y
 using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
 [libx264 @ 024adac0] profile High, level 3.2
 [libx264 @ 024adac0] 264 - core 130 r2274 c832fe9 - H.264/MPEG-4 AVC codec
 - Cop
 yleft 2003-2013 - http://www.videolan.org/x264.html - options: cabac=1
 ref=3 deb
 lock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00
 mixed_ref=1 m
 e_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11
 fast_pskip=1 chro
 ma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0
 decimate=1 i
 nterlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2
 b_adapt=1
 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25
 scenec
 ut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60
 qpmin=
 0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
 Output #0, mp4, to 'test.mp4':
   Metadata:
     major_brand     : isom
     minor_version   : 512
     compatible_brands: isomiso2avc1mp41
     encoder         : Lavf55.0.100
     Stream #0:0(und): Video: h264 ([33][0][0][0] / 0x0021), yuv420p,
 1366x768, q
 =-1--1, 30k tbn, 29.97 tbc
     Metadata:
       handler_name    : VideoHandler
     Stream #0:1(und): Audio: aac ([64][0][0][0] / 0x0040), 44100 Hz,
 stereo, s16
 , 128 kb/s
     Metadata:
       handler_name    : SoundHandler
 Stream mapping:
   Stream #0:0 -> #0:0 (h264 -> libx264)
   Stream #1:0 -> #0:1 (aac -> libvo_aacenc)
 Press [q] to stop, [?] for help
 frame=   54 fps=0.0 q=29.0 size=       0kB time=00:00:00.06 bitrate=
 5.8kbits/
 frame=   80 fps= 76 q=29.0 size=     219kB time=00:00:00.93
 bitrate=1917.7kbits/
 frame=  114 fps= 72 q=29.0 size=     219kB time=00:00:02.06 bitrate=
 866.1kbits/
 frame=  148 fps= 71 q=29.0 size=     219kB time=00:00:03.20 bitrate=
 559.3kbits/
 frame=  187 fps= 72 q=29.0 size=     219kB time=00:00:04.50 bitrate=
 397.7kbits/
 frame=  226 fps= 72 q=29.0 size=     219kB time=00:00:05.80 bitrate=
 308.6kbits/
 frame=  261 fps= 63 q=2686559.0 Lsize=     390kB time=00:00:08.64 bitrate=
 369.9
 kbits/s
 video:251kB audio:133kB subtitle:0 global headers:0kB muxing overhead
 1.517758%
 [libx264 @ 024adac0] frame I:2     Avg QP:20.77  size: 84310
 [libx264 @ 024adac0] frame P:68    Avg QP:24.08  size:  1098
 [libx264 @ 024adac0] frame B:191   Avg QP:33.16  size:    70
 [libx264 @ 024adac0] consecutive B-frames:  1.9%  1.5%  0.0% 96.6%
 [libx264 @ 024adac0] mb I  I16..4: 65.2%  4.7% 30.2%
 [libx264 @ 024adac0] mb P  I16..4:  0.8%  0.0%  0.3%  P16..4:  0.6%  0.1%
 0.0%
  0.0%  0.0%    skip:98.1%
 [libx264 @ 024adac0] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  0.7%  0.0%
 0.0%
  direct: 0.0%  skip:99.2%  L0:48.3% L1:51.6% BI: 0.1%
 [libx264 @ 024adac0] 8x8 transform intra:3.7% inter:46.9%
 [libx264 @ 024adac0] coded y,uvDC,uvAC intra: 20.3% 19.0% 16.6% inter:
 0.1% 0.1%
  0.0%
 [libx264 @ 024adac0] i16 v,h,dc,p: 62% 37%  0%  0%
 [libx264 @ 024adac0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 74% 12% 12%  0%  0%
 0%  0%
  0%  1%
 [libx264 @ 024adac0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 34% 39% 12%  2%  2%
 2%  3%
  2%  3%
 [libx264 @ 024adac0] i8c dc,h,v,p: 67% 23%  9%  0%
 [libx264 @ 024adac0] Weighted P-Frames: Y:0.0% UV:0.0%
 [libx264 @ 024adac0] ref P L0: 79.1% 12.4%  6.1%  2.4%
 [libx264 @ 024adac0] ref B L0: 60.7% 38.5%  0.8%
 [libx264 @ 024adac0] ref B L1: 95.4%  4.6%
 [libx264 @ 024adac0] kb/s:235.67

 then executing ffplay test.mp4 to view the result mp4, you will notice
 that audio not syndicate with video from the pronunciation of "ffffff" and
 input "fffffff" via keyboard .

 But if we merge the audio and video to a avi file , the audio/video
 syndicated correctly.

 >ffmpeg -i aaa.mp4 -i bbb.mp4 test.avi.

 I tested with old release and found that
 http://ffmpeg.zeranoe.com/builds/win32/dev/ffmpeg-git-e01f478-win32-dev.7z
 built on 2012/03/20 is still ok. From
 http://ffmpeg.zeranoe.com/builds/win32/dev/ffmpeg-git-4082198-win32-dev.7z
 built on 2012/03/25 the problem was introduced.

 I compared the source code between 03/20 and 03/25 and suspect the audio
 encode api in codec switch from encode to encode2 interface caused the
 problem.

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


More information about the FFmpeg-trac mailing list