Opened 13 years ago
Last modified 13 years ago
#3201 new defect
A/V desync without -async 1
| Reported by: | Carl Eugen Hoyos | Owned by: | |
|---|---|---|---|
| Priority: | normal | Component: | undetermined |
| Version: | git-master | Keywords: | |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | no | |
| Analyzed by developer: | no |
Description
I "fixed" the sample from ticket #3195 with a hex editor to allow testing with MPlayer and older FFmpeg versions.
The sample plays fine (no A/V desync) with at least FFplay, MPlayer and vlc, transcoding with FFmpeg leads to a file with severe desync if -async 1 was not used.
out.avi shows A/V desync:
$ ffmpeg -i detect_aac.mpg -qscale 2 out.avi
ffmpeg version N-58799-g5ac5581 Copyright (c) 2000-2013 the FFmpeg developers
built on Dec 6 2013 10:16:53 with gcc 4.7 (SUSE Linux)
configuration: --enable-gpl
libavutil 52. 56.100 / 52. 56.100
libavcodec 55. 45.100 / 55. 45.100
libavformat 55. 22.100 / 55. 22.100
libavdevice 55. 5.102 / 55. 5.102
libavfilter 3. 91.100 / 3. 91.100
libswscale 2. 5.101 / 2. 5.101
libswresample 0. 17.104 / 0. 17.104
libpostproc 52. 3.100 / 52. 3.100
[aac @ 0x19127a0] get_buffer() failed
Input #0, mpeg, from 'detect_aac.mpg':
Duration: 00:00:31.10, start: 0.000000, bitrate: 19585 kb/s
Stream #0:0[0x1e0]: Video: h264 (Main), yuv420p(tv), 1920x1080 [SAR 1:1 DAR 16:9], 30 fps, 30 tbr, 90k tbn, 60 tbc
Stream #0:1[0x1c0]: Audio: aac, 44100 Hz, stereo, fltp, 134 kb/s
Please use -q:a or -q:v, -qscale is ambiguous
Output #0, avi, to 'out.avi':
Metadata:
ISFT : Lavf55.22.100
Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 30 tbn, 30 tbc
Stream #0:1: Audio: ac3 ([0] [0][0] / 0x2000), 44100 Hz, stereo, fltp, 192 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (h264 -> mpeg4)
Stream #0:1 -> #0:1 (aac -> ac3)
Press [q] to stop, [?] for help
[aac @ 0x19127a0] Input buffer exhausted before END element found
Error while decoding stream #0:1: Invalid data found when processing input
frame= 903 fps=160 q=2.0 Lsize= 103095kB time=00:00:31.13 bitrate=27126.9kbits/s
video:102338kB audio:704kB subtitle:0 global headers:0kB muxing overhead 0.051418%
Works fine with -async 1
$ ffmpeg -i detect_aac.mpg -async 1 -qscale 2 outasync.avi
ffmpeg version N-58799-g5ac5581 Copyright (c) 2000-2013 the FFmpeg developers
built on Dec 6 2013 10:16:53 with gcc 4.7 (SUSE Linux)
configuration: --enable-gpl
libavutil 52. 56.100 / 52. 56.100
libavcodec 55. 45.100 / 55. 45.100
libavformat 55. 22.100 / 55. 22.100
libavdevice 55. 5.102 / 55. 5.102
libavfilter 3. 91.100 / 3. 91.100
libswscale 2. 5.101 / 2. 5.101
libswresample 0. 17.104 / 0. 17.104
libpostproc 52. 3.100 / 52. 3.100
[aac @ 0x21067a0] get_buffer() failed
Input #0, mpeg, from 'detect_aac.mpg':
Duration: 00:00:31.10, start: 0.000000, bitrate: 19585 kb/s
Stream #0:0[0x1e0]: Video: h264 (Main), yuv420p(tv), 1920x1080 [SAR 1:1 DAR 16:9], 30 fps, 30 tbr, 90k tbn, 60 tbc
Stream #0:1[0x1c0]: Audio: aac, 44100 Hz, stereo, fltp, 134 kb/s
Please use -q:a or -q:v, -qscale is ambiguous
-async is forwarded to lavfi similarly to -af aresample=async=1:min_hard_comp=0.100000:first_pts=0.
Output #0, avi, to 'outasync.avi':
Metadata:
ISFT : Lavf55.22.100
Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 30 tbn, 30 tbc
Stream #0:1: Audio: ac3 ([0] [0][0] / 0x2000), 44100 Hz, stereo, fltp, 192 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (h264 -> mpeg4)
Stream #0:1 -> #0:1 (aac -> ac3)
Press [q] to stop, [?] for help
[aac @ 0x21067a0] Input buffer exhausted before END element found
Error while decoding stream #0:1: Invalid data found when processing input
frame= 903 fps=161 q=2.0 Lsize= 103119kB time=00:00:31.13 bitrate=27133.4kbits/s
video:102338kB audio:728kB subtitle:0 global headers:0kB muxing overhead 0.051406%
Note:
See TracTickets
for help on using tickets.



Sample uploaded to http://samples.ffmpeg.org/ffmpeg-bugs/trac/ticket3201/