The end goal of my project is to create a system which records TV from a TV capture card, streams it live viewable in a web page, and stores a copy on the hard drive. It seems like a rather simple concept, but I've been struggling with this for weeks. I've asked on the Ubuntu help forums, the VideoLAN.org forums and now here. Someone out there has to have done something like this without using one of the expensive streaming servers (Adobe Streaming Server/Wowza).
The key point I'm stuck at is the live stream because it has the following characteristics.
- When a user begins viewing the stream they start at the current point, not the beginning (this can be done with any seekable system, even a psuedostreamer).
- The stream needs to dynamically update such that the player (Flowplayer or JWplayer) can continue to show the newly encoded data. I tried lighttpd's mod_flv_streaming and ran into the issue which is that once a user begins streaming, the player considers the file "finished" and will not retrieve new data from the server even though new data is added every second.
My nearest attempt was using VLC streaming over HTTP. I used the following encoding line:
WORKS - Access stream locally (same Ubuntu box that is streaming it) in a separate instance of VLC accessing -
SEMI-WORKS - Access the stream from another computer on the LAN. I say semi works because it takes 45 seconds to a minute in order to load the stream, which is odd and signals that something is awry.
- WORKS - I am able to get Flowplayer to play the stream when accessed from the local Ubuntu box pointing to it's own Apache web server by pointing Firefox to
http://192.168.0.75/flowplayer/example/index.html (which references the stream athttp://192.168.0.75:8080/file.flv`).
- SEMI BARELY HORRIBLY WORKS - If I attempt to access that same html file from a computer on the LAN, the player shows up, has the swirling logo for a moment, and then appears blank with just the text "flowplayer" in the bottom left. No video, no sound, just blank. Mousing over it displays the controls. Oddly, if I leave the browser open for hours, and I mean hours eventually the video will appear and begin streaming live.
My main questions center around the following concepts: Should I be using VLC's RTP/RTSP/RTMP? If so, how do I set that up? I've tried a billion times and have yet to get something set up locally, let alone remotely. Am I solely restricted to FLV files? All that matters is that Flowplayer can play it in a cross-browser compliant manner, so might I have better luck with a different container? WTF is a .ts file/segmenter? Is my only option trying to get something like Red5 working, or buying one of the expensive servers? If so, why does VLC have a RTP option, yet it never works?
Any guidance, or suggestions would be greatly appreciated. Here's my original thread on VLC Forums which unfortunately got crickets.