Inhaltsverzeichnis

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 640×480