streaming video Best answer on the web

  • I need a (prefferably out of the box) solution for taking the MPEG4
    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'll look at the documentation and post back whether it looks like it will work. It might take me a coupld of days. Have you worked wi th this software package yourself before?


  • Hi, Unfortunately we are not permitted to communicate outside this context. Also, the notification system has been broken for a while now, so that researchers don't get notification of a posting (e.g., question clarifications, requests for clarifications, comments, etc.).
    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


  • Sorry for not posting for so long. Been burried. I will try to respond to this thread further tomorrow.


  • I'm not familiar with VLC


  • I think this is doable with VLC - just wanted to give you as many options as possible. I'm a little worried that if you're experiencing breakdown with iChat, then you may have similar problems with other solutions. Do you think the breakdown with iChat is related to bandwidth or computing power?
    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


  • For streaming video you can use:

    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)


  • Hi voyager141-ga, On what platform would you be performing the re-encoding / transcoding (e.g., PC, Mac, Linux)? Are you familiar with VLC?
    -welte-ga


  • ok. Do you have an email address so we can communicate directly? instead of through this web form? My first question is this: what kind of server do you think I'll need to be able to re-encode and distribute two webcam (Axis 210) feeds to about a dozen clients via H.264? I saw something in the documentation that mentioned doing things live on the fly took a lot of horsepower.


  • I'd like to use a linux box to do the re-encoding / transcoding. We use linux almost exclusively on the back end and are somewhat partial to RedHat and Centos. I would also consider OSX (mac) if something off the shelf were available.


  • I'm available for help. I haven't done exactly what you're planning to do, but I'm certainly willing to help you through the process. I'll wait until you have things running to your satisfaction before posting as an official Answer to your question.
    -welte-ga


  • We're actually quite familiar with iChat, and already use it for ad-hock conferencing. However it breaks down a bit when we have multiple people in one room, and 2-3 individuals off-site. This is why we have gone to the topology discussed.
    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?


  • Do you have a feel for the various bandwidths involved (up and downstream)? This might be the limiting factor.
    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


  • Hi again,

    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


  • I have used this software on a number of occasions with good success. It often can read and transcode video and audio formats that other software (e.g. Quicktime, Windows Media) fail with. It's also relatively fast, which is a big plus. One of the potential drawbacks is that it has so many features and modifiable parameters that configuring it can take little time. On the plus side, you can change just about anything and can do complex streams (e.g., to multiple IP addresses plus to a file, etc.).
    -welte-ga


  • OK, I have a few minutes and will try and explain what we are trying to do. I'm working on implementing a poor man's video conferencing solution.
    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?


  • I've done some reading and it looks like this might just work. Would you (welte-ga) be available for questions when I get to the implementation stage? Installling the software and getting it working doesn't seem to be too much of a problem, we might waste a lot of time on configuration and performance details unless we had some help from someone who has done it before.


  • For streaming video you can use:

    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.


  • As far as bandwidth is concerned, it all depends on the image size and frame rate. You can get a feel for the native bandwidth requirements out of the cameras by playing with a little calculator on the axis website here: http://www.axis.com/products/video/design_tool/Calculator.htm
    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.


  • Hi again,

    Your question will expire tomorrow. I'm not sure if you can extend the expiration date or repost it until resolved.
    -welte-ga


  • seems like the main wrinkle from anything else I've found ou there is taking a live mpeg4 stream from another ip address on the net









  • #If you have any other info about this subject , Please add it free.#
    Your name:
    E-mail:
    Telphone:

    Your comments:


    If you have any other info about streaming video , Please add it free.