Streaming-V4L: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
Line 91: | Line 91: | ||
Receive: |
Receive: |
||
vlc mmsh:// |
vlc mmsh://servername:8080 |
||
Tested and works. There are lots of variants of this that don't work -- ymmv. |
Tested and works. There are lots of variants of this that don't work -- ymmv. |
Revision as of 09:06, 20 February 2006
Introduction
Streaming applications can use v4l devices to broadcast audio and video over the Internet.
Software
- VideoLan (VLC and VLS) -- the simplest place to start
- ffserver -- an HTTP/RTSP multimedia streaming server for live and recorded broadcasts
- MPEG4IP -- industrial-strength integration project sponsored by Cisco
- Darwin streaming server -- free binary (?) but not free software
- List of clients and servers
Guides
- VLC streaming HowTo
- Stream from a tv card or webcam with VLC or VLS
- VLC user guide -- stream utput
- HowTo Stream almost anything using VLC
- MPEG-4 with Linux -- mpeg4ip, ffmpeg, and Darwin Streaming Server (Linux Journal)
VLC instructions
Note if these commands don't work, you may need to upgrade your VLC. This was done on Debian sid using vlc 0.8.5-svn20060212-0 from the nightly builds for 386 and amd64.
Stream a file to a designated machine
Skip the gui with "-I dummy".
vlc file.avi -I dummy --sout udp://123.45.678.9:8080 --loop
The more recent syntax also works -- note the single quotes, and add "vlc:quit" to quit after the file is played:
vlc file.avi -I dummy --sout '#std{access=udp,mux=ts,dst=123.45.678.9:8080}' vlc:quit
Receive:
vlc udp://@:8080
Stream a file to the network
Again, single quotes mandatory:
vlc file.avi -I dummy --sout '#std{access=mmsh,dst=:8080}' --ttl 12 vlc:quit
vlc file.avi -I dummy --sout '#std{access=mmsh,dst=:8080}' --ttl 12 --loop
Receive:
vlc mmsh://chi:8080
Stream from a webcam
vlc -I dummy v4l:/dev/video0:size=320x240 --sout '#std{access=mmsh,dst=:8080}'
vlc v4l:/dev/video0:size=320x240 --sout '#std{access=mmsh,dst=:8080}' \ -V X11 -I dummy-v --noaudio
vlc -I dummy -v --noaudio --ttl 12 v4l:/dev/video0:size=320x240 \ --sout '#transcode{vcodec=mp4v,vb=128}:std{access=mmsh,dst=:8080}'
Receive:
vlc mmsh://123.45.678.9:8080
Stream from television
Use this to find tv channel frequencies===
scantv - scan a v4l device for TV stations
Stream tv to a single designated machine:
vlc --color v4l:/dev/video2:norm=ntsc:frequency=77250:size=640x480:channel=5:\ adev=/dev/dsp2:audio=0 --sout #transcode{vcodec=mp4v,acodec=mpga,vb=512,\ ab=128,samplerate=44100,venc=ffmpeg{keyint=80,hurry-up,vt=800000},\ deinterlace}:std{access=udp,mux=ts,dst=123.45.678.9:8080} --ttl 12 -I dummy
Receive:
vlc udp://@:8080
Stream tv to the network:
vlc --color v4l:/dev/video2:norm=ntsc:frequency=77250:size=640x480:channel=5:\ adev=/dev/dsp2:audio=0 --sout #transcode{vcodec=mp4v,acodec=mpga,vb=512,\ ab=128,samplerate=44100,venc=ffmpeg{keyint=80,hurry-up,vt=800000},\ deinterlace}:std{access=mmsh,dst=:8080} --ttl 12 -I dummy
Receive:
vlc mmsh://servername:8080
Tested and works. There are lots of variants of this that don't work -- ymmv.