Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

RTSP/RTP streaming server in Perl!

by amir (Sexton)
on Feb 04, 2002 at 04:16 UTC ( [id://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.

Thanks,
Amir

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)

    rdfield

      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.

        rdfield

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (8)
As of 2024-04-25 11:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found