Re: Relaying video streams

2008-11-20 Thread Frank DiPrete


[EMAIL PROTECTED] wrote:
 Date: Wed, 19 Nov 2008 08:22:15 -0500
 From: Frank DiPrete [EMAIL PROTECTED]
 Cc: GNHLUG mailing list gnhlug-discuss@mail.gnhlug.org
 
 function proxy_stream($flv_url) {

   $curl_handle=curl_init();
   curl_setopt($curl_handle, CURLOPT_URL, $flv_url );
   curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,3);
   curl_exec($curl_handle);
   curl_close($curl_handle);

 }

 2) take that output to a pipe and shove it down the browser's throat
 The important bit is the fpassthru function so as not to mangle the 
 stream but just send it out again raw.

 function transmit_stream($flv_file) {

   $pos = 0;

   header(Content-Type: video/x-flv);
   header('Content-Length: ' . filesize($flv_file));
 
 Wait, how do you plan to get the content length for the stream?

you don't - it's a live stream without end. Apache will send the output 
chunked.

 
   $fh = fopen($flv_file,rb);
   fseek($fh, $pos);
   fpassthru($fh);
 
 
 For those on the list who don't know PHP, rb means binary read-only;
 fpassthru reads $fh to EOF and stuffs it into the output buffer.
 
   fclose($fh);

 }

 The trick now it to connect the ouput pipe from curl into the retransmit 
function instead of operating on files. If a pipe from a webcam in 
 proxy_stream() is already open, then don't call the curl function. In 
 theory it would work (haven't tried it yet)
 
 This *might* work, if the stream was in a raw format and the
 passthrough was done in blocks the size of a single video frame.  The
 clients might not like jumping into a video stream mid-frame (which
 could happen if you just start sending them stream data whenever they
 connect).  The client would miss out on all the header information, as
 well as loose frame sync.  Some codecs might be able to recover from
 such an extraordinary lack of metadata.  It seems risky to depend on
 that level of resilience in the codec.
 
 One thing that might work is a SIP proxy (maybe Asterisk?) on a host
 with high bandwidth available.  A single transmission to the proxy,
 which could then conference everyone else in.  That could require
 viewers to have videoconferencing software, which might be asking too
 much.
 
 Perhaps some kind of RPC to the server could be used to spawn a farm
 of mencoder filters with -aoc copy -ovc copy and an appropriately
 calculated -sb value.
 
 Oh, I got it! (See?  You can solve any problem if you talk to yourself
 enough!)
 
 Have the video source (whatever machine is pulling the mpeg) count the
 bytes and frames.  Then, every 5 seconds or so, transmit a sync report
 to the proxy.  The proxy can then calculate and pass that -sb to
 mencoder.  Giving the user the ability to join the feed with a 5
 second resolution would probably be just fine.
 ___
 gnhlug-discuss mailing list
 gnhlug-discuss@mail.gnhlug.org
 http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/
 
 
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: Relaying video streams

2008-11-20 Thread Frank DiPrete


Bruce Dawson wrote:
 Frank DiPrete wrote:
 Bruce Dawson wrote:
   
 We've got several web cams that people like to visit
 (www.milessmithfarm.net). However, they're chewing up bandwidth when
 more than one person at a time views them.

 Is anyone aware of a Linux based video re-broadcaster (either software
 or a service)?

 We'd like to upload the video streams to a single server that multiple
 people can connect to and view them. This way, we're only sending one
 video stream up to the server, and the server can rebroadcast it to all
 the connected clients.

 --Bruce
 
 It sounds like the sources are live streams (web cams) and not files 
 that can be uploaded to another server for download / viewing.

 A multi unicast scenario.
   
 ...
 
 The above is correct.
 
 But we haven't solved the original problem yet.
 Item 1) starts a stream from the webcam so you still pound your uplink 
 for each request, but a little program logic may work here.
   
 
 I think we sorta solved it. I only want one stream going out, and then
 the repeater (PHP) will repeat it to multiple clients.
 I've done this sort of thing with php.
 These code examples are for an flv source for a youtube re-creatiom 
 problem I worked on recently, but you would just change the mime / file 
 type.

 Your server could:

 1) anchor the stream with php curl

 function proxy_stream($flv_url) {

   $curl_handle=curl_init();
   curl_setopt($curl_handle, CURLOPT_URL, $flv_url );
   curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,3);
   curl_exec($curl_handle);
   curl_close($curl_handle);

 }

 2) take that output to a pipe and shove it down the browser's throat
 The important bit is the fpassthru function so as not to mangle the 
 stream but just send it out again raw.

 function transmit_stream($flv_file) {

   $pos = 0;

   header(Content-Type: video/x-flv);
   header('Content-Length: ' . filesize($flv_file));
   $fh = fopen($flv_file,rb);
   fseek($fh, $pos);
   fpassthru($fh);
   fclose($fh);

 }

 The trick now it to connect the ouput pipe from curl into the retransmit 
function instead of operating on files. If a pipe from a webcam in 
 proxy_stream() is already open, then don't call the curl function. In 
 theory it would work (haven't tried it yet)

 Including a player frame on the server page is another added fun bit.
 I used flowplayer and ffmpeg.

   
 OK. Thanks. I'll play with those. I'll probably pipe the output from
 proxy_stream to shared memory so there will be only one connection.
 Then have transmit_stream copy from the shared memory to the client.
 This will avoid the problem of Apache/PHP creating a new proxy_stream
 for each connection.
 
 However, I'm concerned about corrupting data streams to the client if a
 PHP process was unable to send out a shared memory segment.
 
 --Bruce
 
 

Please let us/me know how you make out with this approach.
Very cool if it works.

___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: Relaying video streams

2008-11-20 Thread Thomas Charron
On Wed, Nov 19, 2008 at 8:36 PM, Bruce Dawson [EMAIL PROTECTED] wrote:
 http://camstreams.com/
 Interesting service, and looks like something I want - except it
 requires the broadcaster (me) to run the camstreams encoder on a
 Windows box.
 I don't mind encoding for such a service, but I don't want to run
 Windows. It must run on either Linux or Unix.

  While I haven't ever actually used their service, they simply want
the data to be in a Microsoft format.  VLC could stream it as well.
But while being an 'end to end' video solution, it IS reliant on that
data being all microsoft format.

-- 
-- Thomas
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: Relaying video streams

2008-11-19 Thread Bruce Dawson
[EMAIL PROTECTED] wrote:
 Date: Tue, 18 Nov 2008 20:06:35 -0500
 From: Bruce Dawson [EMAIL PROTECTED]
 

 We'd like to upload the video streams to a single server that multiple
 people can connect to and view them. This way, we're only sending one
 video stream up to the server, and the server can rebroadcast it to all
 the connected clients.
 

 No matter where the server is, sending a fresh unicast copy to every
 client will consume (ie, waste) bandwidth.
True, but the idea is to stream to multiple clients from an ISP that
supports a high outgoing bandwidth, and to provide that stream from an
ISP connection that doesn't (like DSL/broadband/...) The high output
ISP would, in effect, become a repeater.

--Bruce

___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: Relaying video streams

2008-11-19 Thread Frank DiPrete


Bruce Dawson wrote:
 We've got several web cams that people like to visit
 (www.milessmithfarm.net). However, they're chewing up bandwidth when
 more than one person at a time views them.
 
 Is anyone aware of a Linux based video re-broadcaster (either software
 or a service)?
 
 We'd like to upload the video streams to a single server that multiple
 people can connect to and view them. This way, we're only sending one
 video stream up to the server, and the server can rebroadcast it to all
 the connected clients.
 
 --Bruce

It sounds like the sources are live streams (web cams) and not files 
that can be uploaded to another server for download / viewing.

A multi unicast scenario.

I don't know of an off the shelf open video streaming server that does 
this. I've used Darwin and it works well for streaming stored files on 
request - as long as they are 3gp's or mp4 mov's.

What your server would have to do is:
1) anchor the stream from the webcam
2) send it back out to the viewing client on request

This can start to get tricky if you want people to be able to view it on 
a web page as opposed to using whatever native client they have. Viewing 
it on a web page often is done with a flash app flv movie player (ie 
re-creating youtube - some people may know what I mean by that ;) )

In that case your server would
1) anchor the stream from the webcam
2) transcode the stream to flv
3) use a flash flv player to display the video

But we haven't solved the original problem yet.
Item 1) starts a stream from the webcam so you still pound your uplink 
for each request, but a little program logic may work here.

I've done this sort of thing with php.
These code examples are for an flv source for a youtube re-creatiom 
problem I worked on recently, but you would just change the mime / file 
type.

Your server could:

1) anchor the stream with php curl

function proxy_stream($flv_url) {

  $curl_handle=curl_init();
  curl_setopt($curl_handle, CURLOPT_URL, $flv_url );
  curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,3);
  curl_exec($curl_handle);
  curl_close($curl_handle);

}

2) take that output to a pipe and shove it down the browser's throat
The important bit is the fpassthru function so as not to mangle the 
stream but just send it out again raw.

function transmit_stream($flv_file) {

  $pos = 0;

  header(Content-Type: video/x-flv);
  header('Content-Length: ' . filesize($flv_file));
  $fh = fopen($flv_file,rb);
  fseek($fh, $pos);
  fpassthru($fh);
  fclose($fh);

}

The trick now it to connect the ouput pipe from curl into the retransmit 
   function instead of operating on files. If a pipe from a webcam in 
proxy_stream() is already open, then don't call the curl function. In 
theory it would work (haven't tried it yet)

Including a player frame on the server page is another added fun bit.
I used flowplayer and ffmpeg.



 ___
 gnhlug-discuss mailing list
 gnhlug-discuss@mail.gnhlug.org
 http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/
 
 
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: Relaying video streams

2008-11-19 Thread Thomas Charron
  I dunno, but you web cams right now aren't in a happy state.  Apache
default directories and the such.  :-D

On Tue, Nov 18, 2008 at 8:06 PM, Bruce Dawson [EMAIL PROTECTED] wrote:
 We've got several web cams that people like to visit
 (www.milessmithfarm.net). However, they're chewing up bandwidth when
 more than one person at a time views them.

 Is anyone aware of a Linux based video re-broadcaster (either software
 or a service)?

 We'd like to upload the video streams to a single server that multiple
 people can connect to and view them. This way, we're only sending one
 video stream up to the server, and the server can rebroadcast it to all
 the connected clients.

 --Bruce
 ___
 gnhlug-discuss mailing list
 gnhlug-discuss@mail.gnhlug.org
 http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/




-- 
-- Thomas
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: Relaying video streams

2008-11-19 Thread VirginSnow
 Date: Wed, 19 Nov 2008 08:22:15 -0500
 From: Frank DiPrete [EMAIL PROTECTED]
 Cc: GNHLUG mailing list gnhlug-discuss@mail.gnhlug.org

 function proxy_stream($flv_url) {
 
   $curl_handle=curl_init();
   curl_setopt($curl_handle, CURLOPT_URL, $flv_url );
   curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,3);
   curl_exec($curl_handle);
   curl_close($curl_handle);
 
 }
 
 2) take that output to a pipe and shove it down the browser's throat
 The important bit is the fpassthru function so as not to mangle the 
 stream but just send it out again raw.
 
 function transmit_stream($flv_file) {
 
   $pos = 0;
 
   header(Content-Type: video/x-flv);
   header('Content-Length: ' . filesize($flv_file));

Wait, how do you plan to get the content length for the stream?

   $fh = fopen($flv_file,rb);
   fseek($fh, $pos);
   fpassthru($fh);


For those on the list who don't know PHP, rb means binary read-only;
fpassthru reads $fh to EOF and stuffs it into the output buffer.

   fclose($fh);
 
 }
 
 The trick now it to connect the ouput pipe from curl into the retransmit 
function instead of operating on files. If a pipe from a webcam in 
 proxy_stream() is already open, then don't call the curl function. In 
 theory it would work (haven't tried it yet)

This *might* work, if the stream was in a raw format and the
passthrough was done in blocks the size of a single video frame.  The
clients might not like jumping into a video stream mid-frame (which
could happen if you just start sending them stream data whenever they
connect).  The client would miss out on all the header information, as
well as loose frame sync.  Some codecs might be able to recover from
such an extraordinary lack of metadata.  It seems risky to depend on
that level of resilience in the codec.

One thing that might work is a SIP proxy (maybe Asterisk?) on a host
with high bandwidth available.  A single transmission to the proxy,
which could then conference everyone else in.  That could require
viewers to have videoconferencing software, which might be asking too
much.

Perhaps some kind of RPC to the server could be used to spawn a farm
of mencoder filters with -aoc copy -ovc copy and an appropriately
calculated -sb value.

Oh, I got it! (See?  You can solve any problem if you talk to yourself
enough!)

Have the video source (whatever machine is pulling the mpeg) count the
bytes and frames.  Then, every 5 seconds or so, transmit a sync report
to the proxy.  The proxy can then calculate and pass that -sb to
mencoder.  Giving the user the ability to join the feed with a 5
second resolution would probably be just fine.
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: Relaying video streams

2008-11-19 Thread Thomas Charron
On Tue, Nov 18, 2008 at 8:06 PM, Bruce Dawson [EMAIL PROTECTED] wrote:
 We've got several web cams that people like to visit
 (www.milessmithfarm.net). However, they're chewing up bandwidth when
 more than one person at a time views them.
 Is anyone aware of a Linux based video re-broadcaster (either software
 or a service)?
 We'd like to upload the video streams to a single server that multiple
 people can connect to and view them. This way, we're only sending one
 video stream up to the server, and the server can rebroadcast it to all
 the connected clients.

  I can't speak for their use for your purposes (I cant go check right
now, firewall says apperently webcams aren't work related, go figure),
but I did search thru my email when talking to someone else in the
past about this very subject.

http://camstreams.com/

-- 
-- Thomas
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: Relaying video streams

2008-11-19 Thread Ben Scott
On Wed, Nov 19, 2008 at 12:52 AM, Ben Scott [EMAIL PROTECTED] wrote:
  Sure.  Just multicast, for that matter.  The problem is that
 effectively zero public routers forward multicast datagrams ...

  FYI, I did find some resources on this:

Multicast over TCP/IP HOWTO (1998)
http://tldp.org/HOWTO/Multicast-HOWTO.html

RFC-3170: IP Multicast Applications: Challenges and Solutions (2001)
http://www.apps.ietf.org/rfc/rfc3170.html

-- Ben
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: Relaying video streams

2008-11-19 Thread Bill McGonigle
On 2008-11-19 8:22 AM, Frank DiPrete wrote:
 I've used Darwin and it works well for streaming stored files on
 request - as long as they are 3gp's or mp4 mov's.

I think there's _some_ way to do it, e.g. from the FAQ:

Q. Can I configure DSS to stream live .mp4, .3gp, or .mov streams to 
simulate a radio or tv station to connected users?

Yes. Use the PlaylistBroadcaster that is part of DSS, to stream hinted 
files from a server side playlist to DSS. All video files must have the 
same frame size and use the same codec and all audio files must have 
the same sample size and use the same codec.

I think with an all-macintosh solution you'd use Quicktime Brodcaster to 
create the RTSP stream; but I've never actually done this so it's just 
what I'm reading.  I'll have an opportunity to use someting like this in 
May for a nonprofit centennial so I'll pay attention here.

-Bill
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: Relaying video streams

2008-11-19 Thread Bill Mullen
On Wed, 19 Nov 2008 07:38:05 -0500,
Bruce Dawson wrote:

 VirginSnow wrote:
  Date: Tue, 18 Nov 2008 20:06:35 -0500
  From: Bruce Dawson 
 
  We'd like to upload the video streams to a single server that
  multiple people can connect to and view them. This way, we're only
  sending one video stream up to the server, and the server can
  rebroadcast it to all the connected clients.
 
  No matter where the server is, sending a fresh unicast copy to every
  client will consume (ie, waste) bandwidth.
 
 True, but the idea is to stream to multiple clients from an ISP that
 supports a high outgoing bandwidth, and to provide that stream from an
 ISP connection that doesn't (like DSL/broadband/...) The high output
 ISP would, in effect, become a repeater.

Perhaps VLC is the right tool for the job?

http://wiki.videolan.org/Documentation:Streaming_HowTo

From a quick glance, it looks as if running VLC on said server would
allow you to have it connect from there to your source streams, and then
make those streams available to clients connecting to it from the WAN.

HTH!

-- 
Bill Mullen
RLU #270075


___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: Relaying video streams

2008-11-19 Thread Bruce Dawson
Frank DiPrete wrote:
 Bruce Dawson wrote:
   
 We've got several web cams that people like to visit
 (www.milessmithfarm.net). However, they're chewing up bandwidth when
 more than one person at a time views them.

 Is anyone aware of a Linux based video re-broadcaster (either software
 or a service)?

 We'd like to upload the video streams to a single server that multiple
 people can connect to and view them. This way, we're only sending one
 video stream up to the server, and the server can rebroadcast it to all
 the connected clients.

 --Bruce
 

 It sounds like the sources are live streams (web cams) and not files 
 that can be uploaded to another server for download / viewing.

 A multi unicast scenario.
   
...

The above is correct.

 But we haven't solved the original problem yet.
 Item 1) starts a stream from the webcam so you still pound your uplink 
 for each request, but a little program logic may work here.
   

I think we sorta solved it. I only want one stream going out, and then
the repeater (PHP) will repeat it to multiple clients.
 I've done this sort of thing with php.
 These code examples are for an flv source for a youtube re-creatiom 
 problem I worked on recently, but you would just change the mime / file 
 type.

 Your server could:

 1) anchor the stream with php curl

 function proxy_stream($flv_url) {

   $curl_handle=curl_init();
   curl_setopt($curl_handle, CURLOPT_URL, $flv_url );
   curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,3);
   curl_exec($curl_handle);
   curl_close($curl_handle);

 }

 2) take that output to a pipe and shove it down the browser's throat
 The important bit is the fpassthru function so as not to mangle the 
 stream but just send it out again raw.

 function transmit_stream($flv_file) {

   $pos = 0;

   header(Content-Type: video/x-flv);
   header('Content-Length: ' . filesize($flv_file));
   $fh = fopen($flv_file,rb);
   fseek($fh, $pos);
   fpassthru($fh);
   fclose($fh);

 }

 The trick now it to connect the ouput pipe from curl into the retransmit 
function instead of operating on files. If a pipe from a webcam in 
 proxy_stream() is already open, then don't call the curl function. In 
 theory it would work (haven't tried it yet)

 Including a player frame on the server page is another added fun bit.
 I used flowplayer and ffmpeg.

   
OK. Thanks. I'll play with those. I'll probably pipe the output from
proxy_stream to shared memory so there will be only one connection.
Then have transmit_stream copy from the shared memory to the client.
This will avoid the problem of Apache/PHP creating a new proxy_stream
for each connection.

However, I'm concerned about corrupting data streams to the client if a
PHP process was unable to send out a shared memory segment.

--Bruce

___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: Relaying video streams

2008-11-19 Thread Bruce Dawson
Bill Mullen wrote:
 On Wed, 19 Nov 2008 07:38:05 -0500,
 Bruce Dawson wrote:

   
 VirginSnow wrote:
 
 Date: Tue, 18 Nov 2008 20:06:35 -0500
 From: Bruce Dawson 
 
 We'd like to upload the video streams to a single server that
 multiple people can connect to and view them. This way, we're only
 sending one video stream up to the server, and the server can
 rebroadcast it to all the connected clients.
 
 No matter where the server is, sending a fresh unicast copy to every
 client will consume (ie, waste) bandwidth.
   
 True, but the idea is to stream to multiple clients from an ISP that
 supports a high outgoing bandwidth, and to provide that stream from an
 ISP connection that doesn't (like DSL/broadband/...) The high output
 ISP would, in effect, become a repeater.
 

 Perhaps VLC is the right tool for the job?

 http://wiki.videolan.org/Documentation:Streaming_HowTo

 From a quick glance, it looks as if running VLC on said server would
 allow you to have it connect from there to your source streams, and then
 make those streams available to clients connecting to it from the WAN.

 HTH!

   
I've looked at VLC and VLM, but can't tell if those will do what I want.
I suspect it will stream without a problem, but I can't determine if it
will allow multiple clients to attach to the same stream.

--Bruce

___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: Relaying video streams

2008-11-19 Thread Bruce Dawson
Ben Scott wrote:
 On Wed, Nov 19, 2008 at 12:52 AM, Ben Scott [EMAIL PROTECTED] wrote:
   
  Sure.  Just multicast, for that matter.  The problem is that
 effectively zero public routers forward multicast datagrams ...
 

   FYI, I did find some resources on this:

 Multicast over TCP/IP HOWTO (1998)
 http://tldp.org/HOWTO/Multicast-HOWTO.html

 RFC-3170: IP Multicast Applications: Challenges and Solutions (2001)
 http://www.apps.ietf.org/rfc/rfc3170.html
   

Thanks, but I seem to remember a message indicating that the RFC's
expired and the multicast addresses have been re-purposed. I'm not
sure about that though - it may have occurred in a [bad] dream.

However, your earlier point about public routers forwarding multicast
datagrams is well taken, so I don't think multicast will work for the
joe-beer-drinker or mom-and-pop crowd (which seem to be the main
audience for these webcams).

--Bruce
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: Relaying video streams

2008-11-19 Thread Bruce Dawson
Thomas Charron wrote:
 On Tue, Nov 18, 2008 at 8:06 PM, Bruce Dawson [EMAIL PROTECTED] wrote:
   
 We've got several web cams that people like to visit
 (www.milessmithfarm.net). However, they're chewing up bandwidth when
 more than one person at a time views them.
 Is anyone aware of a Linux based video re-broadcaster (either software
 or a service)?
 We'd like to upload the video streams to a single server that multiple
 people can connect to and view them. This way, we're only sending one
 video stream up to the server, and the server can rebroadcast it to all
 the connected clients.
 

   I can't speak for their use for your purposes (I cant go check right
 now, firewall says apperently webcams aren't work related, go figure),
 but I did search thru my email when talking to someone else in the
 past about this very subject.

 http://camstreams.com/

   
Interesting service, and looks like something I want - except it
requires the broadcaster (me) to run the camstreams encoder on a
Windows box.

I don't mind encoding for such a service, but I don't want to run
Windows. It must run on either Linux or Unix.

--Bruce
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: Relaying video streams

2008-11-19 Thread Bruce Dawson
Thomas Charron wrote:
   I dunno, but you web cams right now aren't in a happy state.  Apache
 default directories and the such.  :-D
   

Right. I just shutdown the Apache proxies so we could have some
bandwidth. Seems someone jumps on the cameras within minutes of setting
up the proxies. It would be OK if they were on for a minute or two, but
they're camping out, and they're usually from residental IPs. Then,
after a few hours, I've got about 6 users on them.

--Bruce
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: Relaying video streams

2008-11-19 Thread Seth Cohn
 I think we sorta solved it. I only want one stream going out, and then
 the repeater (PHP) will repeat it to multiple clients.

I've sent Bruce the scripts that my coworker wrote, which use curl,
ffmpeg, and ffserver, and certainly the same idea with VLC and other
'server' software could be substituted.

I think the question is going to be stability, memory and cpu usage
(per client, per stream, per feed, etc).
The same basic principles will be used regardless, it's mostly a
matter of what works best (best being maximized good/fast/cheap where
the variables would be cpu/bandwidth/crashes/etc

Bruce, sounds like you can experiment and see what works best in a
real world setup, so maybe a good page documenting it for future open
source webcammers?
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: Relaying video streams

2008-11-19 Thread Thomas Charron
On Wed, Nov 19, 2008 at 8:42 PM, Bruce Dawson [EMAIL PROTECTED] wrote:
 Thomas Charron wrote:
   I dunno, but you web cams right now aren't in a happy state.  Apache
 default directories and the such.  :-D
 Right. I just shutdown the Apache proxies so we could have some
 bandwidth. Seems someone jumps on the cameras within minutes of setting
 up the proxies. It would be OK if they were on for a minute or two, but
 they're camping out, and they're usually from residental IPs. Then,
 after a few hours, I've got about 6 users on them.

  Hrm, you sure you didn't end up on some webcam 'indexer' site that
has a direct link to your webcams?

-- 
-- Thomas
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: Relaying video streams

2008-11-19 Thread Bruce Dawson
Seth Cohn wrote:
 I think we sorta solved it. I only want one stream going out, and then
 the repeater (PHP) will repeat it to multiple clients.
 

 I've sent Bruce the scripts that my coworker wrote, which use curl,
 ffmpeg, and ffserver, and certainly the same idea with VLC and other
 'server' software could be substituted.

 I think the question is going to be stability, memory and cpu usage
 (per client, per stream, per feed, etc).
 The same basic principles will be used regardless, it's mostly a
 matter of what works best (best being maximized good/fast/cheap where
 the variables would be cpu/bandwidth/crashes/etc
   

Given past experience, I believe you are correct!

 Bruce, sounds like you can experiment and see what works best in a
 real world setup, so maybe a good page documenting it for future open
 source webcammers?
   


That's in my plan. And possibly a presentation.

I *hope* to get to this during the holiday season; its the only chance I
have to get the necessary testing done. (Seems retirement didn't free
up as much time as I thought it would.)

--Bruce
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: Relaying video streams

2008-11-18 Thread Seth Cohn
I know someone at work who did just this sort of thing recently.  I'll
get details and get back to you.

On 11/18/08, Bruce Dawson [EMAIL PROTECTED] wrote:
 We've got several web cams that people like to visit
  (www.milessmithfarm.net). However, they're chewing up bandwidth when
  more than one person at a time views them.

  Is anyone aware of a Linux based video re-broadcaster (either software
  or a service)?

  We'd like to upload the video streams to a single server that multiple
  people can connect to and view them. This way, we're only sending one
  video stream up to the server, and the server can rebroadcast it to all
  the connected clients.

  --Bruce
  ___
  gnhlug-discuss mailing list
  gnhlug-discuss@mail.gnhlug.org
  http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/

___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: Relaying video streams

2008-11-18 Thread Bill McGonigle
On 2008-11-18 8:06 PM, Bruce Dawson wrote:
 Is anyone aware of a Linux based video re-broadcaster (either software
 or a service)?

I've heard good things about the Darwin Streaming Server from Apple, but 
haven't tried it out myself yet:

   http://dss.macosforge.org/post/40/

Whichever solution you get working would make for a lovely HOWTO.

-Bill
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: Relaying video streams

2008-11-18 Thread Ben Scott
On Tue, Nov 18, 2008 at 9:27 PM, Bill McGonigle [EMAIL PROTECTED] wrote:
 Whichever solution you get working would make for a lovely HOWTO.

  Or meeting presenting topic.  ;-)

-- Ben
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: Relaying video streams

2008-11-18 Thread Seth Cohn
 I know someone at work who did just this sort of thing recently.  I'll
  get details and get back to you.

Summary:

If the cameras are USB connected to a server then the best and
quickest option is to use an open source alternative to the Flash
Media Streaming Server. My research pointed to Red 5 for a good
solution. http://osflash.org/red5

Assuming that the cameras are IP cameras, which is common for most
streaming video in an open area, then the process is not as easy as
one would think. Using a combination of curl, ffmpeg, and ffserver, it
can be done. Bearing in mind, this is at the cost of having the server
rendering video in a continuous fashion so the box needs to be able to
handle the load. On the setup I did, I got decent quality at 8FPS for
about 5% usage of a dual core CPU per stream.

Basically the process is like this. A shell script takes the stream
(usually a motion JPEG) via curl and then pipes it to ffmpeg which
then sends it to ffserver for streaming on a dummy port like 8090.

If you're interested in this script, let me know.


  On 11/18/08, Bruce Dawson [EMAIL PROTECTED] wrote:
   We've got several web cams that people like to visit
(www.milessmithfarm.net). However, they're chewing up bandwidth when
more than one person at a time views them.
  
Is anyone aware of a Linux based video re-broadcaster (either software
or a service)?
  
We'd like to upload the video streams to a single server that multiple
people can connect to and view them. This way, we're only sending one
video stream up to the server, and the server can rebroadcast it to all
the connected clients.
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: Relaying video streams

2008-11-18 Thread Ben Scott
On Wed, Nov 19, 2008 at 12:45 AM,  [EMAIL PROTECTED] wrote:
 isn't this the sort of application that IPv4 multicast + SIP were designed to
 solve?

  Sure.  Just multicast, for that matter.  The problem is that
effectively zero public routers forward multicast datagrams, so you
might as well just unplug the power cable and save yourself the
electric bill.

-- Ben
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/