Videostreaming med VLC (Linux)
Installasjon av VLC
VLC kan hentes ned fra http://www.videolan.org/vlc/. Hvis du kjører Debian er en god kilde for oppdaterte pakker ftp://ftp.nerim.net/debian-marillat/.
Bruk av VLC
VLC har et godt GUI, men for streaming anbefales kommandolinjegrensesnittet. La oss først prøve å streame video i ganske lav oppløsning til én multicastadresse. Følgende ganske lange kommandolinje skal gi oss en fin strøm:
- vlc -vvv v4l:/dev/video:norm=pal:size=320x240:adev=/dev/dsp1:audio=2
--sout '#transcode{vcodec=mp4v,vb=512,acodec=mpga,ab=128,channels=2}:
rtp{dst=224.61.42.36,port=5010,sdp=http://:1234/}' --ttl 3
Her er for ordens skyld en oversikt over hva linja betyr:
- -vvv gjør VLC ekstra verbos, slik debugging blir lettere dersom noe går galt.
- Neste ledd (fram til --sout) indikerer følgende:
- Vi vil bruke Video4Linux for å hente video fra /dev/video
- Videoinput er i PAL-format, og skal leses i en oppløsning på 320x240 piksler
- Lyd skal hentes fra /dev/dsp1
- Det neste leddet (#transcode{...} forteller at vi vil kode den rå vidoen om til MPEG-4-video med følgende egenskaper:
- Videocodec er MPEG-4
- Videobitraten er 512 kbit/s
- Lydcodec er MPEG layer 2 (MP2)
- Lydbitrate er 128 kbit/s
- Lyden skal være i stereo (to lydkanaler)
- Leddet rtp{...} indikerer at dataene fra "transcode" skal streames via RTP:
- Adressen strømmen skal sendes til er 224.61.42.36, som er en multicastgruppe. Les mer om valg av adresser under Valg av multicastadresser.
- Strømmen skal sendes til port 5010.
- VLC skal sette opp en midlertidig, enkel webserver på port 1234, der klienter kan hente strømmens tilhørende SDP-fil. Klienter kan dermed se strømmen ved å åpne http://din_maskin.example.com:1234/. (Fordi host-navnet er utelatt vil serveren lytte på alle nettgrensesnitt. Sett for eksempel URL-en til å være http://localhost:1234/ hvis du bare vil tillate lokale tilkoblinger.)
- --ttl indikerer (naturlig nok) strømmens time to live-verdi.
Streaming i to kvaliteter
VLC splitte en videoinput til flere output-strømmer, slik at man for eksempel ganske lett kan streame en videofeed i flere formater og kvaliteter. Vi kan dermed prøve å sende strømmen vår i to utgaver:
- vlc -vvv v4l:/dev/video:norm=pal:size=768x576:adev=/dev/dsp1:audio=2
--sout '#duplicate{dst="transcode{vcodec=mp4v,vb=2000,hq,deinterlace,
acodec=mpga,ab=128,channels=2}:
rtp{dst=224.61.42.36,port=5010,
sdp=http://:1234/hoy.sdp",
dst="transcode{vcodec=mp4v,scale=0.5,vb=500,
hq,deinterlace,acodec=mpga,ab=128,channels=2}:
rtp{dst=224.61.42.46,port=5010, sdp=http://:1234/lav.sdp}"}' --ttl 3
Denne enda mer fryktinngytende linja gjør flere ting som er verdt å bemerke. Vi foretar splittingen ved hjelp av duplicate, som sørger for å gi data til begge transcode-komponententene. Forøvrig ber vi nå om at maskinen skal arbeide hardere for å øke kvaliteten på den kodede videoen (hq), og at den skal kjøres gjennom et "deinterlace"-filter, slik at ellers sjenerende horisontale striper blir borte i bilder med mye bevegelse. Begge deler er ganske prosessorkrevende.
Vi ber også om at videosignalet skal digitaliseres i full PAL-oppløsning (768x576 piksler), og lager videostrømmer i to oppløsninger (full PAL og 1/4 PAL), i to forskjellige bitrater.
Denne sida er en del av en
wiki.
Hvis du vil kan du derfor bidra med innhold selv.
Les mer
her.
Global: Main page | Recent changes | Random page | Special pages | Help
This page: Edit this page | Page history | Discuss this page | What links here | Related changes