[rtmpdump] rtmpsuck Segmentation Fault

Francisco Legaspi silverbolt28 at ignmail.com
Wed Feb 17 04:19:25 CET 2010

> From: Howard Chu
> OK. The client is doing something weird; it sends a Play command 
> immediately followed by an UnPause command (even though nothing was 
> paused yet). The effect is that the server starts playing the media 
> twice.
> In rtmpsuck, whenever it sees a Play.Start status, it tries to 
> advance to the next output file (assuming a multi-file playlist is 
> in effect). In this case, since there's only one active file, it 
> advances to nothing. (Closes the current file, and then has no 
> active output file.)
> svn r254 fixes this latter problem, but the UnPause will still 
> cause trouble - the output file will probably be broken. Since it 
> writes the first 128KB of data, and then the server starts over 
> again from the beginning, the file will have the beginning in it 
> twice, and most players will choke if they see data starting over 
> again from zero in an existing stream.
> I'd really rather not have to keep track of Pause/Seek offsets in 
> this code. Perhaps I could have rtmpsuck drop the UnPause command 
> if there is not a Pause currently in effect. Will have to think 
> about it...

Awesome. Thanks a lot. It definitely works now, but as you said, the
beginning of the video plays twice.

Unfortunately, I ran into another problem when trying to use it on the longer
streams on that site. After some time, rtmpsuck will throw out a couple of error
messages, and the video will stop playing. I made another debug log, and here are
the lines right after the last RTMP_SendChunk section:

DEBUG2: RTMP_ReadPacket: fd=5
  0000:  c5                                                 .                 
ERROR: RTMP_ReadPacket, failed to read RTMP packet body. len: 60764
DEBUG: RTMP_SendPause, 1, pauseTime=777685.00
DEBUG2: RTMP_SendPacket: fd=0, size=29
  0000:  48 00 00 00 00 00 1d 14                            H.......          
  0000:  02 00 05 70 61 75 73 65  00 00 00 00 00 00 00 00   ...pause........  
  0010:  00 05 01 01 00 41 27 bb  aa 00 00 00 00            .....A'......     
ERROR: WriteN, RTMP send error 88 (37 bytes)
ERROR: Request timeout/select failed, ignoring request
Closing connection... done!

DEBUG: serverThread: processed request

Caught signal: 2, cleaning up, just a second...
DEBUG: Done, exiting...

I didn't hit the pause button, so I have no idea where that came from.
Any ideas on what's going on here? If you need to see more of the log,
just let me know. I didn't want to upload the whole thing because it's
over 2GB.

Upgrade to Premium IGN Email
- 15MB of space
- No ads!
- Pop3 Downloads

More information about the rtmpdump mailing list