Size: 1895
Comment:
|
Size: 2306
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 5: | Line 5: |
== Using ffmpeg & ffserver == | |
Line 18: | Line 19: |
We installed ffserver on a machine at ip address 10.10.10.160. | |
Line 33: | Line 35: |
FileMaxSize 5M | FileMaxSize 800M |
Line 35: | Line 37: |
<Stream status.html> Format status </Stream> |
|
Line 40: | Line 46: |
VideoFrameRate 15 | VideoFrameRate 10 |
Line 42: | Line 48: |
VideoBitRate 100 | VideoBitRate 30 |
Line 47: | Line 53: |
Noaudio | # #Noaudio # |
Line 60: | Line 68: |
ffmpeg -r 25 -s 352x288 -f video4linux2 -i /dev/video0 http://localhost:8090/feed1.ffm | # # this is without audio # ffmpeg -r 3 -s 352x288 -f video4linux2 -i /dev/video0 http://10.10.10.160:8090/feed1.ffm # #This is WITH EMBEDDED AUDIO!!! # ffmpeg -f oss -i /dev/dsp -r 6 -s 352x288 -f video4linux2 -i /dev/video0 http://10.10.10.160:8090/feed1.ffm |
Line 71: | Line 86: |
Now you should be able to browse to the server address (or localhost if it's the same machine) and see some live video. | Now you should be able to browse to the server address (or localhost if it's the same machine) and see some live video and the status page. |
Line 73: | Line 88: |
* http://localhost:8090/test.swf * http://localhost/test.swf ??? maybe working? |
* http://10.10.10.160:8090/test.swf * http://10.10.10.160:8090/status.html |
Line 77: | Line 92: |
The only problem with this method is that IT DOESN'T WORK. |
Video Streaming Howto
by asbesto
Using ffmpeg & ffserver
We want to use a web camera to stream video to web page using ffserver. ffserver is part of the ffmpeg package.
apt-get -y install ffmpeg
ffserver creates a network socket that is available from client machines to view the video. Once started, you attach an ffmpeg process to the server to do the encoding. Configuration of ffserver is done via the /etc/ffserver.conf file.
We installed ffserver on a machine at ip address 10.10.10.160. Typical ffserver.conf file:
Port 8090 # bind to all IPs aliased or not BindAddress 0.0.0.0 # max number of simultaneous clients MaxClients 1000 # max bandwidth per-client (kb/s) MaxBandwidth 10000 # Suppress that if you want to launch ffserver as a daemon. NoDaemon <Feed feed1.ffm> File /tmp/feed1.ffm FileMaxSize 800M </Feed> <Stream status.html> Format status </Stream> <Stream test.swf> Feed feed1.ffm Format swf VideoCodec flv VideoFrameRate 10 VideoBufferSize 80000 VideoBitRate 30 VideoQMin 1 VideoQMax 5 VideoSize 352x288 PreRoll 0 # #Noaudio # </Stream>
To get things going, start the server
ffserver &
Attach the ffmpeg process to do the encoding. This is done via a loopback socket.
# # this is without audio # ffmpeg -r 3 -s 352x288 -f video4linux2 -i /dev/video0 http://10.10.10.160:8090/feed1.ffm # #This is WITH EMBEDDED AUDIO!!! # ffmpeg -f oss -i /dev/dsp -r 6 -s 352x288 -f video4linux2 -i /dev/video0 http://10.10.10.160:8090/feed1.ffm
Parameters are
- -r rate in frames per second
- -s size in pixels width x height (width must be a multiple of 16) and should match the values in the above config file.
- -f gets input from the video4linux driver
-i is the v4l device (if this is not present refer to Logitech QuickCam Express)
- Lastly the loopback socket
Now you should be able to browse to the server address (or localhost if it's the same machine) and see some live video and the status page.
The name of the file will be as defined in the <Stream> section above.
The only problem with this method is that IT DOESN'T WORK.