[FFmpeg-trac] #3217(FFmpeg:new): Audio filter produce broken output when used with '-map'
FFmpeg
trac at avcodec.org
Wed Dec 11 01:28:34 CET 2013
#3217: Audio filter produce broken output when used with '-map'
--------------------------------+--------------------------------------
Reporter: Selur | Type: defect
Status: new | Priority: normal
Component: FFmpeg | Version: git-master
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
--------------------------------+--------------------------------------
Trying to fix a positive delay in an ac3 stream I stumbled over the
problem, that as soon as I use '-map 0:1' (to make sure the correct audio
stream is used) the output is broken.
call 1 (broken output):
{{{
ffmpeg -y -threads 8 -analyzeduration 100M -probesize 100M -i
"H:\Output\cut.m2ts" -map 0:1 -vn -filter_complex
"aevalsrc=0:0:0:0:0:0::d=0.138:sample_rate=48000[silence];[silence][0:a]concat=n=2:v=0:a=1[out]"
-map [out] -c:a ac3 -ab 384000 -map_metadata -1 "H:\Output\broken.ac3"
}}}
output 1:
{{{
ffmpeg version N-58961-g3af9d82 Copyright (c) 2000-2013 the FFmpeg
developers built on Dec 10 2013 22:26:27 with gcc 4.8.2 (rev0, Built by
MinGW-W64 project)
configuration: --arch=x86_64 --prefix=/local64 --extra-
cflags='-DPTW32_STATIC_LIB -DLIBTWOLAME_STATIC' --extra-libs='-lxml2 -lz
-liconv -lws2_32 -lstdc++ -lpng -lm -lpthread -lwsock32' --disable-debug
--enable-gpl --enable-version3 --enable-postproc --enable-w32threads
--enable-runtime-cpudetect --enable-memalign-hack --disable-shared
--enable-static --enable-avfilter --enable-bzlib --enable-zlib --enable-
librtmp --enable-gnutls --enable-avisynth --enable-frei0r --enable-
filter=frei0r --enable-libbluray --enable-libcaca --enable-libopenjpeg
--enable-fontconfig --enable-libfreetype --enable-libass --enable-libgsm
--enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-
libschroedinger --enable-libsoxr --enable-libtwolame --enable-libutvideo
--enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvo-
aacenc --enable-libopus --enable-libvidstab --enable-libvpx --enable-
libxavs --enable-libx264 --enable-libxvid --enable-libzvbi
libavutil 52. 58.100 / 52. 58.100
libavcodec 55. 45.100 / 55. 45.100
libavformat 55. 22.100 / 55. 22.100
libavdevice 55. 5.102 / 55. 5.102
libavfilter 3. 92.100 / 3. 92.100
libswscale 2. 5.101 / 2. 5.101
libswresample 0. 17.104 / 0. 17.104
libpostproc 52. 3.100 / 52. 3.100
[h264 @ 000000000075cd80] SEI type 1 size 56 truncated at 53
[h264 @ 000000000075cd80] mmco: unref short failure
Last message repeated 1 times
[h264 @ 000000000075cd80] number of reference frames (0+4) exceeds max (3;
probably corrupt input), discarding one
[h264 @ 000000000075cd80] SEI type 1 size 56 truncated at 53
Last message repeated 38 times
Input #0, mpegts, from 'H:\Output\cut.m2ts':
Duration: 00:00:30.11, start: 4292.050000, bitrate: 7719 kb/s
Program 1
Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448),
yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn,
50 tbc
Stream #0:1[0x1100]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz,
5.1(side), fltp, 384 kb/s
[Parsed_aevalsrc_0 @ 0000000006bc05e0] This syntax is deprecated. Use '|'
to separate the list items.
Output #0, ac3, to 'H:\Output\broken.ac3':
Metadata:
encoder : Lavf55.22.100
Stream #0:0: Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s
Stream #0:1: Audio: ac3, 48000 Hz, 5.1, fltp, 384 kb/s
Stream mapping:
Stream #0:1 (ac3) -> concat:in1:a0 (graph 0)
Stream #0:1 -> #0:0 (ac3 -> ac3)
concat (graph 0) -> Stream #0:1 (ac3)
Press [q] to stop, [?] for help
size= 2828kB time=00:00:30.23 bitrate= 766.1kbits/s
video:0kB audio:2828kB subtitle:0 global headers:0kB muxing overhead
0.000000%
}}}
call 2 (working output):
{{{
ffmpeg -y -threads 8 -analyzeduration 100M -probesize 100M -i
"H:\Output\cut.m2ts" -vn -filter_complex
"aevalsrc=0:0:0:0:0:0::d=0.138:sample_rate=48000[silence];[silence][0:a]concat=n=2:v=0:a=1[out]"
-map [out] -c:a ac3 -ab 384000 -map_metadata -1 "H:\Output\working.ac3"
}}}
output 2:
{{{
ffmpeg version N-58961-g3af9d82 Copyright (c) 2000-2013 the FFmpeg
developers built on Dec 10 2013 22:26:27 with gcc 4.8.2 (rev0, Built by
MinGW-W64 project)
configuration: --arch=x86_64 --prefix=/local64 --extra-
cflags='-DPTW32_STATIC_LIB -DLIBTWOLAME_STATIC' --extra-libs='-lxml2 -lz
-liconv -lws2_32 -lstdc++ -lpng -lm -lpthread -lwsock32' --disable-debug
--enable-gpl --enable-version3 --enable-postproc --enable-w32threads
--enable-runtime-cpudetect --enable-memalign-hack --disable-shared
--enable-static --enable-avfilter --enable-bzlib --enable-zlib --enable-
librtmp --enable-gnutls --enable-avisynth --enable-frei0r --enable-
filter=frei0r --enable-libbluray --enable-libcaca --enable-libopenjpeg
--enable-fontconfig --enable-libfreetype --enable-libass --enable-libgsm
--enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-
libschroedinger --enable-libsoxr --enable-libtwolame --enable-libutvideo
--enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvo-
aacenc --enable-libopus --enable-libvidstab --enable-libvpx --enable-
libxavs --enable-libx264 --enable-libxvid --enable-libzvbi
libavutil 52. 58.100 / 52. 58.100
libavcodec 55. 45.100 / 55. 45.100
libavformat 55. 22.100 / 55. 22.100
libavdevice 55. 5.102 / 55. 5.102
libavfilter 3. 92.100 / 3. 92.100
libswscale 2. 5.101 / 2. 5.101
libswresample 0. 17.104 / 0. 17.104
libpostproc 52. 3.100 / 52. 3.100
[h264 @ 000000000078cc40] SEI type 1 size 56 truncated at 53
[h264 @ 000000000078cc40] mmco: unref short failure
Last message repeated 1 times
[h264 @ 000000000078cc40] number of reference frames (0+4) exceeds max (3;
probably corrupt input), discarding one
[h264 @ 000000000078cc40] SEI type 1 size 56 truncated at 53
Last message repeated 38 times
Input #0, mpegts, from 'H:\Output\cut.m2ts':
Duration: 00:00:30.11, start: 4292.050000, bitrate: 7719 kb/s
Program 1
Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448),
yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn,
50 tbc
Stream #0:1[0x1100]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz,
5.1(side), fltp, 384 kb/s
[Parsed_aevalsrc_0 @ 000000000078d560] This syntax is deprecated. Use '|'
to separate the list items.
Output #0, ac3, to 'H:\Output\working.ac3':
Metadata:
encoder : Lavf55.22.100
Stream #0:0: Audio: ac3, 48000 Hz, 5.1, fltp, 384 kb/s
Stream mapping:
Stream #0:1 (ac3) -> concat:in1:a0
concat -> Stream #0:0 (ac3)
Press [q] to stop, [?] for help
size= 1418kB time=00:00:30.23 bitrate= 384.1kbits/s
video:0kB audio:1418kB subtitle:0 global headers:0kB muxing overhead
0.000000%
}}
Problem:
"call 1" produces a broken output, where as "call 2" works fine.
The only difference between these calls is the "-map 0:1" part, which
often is required to select the correct audio stream which should be
processed.
Uploaded the source and the two outputs to:
http://www.embedupload.com/?d=8GIXBAL0NC
--
Ticket URL: <https://trac.ffmpeg.org/ticket/3217>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list