[FFmpeg-trac] #4270(undetermined:new): tee muxing problem when -vcodec copy
FFmpeg
trac at avcodec.org
Sat Jan 17 02:53:19 CET 2015
#4270: tee muxing problem when -vcodec copy
-------------------------------------+-------------------------------------
Reporter: arsen | Type: defect
Status: new | Priority: normal
Component: | Version:
undetermined | unspecified
Keywords: muxing, tee | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Summary of the bug:
Tacking input stream, then sending without video transcoding to 1 or 2
servers. As result ffmpeg cannot start.
In case if using trans-coding it works well
How to reproduce:
{{{
ffmpeg/ffmpeg -i http://InputIP:8042/InputStream -loglevel debug -preset
fast -acodec aac -strict experimental -ar 44100 -ac 2 -b:a 96k -vcodec
copy -f tee -map 0:v -map 0:a -flags +global_header
"[f=flv]rtmp://OutputIP/live/ars|[f=flv]rtmp://204.174.104.72/live/ars"
ffmpeg version 2.5.3- http://johnvansickle.com/ffmpeg/ Copyright (c)
2000-2015 the FFmpeg developers
built on Jan 10 2015 09:24:27 with gcc 4.9.2 (Debian 4.9.2-10)
configuration: --enable-gpl --enable-version3 --disable-shared
--disable-debug --enable-runtime-cpudetect --enable-libmp3lame --enable-
libx264 --enable-libx265 --enable-libwebp --enable-libspeex --enable-
libvorbis --enable-libvpx --enable-libfreetype --enable-fontconfig
--enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb
--enable-libtheora --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-
gray --enable-libopenjpeg --enable-libopus --disable-ffserver --enable-
libass --enable-gnutls --cc=gcc
libavutil 54. 15.100 / 54. 15.100
libavcodec 56. 13.100 / 56. 13.100
libavformat 56. 15.102 / 56. 15.102
libavdevice 56. 3.100 / 56. 3.100
libavfilter 5. 2.103 / 5. 2.103
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
Splitting the commandline.
Reading option '-i' ... matched as input file with argument
'http://InputIP:8042/InputStream'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging
level) with argument 'debug'.
Reading option '-preset' ... matched as AVOption 'preset' with argument
'fast'.
Reading option '-acodec' ... matched as option 'acodec' (force audio codec
('copy' to copy stream)) with argument 'aac'.
Reading option '-strict' ...Routing option strict to both codec and muxer
layer
matched as AVOption 'strict' with argument 'experimental'.
Reading option '-ar' ... matched as option 'ar' (set audio sampling rate
(in Hz)) with argument '44100'.
Reading option '-ac' ... matched as option 'ac' (set number of audio
channels) with argument '2'.
Reading option '-b:a' ... matched as option 'b' (video bitrate (please use
-b:v)) with argument '96k'.
Reading option '-vcodec' ... matched as option 'vcodec' (force video codec
('copy' to copy stream)) with argument 'copy'.
Reading option '-f' ... matched as option 'f' (force format) with argument
'tee'.
Reading option '-map' ... matched as option 'map' (set input stream
mapping) with argument '0:v'.
Reading option '-map' ... matched as option 'map' (set input stream
mapping) with argument '0:a'.
Reading option '-flags' ... matched as AVOption 'flags' with argument
'+global_header'.
Reading option
'[f=flv]rtmp://OutputIP/live/ars|[f=flv]rtmp://204.174.104.72/live/ars'
... matched as output file.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option loglevel (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input file http://InputIP:8042/InputStream.
Successfully parsed a group of options.
Opening an input file: http://InputIP:8042/InputStream.
[http @ 0x40f2460] request: GET /InputStream HTTP/1.1
User-Agent: Lavf/56.15.102
Accept: */*
Range: bytes=0-
Connection: close
Host: InputIP:8042
Icy-MetaData: 1
[http @ 0x40f2460] header='HTTP/1.0 200 OK'
[http @ 0x40f2460] http_code=200
[http @ 0x40f2460] header='Content-Type: application/octet-stream'
[http @ 0x40f2460] header='Server: Icecast 2.3.2-kh29'
[http @ 0x40f2460] header='Cache-Control: no-cache'
[http @ 0x40f2460] header='Expires: Mon, 26 Jul 1997 05:00:00 GMT'
[http @ 0x40f2460] header='Pragma: no-cache'
[http @ 0x40f2460] header=''
[mpegts @ 0x40f2f80] Format mpegts probed with size=2048 and score=100
[mpegts @ 0x40f2f80] stream=0 stream_type=f pid=4a prog_reg_desc=
[mpegts @ 0x40f2f80] stream=1 stream_type=1b pid=4b prog_reg_desc=
[mpegts @ 0x40f2f80] Before avformat_find_stream_info() pos: 0 bytes
read:61996 seeks:0
[h264 @ 0x40f9260] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x40f9260] decode_slice_header error
[h264 @ 0x40f9260] no frame!
[h264 @ 0x40f9260] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x40f9260] decode_slice_header error
[h264 @ 0x40f9260] no frame!
[h264 @ 0x40f9260] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x40f9260] decode_slice_header error
[h264 @ 0x40f9260] no frame!
[h264 @ 0x40f9260] no picture
[mpegts @ 0x40f2f80] max_analyze_duration 5000000 reached at 5013333
microseconds
[mpegts @ 0x40f2f80] After avformat_find_stream_info() pos: 1301336 bytes
read:1301524 seeks:0 frames:362
Input #0, mpegts, from 'http://InputIP:8042/InputStream':
Duration: N/A, start: 54280.012100, bitrate: 114 kb/s
Program 1
Stream #0:0[0x4a](rus), 237, 1/90000: Audio: aac (LC) ([15][0][0][0] /
0x000F), 48000 Hz, stereo, fltp, 114 kb/s
Stream #0:1[0x4b], 125, 1/90000: Video: h264 (High) ([27][0][0][0] /
0x001B), yuv420p(left), 704x576 [SAR 16:11 DAR 16:9], 1/50, 25 fps, 25
tbr, 90k tbn, 50 tbc
Successfully opened the file.
Parsing a group of options: output file
[f=flv]rtmp://OutputIP/live/ars|[f=flv]rtmp://204.174.104.72/live/ars.
Applying option acodec (force audio codec ('copy' to copy stream)) with
argument aac.
Applying option ar (set audio sampling rate (in Hz)) with argument 44100.
Applying option ac (set number of audio channels) with argument 2.
Applying option b:a (video bitrate (please use -b:v)) with argument 96k.
Applying option vcodec (force video codec ('copy' to copy stream)) with
argument copy.
Applying option f (force format) with argument tee.
Applying option map (set input stream mapping) with argument 0:v.
Applying option map (set input stream mapping) with argument 0:a.
Successfully parsed a group of options.
Opening an output file:
[f=flv]rtmp://OutputIP/live/ars|[f=flv]rtmp://204.174.104.72/live/ars.
Successfully opened the file.
detected 4 logical cores
[graph 0 input from stream 0:0 @ 0x40f91a0] Setting 'time_base' to value
'1/48000'
[graph 0 input from stream 0:0 @ 0x40f91a0] Setting 'sample_rate' to value
'48000'
[graph 0 input from stream 0:0 @ 0x40f91a0] Setting 'sample_fmt' to value
'fltp'
[graph 0 input from stream 0:0 @ 0x40f91a0] Setting 'channel_layout' to
value '0x3'
[graph 0 input from stream 0:0 @ 0x40f91a0] tb:1/48000 samplefmt:fltp
samplerate:48000 chlayout:0x3
[audio format for output stream 0:1 @ 0x40de660] Setting 'sample_fmts' to
value 'fltp'
[audio format for output stream 0:1 @ 0x40de660] Setting 'sample_rates' to
value '44100'
[audio format for output stream 0:1 @ 0x40de660] Setting 'channel_layouts'
to value '0x3'
[audio format for output stream 0:1 @ 0x40de660] auto-inserting filter
'auto-inserted resampler 0' between the filter 'Parsed_anull_0' and the
filter 'audio format for output stream 0:1'
[AVFilterGraph @ 0x4102640] query_formats: 4 queried, 6 merged, 3 already
done, 0 delayed
[auto-inserted resampler 0 @ 0x4118000] ch:2 chl:stereo fmt:fltp r:48000Hz
-> ch:2 chl:stereo fmt:fltp r:44100Hz
[rtmp @ 0x4101ee0] Handshaking...
[rtmp @ 0x4101ee0] Type answer 3
[rtmp @ 0x4101ee0] Server version 3.0.1.1
[rtmp @ 0x4101ee0] Proto = rtmp, path = /live/ars, app = live, fname = ars
[rtmp @ 0x4101ee0] Server bandwidth = 2500000
[rtmp @ 0x4101ee0] Client bandwidth = 2500000
[rtmp @ 0x4101ee0] New incoming chunk size = 4096
[rtmp @ 0x4101ee0] Releasing stream...
[rtmp @ 0x4101ee0] FCPublish stream...
[rtmp @ 0x4101ee0] Creating stream...
[rtmp @ 0x4101ee0] Sending publish command for 'ars'
[flv @ 0x4101380] Tag [27][0][0][0]/0x0000001b incompatible with output
codec id '28' ([7][0][0][0])
[tee @ 0x433b180] Slave '[f=flv]rtmp://OutputIP/live/ars': error writing
header: Invalid data found when processing input
Output #0, tee, to
'[f=flv]rtmp://OutputIP/live/ars|[f=flv]rtmp://204.174.104.72/live/ars':
Metadata:
encoder : Lavf56.15.102
Stream #0:0, 0, 1/25: Video: h264 ([27][0][0][0] / 0x001B),
yuv420p(left), 704x576 (0x0) [SAR 16:11 DAR 16:9], 1/25, q=2-31, 25 fps,
25 tbn, 25 tbc
Stream #0:1(rus), 0, 1/44100: Audio: aac, 44100 Hz, stereo, fltp, 96
kb/s
Metadata:
encoder : Lavc56.13.100 aac
Stream mapping:
Stream #0:1 -> #0:0 (copy)
Stream #0:0 -> #0:1 (aac (native) -> aac (native))
Could not write header for output file #0 (incorrect codec parameters ?):
Invalid data found when processing input
[AVIOContext @ 0x40f27a0] Statistics: 1301524 bytes read, 0 seeks
}}}
Same stream Sending to 1 server without muxing (works well):
{{{
ffmpeg/ffmpeg -i http://InputIP:8042/InputStream -loglevel debug -acodec
aac -strict experimental -ar 44100 -ac 2 -b:a 96k -vcodec copy -f flv
rtmp://OutputIP:10000/live/ars
ffmpeg version 2.5.3- http://johnvansickle.com/ffmpeg/ Copyright (c)
2000-2015 the FFmpeg developers
built on Jan 10 2015 09:24:27 with gcc 4.9.2 (Debian 4.9.2-10)
configuration: --enable-gpl --enable-version3 --disable-shared
--disable-debug --enable-runtime-cpudetect --enable-libmp3lame --enable-
libx264 --enable-libx265 --enable-libwebp --enable-libspeex --enable-
libvorbis --enable-libvpx --enable-libfreetype --enable-fontconfig
--enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb
--enable-libtheora --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-
gray --enable-libopenjpeg --enable-libopus --disable-ffserver --enable-
libass --enable-gnutls --cc=gcc
libavutil 54. 15.100 / 54. 15.100
libavcodec 56. 13.100 / 56. 13.100
libavformat 56. 15.102 / 56. 15.102
libavdevice 56. 3.100 / 56. 3.100
libavfilter 5. 2.103 / 5. 2.103
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
Splitting the commandline.
Reading option '-i' ... matched as input file with argument
'http://InputIP:8042/InputStream'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging
level) with argument 'debug'.
Reading option '-acodec' ... matched as option 'acodec' (force audio codec
('copy' to copy stream)) with argument 'aac'.
Reading option '-strict' ...Routing option strict to both codec and muxer
layer
matched as AVOption 'strict' with argument 'experimental'.
Reading option '-ar' ... matched as option 'ar' (set audio sampling rate
(in Hz)) with argument '44100'.
Reading option '-ac' ... matched as option 'ac' (set number of audio
channels) with argument '2'.
Reading option '-b:a' ... matched as option 'b' (video bitrate (please use
-b:v)) with argument '96k'.
Reading option '-vcodec' ... matched as option 'vcodec' (force video codec
('copy' to copy stream)) with argument 'copy'.
Reading option '-f' ... matched as option 'f' (force format) with argument
'flv'.
Reading option 'rtmp://OutputIP:10000/live/ars' ... matched as output
file.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option loglevel (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input file http://InputIP:8042/InputStream.
Successfully parsed a group of options.
Opening an input file: http://InputIP:8042/InputStream.
[http @ 0x31a0460] request: GET /InputStream HTTP/1.1
User-Agent: Lavf/56.15.102
Accept: */*
Range: bytes=0-
Connection: close
Host: InputIP:8042
Icy-MetaData: 1
[http @ 0x31a0460] header='HTTP/1.0 200 OK'
[http @ 0x31a0460] http_code=200
[http @ 0x31a0460] header='Content-Type: application/octet-stream'
[http @ 0x31a0460] header='Server: Icecast 2.3.2-kh29'
[http @ 0x31a0460] header='Cache-Control: no-cache'
[http @ 0x31a0460] header='Expires: Mon, 26 Jul 1997 05:00:00 GMT'
[http @ 0x31a0460] header='Pragma: no-cache'
[http @ 0x31a0460] header=''
[mpegts @ 0x31a0e00] Format mpegts probed with size=2048 and score=100
[mpegts @ 0x31a0e00] stream=0 stream_type=f pid=4a prog_reg_desc=
[mpegts @ 0x31a0e00] stream=1 stream_type=1b pid=4b prog_reg_desc=
[mpegts @ 0x31a0e00] Before avformat_find_stream_info() pos: 0 bytes
read:9872 seeks:0
[h264 @ 0x31a71a0] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x31a71a0] decode_slice_header error
[h264 @ 0x31a71a0] no frame!
[h264 @ 0x31a71a0] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x31a71a0] decode_slice_header error
[h264 @ 0x31a71a0] no frame!
[h264 @ 0x31a71a0] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x31a71a0] decode_slice_header error
[h264 @ 0x31a71a0] no frame!
[h264 @ 0x31a71a0] no picture
[mpegts @ 0x31a0e00] max_analyze_duration 5000000 reached at 5013333
microseconds
[mpegts @ 0x31a0e00] After avformat_find_stream_info() pos: 1182896 bytes
read:1184272 seeks:0 frames:362
Input #0, mpegts, from 'http://InputIP:8042/InputStream':
Duration: N/A, start: 54069.750767, bitrate: 149 kb/s
Program 1
Stream #0:0[0x4a](rus), 237, 1/90000: Audio: aac (LC) ([15][0][0][0] /
0x000F), 48000 Hz, stereo, fltp, 149 kb/s
Stream #0:1[0x4b], 125, 1/90000: Video: h264 (High) ([27][0][0][0] /
0x001B), yuv420p(left), 704x576 [SAR 16:11 DAR 16:9], 1/50, 25 fps, 25
tbr, 90k tbn, 50 tbc
Successfully opened the file.
Parsing a group of options: output file rtmp://OutputIP:10000/live/ars.
Applying option acodec (force audio codec ('copy' to copy stream)) with
argument aac.
Applying option ar (set audio sampling rate (in Hz)) with argument 44100.
Applying option ac (set number of audio channels) with argument 2.
Applying option b:a (video bitrate (please use -b:v)) with argument 96k.
Applying option vcodec (force video codec ('copy' to copy stream)) with
argument copy.
Applying option f (force format) with argument flv.
Successfully parsed a group of options.
Opening an output file: rtmp://OutputIP:10000/live/ars.
[rtmp @ 0x31a7620] Handshaking...
[rtmp @ 0x31a7620] Type answer 3
[rtmp @ 0x31a7620] Server version 3.0.1.1
[rtmp @ 0x31a7620] Proto = rtmp, path = /live/ars, app = live, fname = ars
[rtmp @ 0x31a7620] Server bandwidth = 2500000
[rtmp @ 0x31a7620] Client bandwidth = 2500000
[rtmp @ 0x31a7620] New incoming chunk size = 4096
[rtmp @ 0x31a7620] Releasing stream...
[rtmp @ 0x31a7620] FCPublish stream...
[rtmp @ 0x31a7620] Creating stream...
[rtmp @ 0x31a7620] Sending publish command for 'ars'
Successfully opened the file.
detected 4 logical cores
[graph 0 input from stream 0:0 @ 0x31a0940] Setting 'time_base' to value
'1/48000'
[graph 0 input from stream 0:0 @ 0x31a0940] Setting 'sample_rate' to value
'48000'
[graph 0 input from stream 0:0 @ 0x31a0940] Setting 'sample_fmt' to value
'fltp'
[graph 0 input from stream 0:0 @ 0x31a0940] Setting 'channel_layout' to
value '0x3'
[graph 0 input from stream 0:0 @ 0x31a0940] tb:1/48000 samplefmt:fltp
samplerate:48000 chlayout:0x3
[audio format for output stream 0:1 @ 0x318ca00] Setting 'sample_fmts' to
value 'fltp'
[audio format for output stream 0:1 @ 0x318ca00] Setting 'sample_rates' to
value '44100'
[audio format for output stream 0:1 @ 0x318ca00] Setting 'channel_layouts'
to value '0x3'
[audio format for output stream 0:1 @ 0x318ca00] auto-inserting filter
'auto-inserted resampler 0' between the filter 'Parsed_anull_0' and the
filter 'audio format for output stream 0:1'
[AVFilterGraph @ 0x31a0500] query_formats: 4 queried, 6 merged, 3 already
done, 0 delayed
[auto-inserted resampler 0 @ 0x3288a60] ch:2 chl:stereo fmt:fltp r:48000Hz
-> ch:2 chl:stereo fmt:fltp r:44100Hz
Output #0, flv, to 'rtmp://OutputIP:10000/live/ars':
Metadata:
encoder : Lavf56.15.102
Stream #0:0, 0, 1/1000: Video: h264 ([7][0][0][0] / 0x0007),
yuv420p(left), 704x576 (0x0) [SAR 16:11 DAR 16:9], 1/90000, q=2-31, 25
fps, 1k tbn, 90k tbc
Stream #0:1(rus), 0, 1/1000: Audio: aac ([10][0][0][0] / 0x000A),
44100 Hz, stereo, fltp, 96 kb/s
Metadata:
encoder : Lavc56.13.100 aac
Stream mapping:
Stream #0:1 -> #0:0 (copy)
Stream #0:0 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
[flv @ 0x31c9a20] Failed to update header with correct
duration.ate=1726.5kbits/s
[flv @ 0x31c9a20] Failed to update header with correct filesize.
frame= 758 fps= 30 q=-1.0 Lsize= 6413kB time=00:00:30.48
bitrate=1723.0kbits/s
video:6017kB audio:358kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: 0.581407%
Input file #0 (http://InputIP:8042/InputStream):
Input stream #0:0 (audio): 1430 packets read (498746 bytes); 1430 frames
decoded (1464320 samples);
Input stream #0:1 (video): 761 packets read (6174587 bytes);
Total: 2191 packets (6673333 bytes) demuxed
Output file #0 (rtmp://OutputIP:10000/live/ars):
Output stream #0:0 (video): 758 packets muxed (6161396 bytes);
Output stream #0:1 (audio): 1313 frames encoded (1344512 samples); 1314
packets muxed (367077 bytes);
Total: 2072 packets (6528473 bytes) muxed
1430 frames successfully decoded, 0 decoding errors
[AVIOContext @ 0x328b7e0] Statistics: 0 seeks, 2097 writeouts
[rtmp @ 0x31a7620] UnPublishing stream...
[rtmp @ 0x31a7620] Deleting stream...
[AVIOContext @ 0x31a06e0] Statistics: 7114428 bytes read, 0 seeks
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/4270>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list