Chapter 8.  Streamen von einer Eingangskarte oder einer Webcam

Table of Contents

Installation der Video for Linux-Treiber
Streaming mit VLC
Streaming mit VLS

Note

Dies ist nur unter GNU/Linux möglich.

Installation der Video for Linux-Treiber

Wenn Sie von einer Eingangskarte oder einer Webcam streamen möchten, muss eine video4linux-Treiber dafür verfügbar sein. Sie können mehr Informationen über video4linux und unterstützte Geräte hier finden.

Kompilieren Sie das richtige Modul für Ihr Gerät und fügen Sie es Ihrem Kernel hinzu (einige video4linux-Module werden mit den Linux 2.4.x Kernel mitgeliefert). Sie können Ihr Gerät mit jedem in der Sektion Video: TV and PVR/DVR auf dieser Seite aufgeführtem Programm testen.

Beachten Sie, dass v4l2-Module auch mit VLC arbeiten.

Streaming mit VLC

Note

Sie müssen --enable-v4l zu ./configure hinzufügen, um dieses Feature nutzen zu können.


% vlc -vvv v4l:/dev/video:norm=secam:frequency=543250:size=640x480:channel=0:adev=/dev/dsp:audio=0
--sout '#transcode{vcodec=mp4v,acodec=mpga,vb=3000,ab=256,vt=800000,keyint=80,deinterlace}:std{access=udp,mux=ts,url=239.255.12.13}' --ttl 12

wobei:

  • /dev/video das Device ist, welches Ihrer Eingangskarte oder Ihrer Webcam entspricht,

  • norm=secam ist der Name des analogen Signalstandards (mögliche Werte sind pal, secam und ntsc),

  • frequency=543250 ist die Frequenz des Kanals in kHz ( Warnung: bei VLC < 0.6.1 ist die Frequenz die mit 16 multiplizierte Frequenz des Kanals),

  • size=640x480 ist die Größe des Bildes, die Sie möchten (Sie können auch die eine Standardgröße eingeben wie subqcif (128x96), qsif (160x120), qcif (176x144), sif (320x240), cif (352x288) oder vga (640x480)),

  • channel=0 ist die Nummer des Kanals (üblicherweise ist 0 für Tuner, 1 für composite und 2 für svideo),

  • adev=/dev/dsp ist das Audiogerät,

  • audio=1 ist die Nummer des Tonkanals (üblicherweise ist 0 für Mono und 1 für Stereo),

  • vcodec=mp4v ist das Videoformat in dem Sie kodieren möchten (mp4v ist MPEG-4, mpgv ist MPEG-1 und es gibt außerdem h263, DIV1, DIV2, DIV3, I420, I422, I444, RV24, YUY2),

  • acodec=mpga ist das Tonformat, in dem Sie kodieren möchten (mpga ist MPEG audio layer 2, a52 ist A52 bzw. AC3),

  • vb=3000 ist die Bild-Bitrate in kbit/s,

  • ab=256 ist die Ton-Bitrate in kbit/s

  • vt=800000 ist die Bild-Bitratentoleranz in bit/s,

  • keyint=80 ist das maximale Bilderintervall zwischen zwei "I"-Bildern in der Anzahl von Bildern,

  • deinterlace teilt VLC mit, den Deinterlace-Filter on the fly zu benutzen,

  • 192.168.0.42 ist entweder:

    • die Adresse des Rechners, den Sie via Unicast erreichen möchten;

    • oder der DNS-Name des Rechners, den Sie via Unicast erreichen möchten;

    • oder eine Multicast-IP-Adresse.

  • 12 ist der Wert der TTL (Time To Live) Ihrer IP-Pakete (was bedeutet, dass der Stream in der Lage sein wird, 11 Router zu überqueren).

Streaming mit VLS

Note

Sie benötigen die SVN-Version von VLS. Wenn Sie sie kompilieren, müssen Sie ./bootstrap und ./configure --enable-v4l --with-ffmpeg=PATH ausführen, wobei PATH der absolute Pfad zu dem Verzeichnis ist, in dem Sie ffmpeg kompiliert haben und nicht der relative Pfad!

Es gibt derzeit kein Befehlszeileninterface für diesen Input, weshalb Sie die Konfigurationsdatei benutzen müssen.

Hier ist eine typische Konfigurationsdatei vls.cfg zur Benutzung von VLS mit einem v4l-Gerät:

# vls.cfg (VLS configuration file)
# Example of the VideoLAN HOWTO for the Video for Linux input

BEGIN "Inputs"

  webcam       = "v4l"

END

BEGIN "webcam"

  # V4L device
  Device        = "/dev/video"

  # Channel Source : Webcam is often "0"
  #                  TV Card, may be Tuner(0), Composite(1), Svideo(2)
  Channel       = "0"

  # Norm: PAL=0, NTSC=1, SECAM=2
  Norm          = "0"

  # Frequency of the channel in Mhz, multiplied by 16 (tuner cards only)
  Frequency     = "7668"

  # Size possibilities: can be either:
  # - empty string : default size
  # - width x height
  # - subQCIF(128x96), QSIF(160x120), QCIF(176x144), SIF(320x240),
  #   CIF(352x288), VGA (640x480)
  Size          = ""

  # DeInterlace: "0" = no ; "1" = yes
  DeInterlace   = "0"

  # Video compression format: "mpeg1" or "mpeg4"
  Compression   = "mpeg4"

  # Video bitrate (approx.) in kbps
  Bitrate       = "500"

  # Quality: "1.0" (good) to "31.0" (bad)
  Quality       = "1.0"

  # Sound device
  AudioDevice   = "/dev/dsp"

  # Audio compression format: "mp2", "mp3" or "ogg"
  AudioCompression = "mp2"

  # Audio bitrate in kpbs
  AudioBitrate  = "64"

  # Audio frequency ("16000", "22050", "24000", "32000", "44100" or "48000")
  AudioFreq     = "16000"

  # Audio channel: "1" = mono ; "2" = stereo
  AudioChannel  = "2"

END

BEGIN "Channels"

  channel1       = "network"

END

BEGIN "channel1"

  # Unicast or multicast IP address
  DstHost = "192.168.0.42"

  # Destination port
  DstPort = "1234"

  # If it's a multicast IP address, uncomment the line below
  #Type    = "multicast"

  # If it's a multicast IP address, set the "Time To Live" below
  #TTL     = "12"

END

BEGIN "LaunchOnStartUp"

  command1 = "start video channel1 webcam"

END

Nachdem Sie die obige Konfigurationdatei adaptiert haben, führen Sie VLS aus:

% vls -vv -f vls.cfg