Opened 5 years ago
Closed 2 months ago
#8683 closed defect (fixed)
publish srt stream with special streamid
Reported by: | xiaozhihong | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | avformat |
Version: | unspecified | Keywords: | libsrt |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
My FFmpeg version and built message:
ffmpeg version 4.2.1 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.12) 20160609
configuration: --prefix=/root/git/xiaozhihong/shell/ff/FFmpeg/build --pkg-config-flags=--static --extra-cflags=-I/root/git/xiaozhihong/shell/ff/FFmpeg/build/include --extra-ldflags=-L/root/git/xiaozhihong/shell/ff/FFmpeg/build/lib --extra-libs='-lpthread -lm' --bindir=/root/git/xiaozhihong/shell/ff/FFmpeg/build/bin --enable-static --enable-libsrt --disable-libxcb --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --disable-libxcb-shape --disable-vdpau --disable-libass --enable-gpl --enable-libfdk-aac --enable-libopus --enable-libx264 --enable-nonfree
=================================================
My FFmpeg command line:
ffmpeg -re -stream_loop -1 -i input.flv -c copy -f flv "srt://localhost:9000?streamid=test_stream?key1=value1&key2=value2"
My problem:
I have a sepcial streamid like "test_stream?key1=value1&key2=value2", when I publish stream with SRT by using this special streamid, ffmpeg will truncate it to "test_stream?key1=value1", I lost "&key2=value2"
I see the source code in libavformat/libsrt.c, FFmpeg will try to find the special argement in srt url.
Can I use "srt://localhost:9000?streamid="test_stream?key1=value1&key2=value2"" instead of "srt://localhost:9000?streamid=test_stream?key1=value1&key2=value2" or any other solution?
Thanks.
Change History (3)
follow-up: 2 comment:1 by , 5 years ago
Keywords: | libsrt added; SRT removed |
---|---|
Version: | 4.2 → unspecified |
comment:2 by , 5 years ago
Replying to cehoyos:
If you want to report a bug, please test current FFmpeg git head and provide the command line together with the complete, uncut console output to make this a valid ticket.
I had test the curent FFmpeg git head version, it have the same problem.
Console output:
./ffmpeg -re -stream_loop -1 -i input.flv -c copy -f mpegts "srt://localhost:9000?streamid=test_stream?key1=value1&key2=value2"
ffmpeg version N-97960-g7ae3401 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.12) 20160609
configuration: --prefix=/root/git/xiaozhihong/shell/ff_master/FFmpeg/build --pkg-config-flags=--static --extra-cflags=-I/root/git/xiaozhihong/shell/ff_master/FFmpeg/build/include --extra-ldflags=-L/root/git/xiaozhihong/shell/ff_master/FFmpeg/build/lib --extra-libs='-lpthread -lm' --bindir=/root/git/xiaozhihong/shell/ff_master/FFmpeg/build/bin --enable-static --enable-libsrt --disable-libxcb --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --disable-libxcb-shape --disable-vdpau --disable-libass --enable-gpl --enable-libfdk-aac --enable-libx264 --enable-nonfree
libavutil 56. 49.100 / 56. 49.100
libavcodec 58. 87.101 / 58. 87.101
libavformat 58. 43.100 / 58. 43.100
libavdevice 58. 9.103 / 58. 9.103
libavfilter 7. 83.100 / 7. 83.100
libswscale 5. 6.101 / 5. 6.101
libswresample 3. 6.100 / 3. 6.100
libpostproc 55. 6.100 / 55. 6.100
Input #0, flv, from 'input.flv':
Metadata:
encoder : Lavf58.29.100
Duration: 00:00:05.00, start: 0.000000, bitrate: 208 kb/s
Stream #0:0: Video: h264 (Constrained Baseline), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 1000 kb/s, 30 fps, 30 tbr, 1k tbn, 60 tbc
Stream #0:1: Audio: adpcm_swf, 44100 Hz, mono, s16, 176 kb/s
streamid=test_stream?key1=value1
Output #0, mpegts, to 'srt://localhost:9000?streamid=test_stream?key1=value1&key2=value2':
Metadata:
encoder : Lavf58.43.100
Stream #0:0: Video: h264 (Constrained Baseline), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 1000 kb/s, 30 fps, 30 tbr, 90k tbn, 1k tbc
Stream #0:1: Audio: adpcm_swf, 44100 Hz, mono, s16, 176 kb/s
Stream mapping:
Press [q] to stop, ? for help
[mpegts @ 0x3ced740] Stream 1, codec adpcm_swf, is muxed as a private data stream and may not be recognized upon reading.
frame= 87 fps= 30 q=-1.0 Lsize= 111kB time=00:00:02.87 bitrate= 314.5kbits/s speed=0.998x
video:16kB audio:63kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 38.747089%
Exiting normally, received signal 2.
comment:3 by , 2 months ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
This is likely fixed in 86128bd07a8634fb4a19c1bab616bc16ce0567d3, after that commit you should be able to use any streamid by urlencoding it properly.
Reopen if it still does not work.
If you want to report a bug, please test current FFmpeg git head and provide the command line together with the complete, uncut console output to make this a valid ticket.