VLC

Aus xinux.net
Zur Navigation springen Zur Suche springen

Vlc.jpg

VLC media player

Der VLC media player, oder anfangs VideoLAN client, ist ein mittlerweile bekannter freier Mediaplayer der die unterschiedlichsten Codecs und Dateiformate sowie DVD's und Video-CD's unterstützt.

Geschichte

Der VLC media player wird seit 1999 vom VideoLAN-Team entwickelt. Dieses besteht aus Studenten der französischen Ingenieurschule École centrale Paris in Châtenay-Malabry bei Paris und Entwicklern aus über 20 Ländern. Das Programm steht seit dem 1. Februar 2001 unter der GNU General Public License.

Der Entwickler Antoine Cellerier kennt die Geschichte des Logos selbst nur vom Hörensagen: Eines Tages kamen Studenten eines der Netzwerk-Clubs der École centrale Paris betrunken mit einem Verkehrssicherungskegel nach Hause. Später ging aus diesem Club das VideoLAN-Projekt hervor. Als man ein Logo für das Programm suchte, fiel die Wahl auf den Kegel, aus dem zu diesem Zeitpunkt bereits eine beträchtliche Kegel-Sammlung hervorgegangen war.

Merkmale

Die Streaming Lösung

Die ursprüngliche Streaming-Lösung besteht aus dem VideoLAN Server und dem VLC media player. Damit war das Streaming von digitalen TV-Inhalten, DVDs und MPEG- & DivX-Filmdateien über den Campus der École Centrale Paris möglich. Mittlerweile wurden beide Programme erweitert, sodass auch Streaming über das Internet realisierbar ist. VLC unterstützt mittlerweile auch Video on Demand, so dass es durchaus mit Streaminglösungen kommerzieller Anbieter konkurrieren kann.

Durch die Weiterentwicklung des VLC media player zu einem eigenen Streaming-Server wurde das Konzept der Lösung seit Januar 2003 aufgeweicht. Eine mittelbare Folge davon ist, dass die Lösung auch von Benutzern ohne große Vorkenntnisse eingesetzt werden kann.

Vielseitigkeit

Besonders hervorzuheben ist die Vielseitigkeit des Programms, das nahezu jedes Format und jede Datei abspielt, auch unvollständige oder bruchstückhafte AVI-Dateien, was z. B. bei nicht vollständig heruntergeladenen Dateien der Fall sein kann.

Zusätzlich können über Filter verschiedene Effekte in Echtzeit angewandt werden. So kann z. B. ein Video, das im Hochformat aufgenommen wurde, um 90° gedreht, und Farbfilter etc. angewandt werden.

Portabilität

Der VLC media player läuft unter GNU/Linux, Microsoft Windows, Mac OS X, BeOS, Syllable. Einige andere Betriebssysteme wie z. B. BSD werden auch unterstützt, für sie gibt es nur keine vorkompilierte Binär-Pakete. Außerdem gibt es für Microsoft Windows eine portable (vom USB-Stick ohne Installation lauffähige) Version.

Einsatz

Der VLC media player kommt bei Privatnutzern, in Schulen und Universitäten, aber auch bei professionellen Anwendern zum Einsatz. Geschätzt wird vor allem die hohe Kompatibilität mit einer Vielzahl von Formaten und Codecs, wodurch er beinahe alles wiedergeben kann. Auch die im September 2007 vorgestellte ZDFmediathek unterstützt den VLC zur Wiedergabe ihres Video-on-Demand- und Livestream-Angebots (bei bestmöglicher Bildqualität dank Wiedergabe einer H.264-kodierten Videoquelle).

Benutzung

Man kann den VLC Player auch ohne eine Menu zu öffnen mit cvlc aufrufen.

Hilfe bekommen

Alle Standard Operationen von VLC sollten über die Grafische Benutzeroberfläche verfügbar sein. Wie auch immer, manche komplexen Operationen können nur von der Kommandozeile aus benutzt werden und es gibt Situationen in welchen man die Grafische Benutzeroberfläche nicht benötigt oder möchte.

VLC hat eine Modulstruktur. Der Kern verwaltet haupsächlich die Kommunikation zwischen Modulen. Alle Multimediaprozesse werden von Modulen abgewickelt. Es gibt Input-Module, Demultiplexer, Decoder, Video Output Module und mehr...

Dieses Kapitel wird nur die Kernoptionen erörtern. Jedes Modul erweitert VLC um neue Optionen. Zum Beispiel fügt das HTTP-Inputmodul Optionen für caching, proxy und Authentifikation hinzu.

Einfachen Kernoptionen erfährt man mit:

xinux@zero:~$ vlc --help

Alle Grundoptionen des Kerns + der Module mit:

xinux@zero:~$ vlc --longhelp

Und wirklich alle Optionen mit:

xinux@zero:~$ vlc --longhelp --advanced

Medien öffnen

Der folgende Befehl startet VLC mit "Datei":

thomas@cardassia:~$ vlc simpsons.mpg 


Öffnen von DVD's, Video- oder Audio CD's.

DVD mit Menüs:

thomas@cardassia:~$ vlc dvd://"/dev/dvd"

DVD ohne Menüs:

thomas@cardassia:~$ vlc dvdsimple://"/dev/dvd"

VCD:

thomas@cardassia:~$ vlc vcd://"/dev/cdrom"

Audio CD:

thomas@cardassia:~$ vlc cdda://"/dev/cdrom"

Stream senden (UDP)

Eine Datei kann man über VLC mit folgendem Befehl streamen:

xinux@zero:~$ vlc Datei --sout udp:IP-Adresse

Die "IP-Adresse" muss entweder

  • ein Rechner an den man Unicast-Streamen will,
thomas@cardassia:~$ cvlc simpsons.mpg --sout udp:192.168.247.201 
  • eine Multicast IP-Adresse sein (224.0.0.0 bis 239.255.255.255).
thomas@cardassia:~$ cvlc simpsons.mpg --sout udp:224.0.0.224 
  • um eine DVD zu streamen benutzt man:
thomas@cardassia:~$ cvlc dvdsimple://"/dev/dvd" --sout 'udp:224.0.0.224' --ttl 12
  • Webcam Stream
cvlc v4l2:///dev/video0 --sout '#transcode{vcodec=mp2v,vb=800}:standard{access=http,mux=ts,dst=:8080}'

Stream empfangen (UDP)

Um einen Unicast RTP/UDP Stream (Gesendet von VLC's Stream Output) zu empfangen muss man VLC mit folgenden Befehlen starten:

 thomas@lydia:~$ vlc udp://

Wenn man den Standartport 1234 verwendet reicht vlc rtp://

Um einen Multicast-Stream zu empfangen benutzt man:

thomas@lydia:~$ vlc udp://@224.0.0.224

Um einen HTTP-Stream zu empfangen startet man VLC mit:

xinux@zero:~$ vlc http://www.beispiel.org/Datei.mpg


DVB-T Streamen (UDP)

Transponder Datei anlegen

root@lydia:/usr/share/dvb/dvb-t# cat   de-Zweibrücken

# DVB-T Zweibrücken
# by Thomas Will (thomas.will@xinux.de) 

T 546000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE #3sat kika zdf zdf-info
T 642000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE #arte das erste-1 phönix-1 sr1
T 786000000  8MHz 2/3 NONE QAM16 8k 1/4 NONE #arte-1 ard einsplus phönix
T 658000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # br hr swr wdr

Channels Datei erzeugen

root@lydia:/usr/share/dvb/dvb-t# scan de-Zweibrücken > channels.conf 

Und danach einfach über "Medien -> Datei öffnen" (oder M) die Datei auswählen. In der Wiedergabeliste (Aufruf: L) stehen dann alle verfügbaren Sender.

thomas@lydia:~$ cvlc channels.conf --out udp://224.0.0.224

Remote Control

VLC lässt sich nach belieben auch über Interfaces wie Telnet auf entfernten Rechnern steuern.

Ein VLC mit Remote Control benutzbarkeit öffnet man mit:


root@zero:~# cvlc --rc-fake-tty --extraintf rc --rc-host "IP:PORT"

Beispiel

root@zero:~# cvlc --rc-fake-tty --extraintf rc --rc-host 192.168.178.46:20000  \ 
                dvdsimple://"/dev/dvd" --sout udp:224.0.0.224 


Die "IP-Adresse" ist die des Rechners auf dem VLC ausgeführt wird.

Mann kann dann mit Tools wie Netcat darauf zugreifen mit dem Befehl:

root@zero:~# nc "IP-Adresse" "PORT"

Beispiel

thomas@lydia:~$ echo stop | netcat 192.168.178.46 20000
stop: returned 0 (no error)
status change: ( play state: 8 ): End
^C

thomas@lydia:~$ 
thomas@lydia:~$ echo play | netcat 192.168.178.46 20000
play: returned 0 (no error)


Man sieht hierbei keine Bestätigung, aber mit help lassen sich die benutzbaren Befehle anzeigen.

Stream

V4L2 returns raw video. You cannot stream raw video. You must encode it first.

cvlc v4l2:///dev/video0 --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:standard{access=http,mux=ogg,dst=:8080}'
faster
cvlc v4l2:///dev/video0 --sout '#transcode{vcodec=mp2v,vb=800}:standard{access=http,mux=ts,dst=:8080}'

webcam stream

Anzeigen der Schnittstelle

lsusb

Suchen des Devicenamens

ls -la /dev/video*
Ausgabe sollte so aussehen:
 crw-rw----+ 1 root video 81, 1 Mai  8 16:20 /dev/video1

stream via vlc

Stream headless starten (nicht als root)

cvlc v4l2:// :v4l2-dev=/dev/video1 :v4l2-width=640 :v4l2-height=480 --sout "#transcode{vcodec=mpeg4,adec=mpga,vb=800,ab=128}:standard{access=udp, mux=ts, sap, name=live-video, dst=224.0.0.1, port=1234}"
 v4l2-dev= Angabe des Devices.
 v4l2-width= Breite des Bildes
 v4l2-height= Höhe des Bildes
 vcodec= Einstellung des VideoCodecs.
 acodec= Einstellung des AudioCodecs.
 dst= Hier: Eine Multicast Adresse
 port= Einstellung des Ports.

Streamen mit vlc

vlc -vvv udp://@224.0.0.1:1234

stream via web

Stream headless starten (nicht als root)

cvlc v4l2:// :v4l2-dev=/dev/video0 :v4l2-width=640 :v4l2-height=480 --sout "#transcode{vcodec=mpeg4,acodec=mpga,vb=800,ab=128}:standard{access=http, mux=ts, sap, name=live-video, dst=eigene_IP, port=8080}" 

Beispiel:

cvlc v4l2:// :v4l2-dev=/dev/video1 :v4l2-width=640 :v4l2-height=480 --sout "#transcode{vcodec=mpeg4,acodec=mpga,vb=800,ab=128}:standard{access=http, mux=ts, sap, name=live-video, dst=192.168.241.1, port=8080}"  

Streamen VLC kann nun über Medien -> Netzwerksteam öffnen den Stream öffnen: http://IP_des_Servers:8080


HTTP Streaming per Motion

sudo apt-get install motion
vi etc/motion/motion.conf


height 480 # Höhe des Bildes

width 640 # Breite des Bildes

framerate 10 # Bilder pro Sekunde (Bildrate); je höher, desto mehr Bilder

text_left Kamera %t # Beschriftung im Kamerabild

webcam_quality 100 # Qualität des Bildes

webcam_localhost off # Zugriff auf Kamerabild auch von “außerhalb” des eigenen Rechners erlauben

control_localhost off # Zugriff auf Control-Interface auch von “außerhalb” des eigenen Rechners erlauben


vi /etc/default/motion

# set to ‘yes’ to enable the motion daemon
start_motion_daemon=yes
sudo /etc/init.d/motion start 
  * Starting motion detection daemon motion      [ OK ]


Troubleshooting

Mögliche Probleme: VLC meldet “Permission denied”

 v4l2 demux error: cannot open video device '/dev/video0' (Permission denied)

Ein Blick auf die Rechte zeigt, dass das Device root gehört:

Shell # > ls -all /dev/video* 
crw-rw—- 1 root video 81, 0 2011-10-16 22:53 /dev/video0


http://www.lavrsen.dk/foswiki/bin/view/Motion/WebHome
http://www.videolan.org/doc/streaming-howto/en/ch02.html
http://blog.rotzoll.net/2011/10/seine-webcam-als-uberwachungskamera-nutzen/


m3u bugfix