[FFmpeg-trac] #6308(undetermined:new): fifo muxer broken with RTSP
FFmpeg
trac at avcodec.org
Wed Apr 12 00:34:52 EEST 2017
#6308: fifo muxer broken with RTSP
-------------------------------------+-------------------------------------
Reporter: | Type: defect
ChocolateArmpits | Priority: normal
Status: new | Version:
Component: | unspecified
undetermined | Blocked By:
Keywords: fifo | Reproduced by developer: 0
Blocking: |
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
fifo muxer doesn't work when used with RTSP. Used by itself RTSP works
properly. fifo used with TCP or UDP works correctly (mpegts muxer). Using
latest snapshot compiled with MingW 64bit on Windows 7 64bit.
Ffplay is used to listen for incoming RTSP stream.
{{{
ffplay -f rtsp -rtsp_flags listen rtsp://localhost:8088
}}}
Ffmpeg is used to encode a single audio stream that is sent using
fifo+rtsp to the same localhost port. The command fails. If used with fifo
autorecovery the output just keeps restarting but doesn't do anything
successful either.
{{{
$ ffmpeg -v 9 -loglevel 99 -re -f lavfi -i sine -acodec aac -f fifo -map
0:a -fifo_format rtsp rtsp://localhost:8088
ffmpeg version N-85461-gcd8e627 Copyright (c) 2000-2017 the FFmpeg
developers
built with gcc 6.2.0 (Rev2, Built by MSYS2 project)
configuration:
libavutil 55. 61.100 / 55. 61.100
libavcodec 57. 92.100 / 57. 92.100
libavformat 57. 72.100 / 57. 72.100
libavdevice 57. 7.100 / 57. 7.100
libavfilter 6. 84.101 / 6. 84.101
libswscale 4. 7.100 / 4. 7.100
libswresample 2. 8.100 / 2. 8.100
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with
argument '9'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging
level) with argument '99'.
Reading option '-re' ... matched as option 're' (read input at native
frame rate) with argument '1'.
Reading option '-f' ... matched as option 'f' (force format) with argument
'lavfi'.
Reading option '-i' ... matched as input url with argument 'sine'.
Reading option '-acodec' ... matched as option 'acodec' (force audio codec
('copy' to copy stream)) with argument 'aac'.
Reading option '-f' ... matched as option 'f' (force format) with argument
'fifo'.
Reading option '-map' ... matched as option 'map' (set input stream
mapping) with argument '0:a'.
Reading option '-fifo_format' ... matched as AVOption 'fifo_format' with
argument 'rtsp'.
Reading option 'rtsp://localhost:8088' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument 9.
Successfully parsed a group of options.
Parsing a group of options: input url sine.
Applying option re (read input at native frame rate) with argument 1.
Applying option f (force format) with argument lavfi.
Successfully parsed a group of options.
Opening an input file: sine.
detected 2 logical cores
[AVFilterGraph @ 000000000045a9c0] query_formats: 2 queried, 3 merged, 0
already done, 0 delayed
[lavfi @ 0000000000458cc0] All info found
[lavfi @ 0000000000458cc0] stream 0: start_time: 0.000 duration:
-209146758205323.719
[lavfi @ 0000000000458cc0] format: start_time: 0.000 duration:
-9223372036854.775 bitrate=705 kb/s
Input #0, lavfi, from 'sine':
Duration: N/A, start: 0.000000, bitrate: 705 kb/s
Stream #0:0, 1, 1/44100: Audio: pcm_s16le, 44100 Hz, mono, s16, 705
kb/s
Successfully opened the file.
Parsing a group of options: output url rtsp://localhost:8088.
Applying option acodec (force audio codec ('copy' to copy stream)) with
argument aac.
Applying option f (force format) with argument fifo.
Applying option map (set input stream mapping) with argument 0:a.
Successfully parsed a group of options.
Opening an output file: rtsp://localhost:8088.
Successfully opened the file.
Stream mapping:
Stream #0:0 -> #0:0 (pcm_s16le (native) -> aac (native))
Press [q] to stop, [?] for help
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
[graph_0_in_0_0 @ 0000000000520640] Setting 'time_base' to value '1/44100'
[graph_0_in_0_0 @ 0000000000520640] Setting 'sample_rate' to value '44100'
[graph_0_in_0_0 @ 0000000000520640] Setting 'sample_fmt' to value 's16'
[graph_0_in_0_0 @ 0000000000520640] Setting 'channel_layout' to value
'0x4'
[graph_0_in_0_0 @ 0000000000520640] tb:1/44100 samplefmt:s16
samplerate:44100 chlayout:0x4
[format_out_0_0 @ 0000000000521bc0] Setting 'sample_fmts' to value 'fltp'
[format_out_0_0 @ 0000000000521bc0] Setting 'sample_rates' to value
'96000|88200|64000|48000|44100|32000|24000|22050|16000|12000|11025|8000|7350'
[format_out_0_0 @ 0000000000521bc0] auto-inserting filter
'auto_resampler_0' between the filter 'Parsed_anull_0' and the filter
'format_out_0_0'
[AVFilterGraph @ 0000000000458be0] query_formats: 4 queried, 6 merged, 3
already done, 0 delayed
[auto_resampler_0 @ 0000000000522620] [SWR @ 0000000000522760] Using s16p
internally between filters
[auto_resampler_0 @ 0000000000522620] ch:1 chl:mono fmt:s16 r:44100Hz ->
ch:1 chl:mono fmt:fltp r:44100Hz
Output #0, fifo, to 'rtsp://localhost:8088':
Metadata:
encoder : Lavf57.72.100
Stream #0:0, 0, 1/44100: Audio: aac (LC), 44100 Hz, mono, fltp, delay
1024, 69 kb/s
Metadata:
encoder : Lavc57.92.100 aac
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
Last message repeated 1 times
[tcp @ 00000000005378c0] No default whitelist set
[rtsp @ 00000000005468a0] Sending:
OPTIONS ://:554 RTSP/1.0
CSeq: 1
User-Agent: Lavf57.72.100
--
[rtsp @ 00000000005468a0] ret=0 c=00 [cur_dts is invalid (this is harmless
if it occurs once at the start per stream)
Last message repeated 2 times
av_interleaved_write_frame(): Invalid data found when processing input
No more output streams to write to, finishing.
size=N/A time=00:00:00.00 bitrate=N/A speed= 0x
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: unknown
Input file #0 (sine):
Input stream #0:0 (audio): 2 packets read (4096 bytes); 2 frames decoded
(2048 samples);
Total: 2 packets (4096 bytes) demuxed
Output file #0 (rtsp://localhost:8088):
Output stream #0:0 (audio): 2 frames encoded (2048 samples); 1 packets
muxed (258 bytes);
Total: 1 packets (258 bytes) muxed
2 frames successfully decoded, 0 decoding errors
[aac @ 0000000000491bc0] Qavg: 98.930
Conversion failed!
}}}
RTSP by itself works correctly. The data is sent and received. The console
output is cut short.
{{{
$ ffmpeg -v 9 -loglevel 99 -re -f lavfi -i sine -acodec aac -map 0:a -f
rtsp rtsp://localhost:8088
ffmpeg version N-85461-gcd8e627 Copyright (c) 2000-2017 the FFmpeg
developers
built with gcc 6.2.0 (Rev2, Built by MSYS2 project)
configuration:
libavutil 55. 61.100 / 55. 61.100
libavcodec 57. 92.100 / 57. 92.100
libavformat 57. 72.100 / 57. 72.100
libavdevice 57. 7.100 / 57. 7.100
libavfilter 6. 84.101 / 6. 84.101
libswscale 4. 7.100 / 4. 7.100
libswresample 2. 8.100 / 2. 8.100
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with
argument '9'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging
level) with argument '99'.
Reading option '-re' ... matched as option 're' (read input at native
frame rate) with argument '1'.
Reading option '-f' ... matched as option 'f' (force format) with argument
'lavfi'.
Reading option '-i' ... matched as input url with argument 'sine'.
Reading option '-acodec' ... matched as option 'acodec' (force audio codec
('copy' to copy stream)) with argument 'aac'.
Reading option '-map' ... matched as option 'map' (set input stream
mapping) with argument '0:a'.
Reading option '-f' ... matched as option 'f' (force format) with argument
'rtsp'.
Reading option 'rtsp://localhost:8088' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument 9.
Successfully parsed a group of options.
Parsing a group of options: input url sine.
Applying option re (read input at native frame rate) with argument 1.
Applying option f (force format) with argument lavfi.
Successfully parsed a group of options.
Opening an input file: sine.
detected 2 logical cores
[AVFilterGraph @ 00000000005aa8c0] query_formats: 2 queried, 3 merged, 0
already done, 0 delayed
[lavfi @ 00000000005a8ac0] All info found
[lavfi @ 00000000005a8ac0] stream 0: start_time: 0.000 duration:
-209146758205323.719
[lavfi @ 00000000005a8ac0] format: start_time: 0.000 duration:
-9223372036854.775 bitrate=705 kb/s
Input #0, lavfi, from 'sine':
Duration: N/A, start: 0.000000, bitrate: 705 kb/s
Stream #0:0, 1, 1/44100: Audio: pcm_s16le, 44100 Hz, mono, s16, 705
kb/s
Successfully opened the file.
Parsing a group of options: output url rtsp://localhost:8088.
Applying option acodec (force audio codec ('copy' to copy stream)) with
argument aac.
Applying option map (set input stream mapping) with argument 0:a.
Applying option f (force format) with argument rtsp.
Successfully parsed a group of options.
Opening an output file: rtsp://localhost:8088.
Successfully opened the file.
Stream mapping:
Stream #0:0 -> #0:0 (pcm_s16le (native) -> aac (native))
Press [q] to stop, [?] for help
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
[graph_0_in_0_0 @ 00000000004d15c0] Setting 'time_base' to value '1/44100'
[graph_0_in_0_0 @ 00000000004d15c0] Setting 'sample_rate' to value '44100'
[graph_0_in_0_0 @ 00000000004d15c0] Setting 'sample_fmt' to value 's16'
[graph_0_in_0_0 @ 00000000004d15c0] Setting 'channel_layout' to value
'0x4'
[graph_0_in_0_0 @ 00000000004d15c0] tb:1/44100 samplefmt:s16
samplerate:44100 chlayout:0x4
[format_out_0_0 @ 00000000004d2160] Setting 'sample_fmts' to value 'fltp'
[format_out_0_0 @ 00000000004d2160] Setting 'sample_rates' to value
'96000|88200|64000|48000|44100|32000|24000|22050|16000|12000|11025|8000|7350'
[format_out_0_0 @ 00000000004d2160] auto-inserting filter
'auto_resampler_0' between the filter 'Parsed_anull_0' and the filter
'format_out_0_0'
[AVFilterGraph @ 00000000004d0f00] query_formats: 4 queried, 6 merged, 3
already done, 0 delayed
[auto_resampler_0 @ 00000000004d3bc0] [SWR @ 00000000004d3da0] Using s16p
internally between filters
[auto_resampler_0 @ 00000000004d3bc0] ch:1 chl:mono fmt:s16 r:44100Hz ->
ch:1 chl:mono fmt:fltp r:44100Hz
[tcp @ 00000000005adae0] No default whitelist set
[rtsp @ 00000000005af300] Sending:
OPTIONS rtsp://localhost:8088 RTSP/1.0
CSeq: 1
User-Agent: Lavf57.72.100
--
[rtsp @ 00000000005af300] ret=1 c=52 [R]
[rtsp @ 00000000005af300] ret=1 c=54 [T]
[rtsp @ 00000000005af300] ret=1 c=53 [S]
[rtsp @ 00000000005af300] ret=1 c=50 [P]
[rtsp @ 00000000005af300] ret=1 c=2f [/]
[rtsp @ 00000000005af300] ret=1 c=31 [1]
[rtsp @ 00000000005af300] ret=1 c=2e [.]
[rtsp @ 00000000005af300] ret=1 c=30 [0]
[rtsp @ 00000000005af300] ret=1 c=20 [ ]
[rtsp @ 00000000005af300] ret=1 c=32 [2]
[rtsp @ 00000000005af300] ret=1 c=30 [0]
Last message repeated 1 times
[rtsp @ 00000000005af300] ret=1 c=20 [ ]
[rtsp @ 00000000005af300] ret=1 c=4f [O]
[rtsp @ 00000000005af300] ret=1 c=4b [K]
]rtsp @ 00000000005af300] ret=1 c=0d [
[rtsp @ 00000000005af300] ret=1 c=0a [
]
[rtsp @ 00000000005af300] line='RTSP/1.0 200 OK'
[rtsp @ 00000000005af300] ret=1 c=43 [C]
[rtsp @ 00000000005af300] ret=1 c=53 [S]
[rtsp @ 00000000005af300] ret=1 c=65 [e]
[rtsp @ 00000000005af300] ret=1 c=71 [q]
[rtsp @ 00000000005af300] ret=1 c=3a [:]
}}}
Ffmpeg version
{{{
$ ffmpeg -version
ffmpeg version N-85461-gcd8e627 Copyright (c) 2000-2017 the FFmpeg
developers
built with gcc 6.2.0 (Rev2, Built by MSYS2 project)
configuration:
libavutil 55. 61.100 / 55. 61.100
libavcodec 57. 92.100 / 57. 92.100
libavformat 57. 72.100 / 57. 72.100
libavdevice 57. 7.100 / 57. 7.100
libavfilter 6. 84.101 / 6. 84.101
libswscale 4. 7.100 / 4. 7.100
libswresample 2. 8.100 / 2. 8.100
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/6308>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list