streaming video Best answer on the web
stream out of an axis webcam (210/210A) and re-encoding it on-the-fly to h.264
suitable for streaming. Maybe something open source that can be
installed/configured on a suitable server.
I have serious bandwidth constraints and need to be able to take
fairely high framerate video from two network cameras, and re-encode
it for streaming out on the internet via a suitable streaming server.
The whole thing needs to be live and must have minimal delay.
The solution can't be too expensive either. Free would be wonderful, a
few hundred $$ might be acceptable. Thousands of $$ won't work.
We are technial and comfortable with OSS software. compiling and installing components is acceptable as long as reasonable instructions/documentation is available.
I would first take a quick look at the VLC streaming page:
http://www.videolan.org/streaming/
You might also try posting your question to the VLC linux or streaming forum. I can give you some suggestions, but others in the VLC community have likely done something similar and can give you more direct advice. Here are the Linux (mostly dealing with the VLC player, rather than the streaming functionality) and Streaming VLC forums:
Linux:
http://forum.videolan.org/viewforum.php?f=13
Streaming:
http://forum.videolan.org/viewforum.php?f=4
My own advice would be to get the fastest Linux or Mac OS X machine you can afford with plenty of memory (2GB or more). As you say, transcoding on-the-fly and streaming are very CPU intensive. Some folks have mentioned that multiplex streaming also chokes the bandwidth quickly as compared to uniplex streaming. One option to take some load off the CPU would be to install a Linux compatible graphics card onto which you could off-load the conversion process. Here is one of the only cards out there that seems to fit this description:
http://www.dspr.com/www/products/video/compression/pci_encoder/4_channel_h264_pci_encoder.htm
Another option would be to use a PCI-express card in a high end Mac OS X machine along with some software to handle the streaming, such as VLC or WireCast. WireCast may require less configuration and automatically takes advantage of multiple CPU's and graphics cards that support OpenGL acceleration (nearly all of them now).
Here's WireCast's site:
http://www.varasoftware.com/products/wirecast/
Perhaps a more robust solution would be to use Mac OS X Server with the built-in Quicktime streaming server software: http://www.apple.com/quicktime/streamingserver/
What are your bandwidth limitations and time frame for getting things up and running? Will this be an episodic broadcast or continuous?
-welte-ga
What kind of bandwidth do you have available at the various point where you'll be receiving and transmitting from (both up and download speeds)?
You can test your bandwidth using this tool from CNet:
http://reviews.cnet.com/7004-7254_7-0.html
Make sure you stop any other programs that are using your bandwidth (e.g. file sharing programs, etc.) before running the test.
-welte-ga
ULiveServer and UMediaServer
(http://www.umediaserver.net/install.html" target="_blank">http://www.umediaserver.net/install.html),
Windows Media Encoder
(http://www.microsoft.com/downloads/details.aspx?FamilyID=5691BA02-E496-465A-BBA9-B2F1182CDF24&displaylang=en" target="_blank">microsoft download center)
or Shoucast
(http://en.wikipedia.org/wiki/Shoutcast" target="_blank">http://en.wikipedia.org/wiki/Shoutcast)
-welte-ga
-welte-ga
I really want to be able to transcode (if that's the proper use of the term) the MPEG4 stream on the fly and have the 2-3 remote people pull the video stream off the server as a H.264 stream of some sort. Seems we aught to be able to compress the video some by re-encoding it.
Are you not thinking this is doable with VLC?
Another option, although it would require scrapping parts of your current plan, would be to use iChat and iMacs. iChat has built-in H.264 compression. For this option, Apple states that the host must have 384Kbps up and downstream bandwidth. Participants need 100Kbps up and downstream bandwidth. Here's a promo page on this approach: http://www.apple.com/macosx/features/ichat/
Here's a video on using iChat (requires Quicktime):
http://www.apple.com/macosx/theater/ichat.html
-welte-ga
I believe that VLC (VideoLan) can perform the task you require and is free (and open source). It incorporates multiple other open source technologies, such as FFMPEG for transcoding. It also purports to be able to transcode from nearly any format to any other format (including h.264 using the open source x264 transcoder) on the fly, provided that there is enough computational power to not drop frames, etc. VLC is highly configurable, so that you could, for example decrease the frames per second or bitrate to get a smoother stream. There are precompiled binaries available for a large number of platforms, including several flavors of linux and Mac OS X.
Take a look at the (extensive) documentation and let me know if this would meet your needs. If so I will post as an answer to your question.
Streaming instructions (command line):
http://www.videolan.org/doc/streaming-howto/en/ch03.html
VLC Streaming How-To:
http://www.videolan.org/doc/
(Select the version you prefer, HTML, PDF, etc.)
-welte-ga
-welte-ga
This involves two webcams (Axis 210) in a board room that's properly configured to pick up individuals around a squarish table. We're bringing in remotely 2-3 individuals.
Each remote individual needs to have a feed from each webcam, which they put side-by-side to get a panoramic view. They in turn broadcast via a small webcam their immage, which is displayed on a large screen in the board room on one end of the table life size.
Audio is done over the phone system through audio conferencing. We've tried it and it all works great. However the video streams out of the webcams are somewhat bandwidth intensive, and I was wishing to re-encode them on the fly, so that when the image leaves our network for the remote folks it doesn't hog so much bandwidth
So I'm looking to configure a server to pull the video off of the webcam, and re-broadcast it H.264 encoded hopefully at a lower bandwidth. With rock-solid audio, we can live with 10 frames per second or so on the video.
Hopefully that answers your question. I have a dual cpu dell server with about 2 GB of ram coming. Do you think that will do the trick?
ULiveServer and UMediaServer
(http://www.umediaserver.net/install.html)
Windows Media Encoder
(http://www.microsoft.com/downloads/details.aspx?FamilyID=5691BA02-E496-465A-BBA9-B2F1182CDF24&displaylang=en)
or Shoucast
(http://en.wikipedia.org/wiki/Shoutcast)
It`s most popular and simple way to stream your video & audio.
I'd like to get a frame rate of about 10 fps if I can at a higher resolution. But I'm guessing some experimentation will need to be done.
Your question will expire tomorrow. I'm not sure if you can extend the expiration date or repost it until resolved.
-welte-ga
#If you have any other info about this subject , Please add it free.# |