Page 1 of 1

streaming from firewire

Posted: 01 Jan 2005 21:22
by vvs
I've just spent hours with reading this forum, and I couldn't get the answer: can I stream from firewire?

What I want is: stream from an analoug source through firewire port (I have Canopus ADVC-300), transcode the A/V signal to something with smaller bitrate (800-1500 bps) and than stream it on the inner network of my university. And this stream should be able to watch by ~200 users at the same time.

So is it possible? With normal picture and audio, and will it be stable (continuous streaming for a week for example).
And if works, what are the hardware requirements to run smoothly?

I can use a quite strong machine for it, but if required, I can get a second one also.

Thanks for helping.

Posted: 07 Feb 2005 03:52
by Guest
I'm doing the same thing in linux and I know the following works because I've just finished a truckload of research and I've finally made my linux software package selection (must source only strong well maintained packages before committing to maintaining fast moving linux packages on your servers):

1) Download and build (make/configure/etc) Coriander from source. It's avail at http://www.tele.ucl.ac.be/PEOPLE/DOUXCH ... coriander/
2) Download and build videolan's VLC from source, avail nearby ;-)
3) Use Coriander to read your Conopus DV-transport-stream-over-firewire from the firewire port.
4) Use Coriander's V4L Export to transcode and write the DV-transport-stream to the video4windows V4L device. **
5) Use Videolan's VLC to read, transcode and broadcast as follows:
a) read from the default V4L device
b) re-encapsulate the MPEG2 audio and video in the DV-transport-stream to an IP-friendly transport stream which is readable by whichever client app you will install/is already installed on the majority of your client PCs ****
c) broadcast the resulting stream to your clients using either unicast or multicast depending on whether your network routers run multicast.

** I haven't confirmed if V4L2 is avail in Coriander, but if it is I recommend that as it has a brighter future.

**** Eg: HTTP, pure UDP, RTP/RTSP, MPEG-TS, MPEG-PS, etc...
You can even transcode the MPEG2 stream (from the Canopus) into MPEG4 or H264 to reduce bandwidth at the expense of client CPU to decode. Select a workable combo from the online doc at:
http://www.videolan.org/streaming/features.html

I always recommend building from source over installing binary linux video packages from different projects (Coriander/Videolan) which will be used together. Although you may get lucky the first time, the next package upgrade from one or the other project will often break the communication between packages. The linux video developers are still thin on the ground, the technology is moving quickly, and users want the latest features, so each project often releases binary packages usually requiring conflicting dependent packages (similar to the bad old days of windows dll hell).
Building from source overcomes most if not all of those limits, and building from source is much quicker than searching for compatible linux binary packages.

Posted: 07 Feb 2005 06:09
by peterg-p8
The above was my post.

Coriander uses the video4linux loopback device when exporting as V4L.

There's a possiblity of solving this using less CPU using another package, dvgrab (an independent part of the DV editor Kino), which uses an equally well established but a more direct approach to reading the DV stream from firewire and feeding it to VLC. dvgrab is able to send output to stdout and VLC accepts input from stdin, so the transfer may be able to be made as follows:
#dvgrab - | vlc -

I read a response to a similar firewire question from the developer of the VLC-port-for-MacOSX here: viewtopic.php?t=5470
It implies that VLC should be able to understand the input DV transport stream from dvgrab (instead of an input V4L stream from Coriander) provided VLC is built with dvlib support. Ie: when 'configuring' the VLC build supply the string --enable-dv on the command line, and provide the source for the library dvlib disk in its default location (or edit 'make' and change paths).

I read the source for the VLC unstable release on 20041002 and the 'configure' script includes no such option "--enable-dv" (although it does include "--enable-dvb") so I think that response was actually in error.

I am not yet convinced this will work but I will research newer unstable releases of VLC for --enable-dv because the promise of using less CPU is greatly beneficial.

...pete[/img]

Posted: 12 Feb 2005 11:25
by vvs
Thanks for the tips, I'll try these ideas, and will share the results with you, or ask for more help :D

Unfortunately, I'll do this only in mid-March.

Áron