====== VLC ====== VLC ist eine Software die Multimedia Inhalte wiedergeben kann. ===== Codecs ===== Folgendes Metapaket installieren, damit die meisten Videos unterstützt werden. sudo apt install ubuntu-restricted-extras ===== Streaming per http ===== Hier gebe ich ein Video, welches in h264 im mp4 Container transcodiert wird, direkt aus einer Webcam als HTTP-Stream aus. Da ich hier auf ein Video-Device zugreife, muss natürlich der jew. Benutzer der diesen Befehl ausführt auch in der Gruppe "video" sein. Die URL in diesem Beispiel lautet: [[http://localhost:8080/cam]] cvlc v4l2:///dev/vbi0 --no-audio :v4l2-input=1 v4l2-standard=ALL --sout #transcode{vcodec=h264,vb=0,scale=0,acodec=mpga,ab=128,channels=2,samplerate=44100}:http{mux=ffmpeg{mux=flv},dst=:8080/cam}' :sout-keep --ttl 12 ===== Streaming per Playlist und Webserver ===== Hier wird ebenfalls das Video, aus der Webcam, in h264 transcodiert. Auf einem beliebigen Webserver-Verzeichnis (hier /stream) werden nun laufend 5 Videos (delsegs=true,numsegs=) à 10 Sekunden (seglen=) abgelegt. Der Befehl wird mit dem Benutzer "www-data" ausgeführt, da dieser direkt den Schreibzugriff auf das Webserver-Verzeichnis hat. Ein anderer Benutzer kann aber auch gewählt werden. Gleichzeitig wird eine Index-Datei, hier in Form einer m3u8 (m3u8= m3u Playlist mit UTF-8 Text) Playlist (hier: mystream.m3u8), angelegt, welche auch laufend aktualisiert wird. Der Vorteil dieser Streaming-Methode ist, dass diese so für Mobile-Geräte genutzt werden kann, ohne einen besonderen Player installieren zu müssen. Wenn keine Sequenzen gelöscht werden, dann kann im Stream problemlos hin und her gespult, aber auch pausiert werden. Um diesen Stream zu öffnen, braucht man nur folgende URL: [[http://localhost/stream/mystream.m3u8]] su -c "vlc v4l2:///dev/vbi0 --no-audio :v4l2-input=1 v4l2-standard=ALL vlc://quit --sout='#transcode{width=320,height=240,fps=25,vcodec=h264,vb=256,venc=x264{aud,profile=baseline,level=30,keyint=30,ref=1},acodec=mp3,ab=96}:std{access=livehttp{seglen=10,delsegs=true,numsegs=5,index=/var/www/stream/mystream.m3u8,index-url=http://128.53.1.23/stream/mystream-########.ts},mux=ts{use-key-frames},dst=/var/www/stream/mystream-########.ts}'" www-data Mann kann für Mobile Geräte noch verschiedene Qualitäten vorhalgen, dies erfordert aber einen etwas leistungsstärkeren PC. Dafür startet man einfach einen VLC welcher das Video per UDP bereitstellt vlc v4l2:///dev/vbi0 --no-audio :v4l2-input=1 v4l2-standard=ALL --sout='#transcode{acodec=mpga,ab=128,vcodec=h264,vb=0}' ':standard{mux=ts,access=udp,dst=:1234}' und startet danach div. VLCs mit den verschiedenen Qualitäten: vlc udp: --sout '#standard{access=http,mux=ogg,dst=:8080}' ===== Ausgabepuffer ===== Sollten Videos beim Abspielen immer wieder stehen bleiben, muss der Ausgabepuffer erhöht werden **Einstellungen -> Eingang/Codecs -> Erweitert: Datei-Cachewert (ms) => 2000** ===== Fenstergröße fixieren ===== Damit VLC die Fenstergröße nicht immer der nativen videogröße anpasst, sondern in einer kleineren größe startet, folgendes einstellen: **Einstellungen -> Interface -> Hauptinterfaces -> Qt -> Interface größe auf native Videogröße anpassen: haken raus** **Einstellungen -> Video -> Fenstereigenschaften: Videobreite und Videohöhe einstellen z.B. auf 640x480**