[FFmpeg-trac] #2911(undetermined:closed): Seg Fault
FFmpeg
trac at avcodec.org
Sun Apr 13 01:21:57 CEST 2014
#2911: Seg Fault
-------------------------------------+-------------------------------------
Reporter: skyride | Owner:
Type: defect | Status: closed
Priority: normal | Component:
Version: unspecified | undetermined
Keywords: | Resolution:
Blocking: | needs_more_info
Analyzed by developer: 0 | Blocked By:
| Reproduced by developer: 0
-------------------------------------+-------------------------------------
Comment (by arkanis):
I also stumbled across the bug described by skyride. I think I found the
cause and patched it (see below).
The bug occurred while I was trying to convert an RTMP stream to an HTTP
stream. The RTMP stream is created with Open Broadcaster Software
(https://obsproject.com/). The bug does not occur when ffmpeg is used as
RTMP client!
Minimal setup to reproduce the bug:
* Run ffmpeg as RTMP server: ./ffmpeg -listen 1 -i
rtmp://192.168.17.2/test/app -c copy -y test.mp4
* Open OBS and Stream data to the ffmpeg RTMP server
* Set Options -> Broadcast Options -> Streaming-Platform to "Custom"
* Set server to "rtmp://192.168.17.2/test/app"
* Start streaming
Of course you should use your own IP. The used OBS version is v0.613b
32bit (Windows only). I tested ffmpeg v2.2.1 (on Windows and Linux) and
the current master branch (e89f3d0ed21259a714a8bd5d05d95af5b1e0f73f on
Linux). ffmpeg was compiled without librtmp so the native RTMP
implementation is probably the error source.
I'll attach detailed ffmpeg and gdb output of these test cases.
Bug cause and how to fix it:
The error message "Unable to read command string" lead me to the
read_connect() function in libavformat/rtmpproto.c. I think the code
expects the first packet to be an invocation (type RTMP_PT_INVOKE) but OBS
first sends an RTMP_PT_CHUNK_SIZE packet to increase the chunk size from
128 bytes to 4096 bytes.
The attached patch adds code to check for an initial chunk size packet and
sets the RTMPContexts chunk size accordingly. I tried to replicate the
coding style as much as possible.
I'm also not sure if I should post the bug on the development mailing
list. I hope it's ok here since the ticket already exists.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/2911#comment:6>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list