Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister

RTSP/RTP streaming server in Perl!

by amir (Sexton)
on Feb 04, 2002 at 04:16 UTC ( #143156=perlquestion: print w/replies, xml ) Need Help??

amir has asked for the wisdom of the Perl Monks concerning the following question:

I am writing a RTSP streaming media server in Perl! :-) However, I am not able to find any thing about RTSP or RTP in Perl whatsoever, at least no server-side implementations, code, or hints/tips.

I've read RFC 2326 (get it here) on the RTSP protocol, which by the way is very similar to HTTP/1.1. I cannot get RealPlayer or QuickTime player to talk to my server! The server fork()s on incoming requests and is HTTP/1.1-compliant as well as minimally RTSP/1.0-compliant. I am able to recieve data from the RTSP client, but when I send a reply, the clients just hang there, waiting for something... Currently, I am sending replies in several print() statement, would I need to send everything in a buffer?

So, in RTSP terms, the RealPlayer client sends an OPTIONS request for a particular file, and then hangs. The QuickTime client sends a DESCRIBE request for a file, but both clients don't respond to my server's reply message!

I guess my question is quite vague, but I would appreciate any help, tips, comments, pointers, etc. to lead me in the right direction to writing this server.


Replies are listed 'Best First'.
Re: RTSP/RTP streaming server in Perl!
by t0mas (Priest) on Feb 04, 2002 at 11:28 UTC
Re: RTSP/RTP streaming server in Perl!
by z3d (Scribe) on Feb 04, 2002 at 13:57 UTC
    Have you checked out the Darwin streaming server from Apple? True, it is intended for Quicktime, not RealMedia, but since both utilize rtsp it might be worth looking at. If I remember right, their server implementation is written entirely in perl (hence my posting).

    "I have never written bad code. There are merely unanticipated features."
Re: RTSP/RTP streaming server in Perl!
by rdfield (Priest) on Feb 04, 2002 at 09:49 UTC
    Have you set 'autoflush' on your IO handle? (see perlipc)


      select(STDOUT); $| = 1;
      Will the above code do the trick for autoflushing my socket filehandle?
        Nope. That'll autoflush STDOUT: replace STDOUT with whatever name you've given your socket handle, and add select(STDOUT); after the $| = 1; which will reset the default filehandle.


Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://143156]
Approved by root
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (2)
As of 2023-06-04 20:24 GMT
Find Nodes?
    Voting Booth?
    How often do you go to conferences?

    Results (22 votes). Check out past polls.