GStreamer

From Bashlinux
Jump to: navigation, search

QVidium MPEG2+4 Codec

The codec is able to encode video to the network and decode video from the network. In order to broadcast video to the LAN, we are going to setup the Encoder.

How to setup the QVidium encoder

Initial Setup

  • Setup your NIC to 192.168.1.90 with netmask 255.255.255.0
  • Link your NIC with the device using an crossover cable
  • Go on browser to 192.168.1.100
  • Login with user and password root
  • Click on "Network" label on left side menu and then click on configure
  • Set IP Address and DNS Server address to be obtained automatically from DHCP
  • Click on "Apply"

Regular Setup

  • Go on browser to the IP assigned by DHCP to the QVidium device
  • Click on "Encoder" label and the "Profile"
  • Ensure the following values:
    • Video Encoding: MPEG2
    • IP Transport: UDP
    • Destination IP or Multicast Address or Hostname:
      • For Unicast: The destination IP or hostname
      • For Multicast: 224.0.0.0
  • UDP Port: 1234
  • Click save button
  • Click "start" on sub-menu under "Encoder" menu label

VLC

VLC can be used as server and/or client in standalone mode running only one instance or simultaneously running multiple instances.

How to setup a Streaming Server

The command to start VLC as multicast video server is:

vlc /path/to/playlist.m3u \
--sout '#transcode{vcodec=mp2v,vb=3000,scale=1,acodec=mpga,ab=128,channels=2}:duplicate{dst=std{access=udp,mux=ts,dst=224.0.0.0:1234}}' \
--sout-keep

It will start to broadcast all videos on list, the changes made on list will be loaded on restart.

How to setup a Streaming Client

VLC can be started in 2 ways:

  • Getting stream as unicast host:
vlc -vvv udp://@:1234 --fullscreen --volume 1024
  • Getting stream as host on a multicast network:
vlc -vvv udp://@224.0.0.0 --fullscreen --volume 1024

GStreamer

Video streaming is done by setting the right pipeline in both sides, server and client.

How to stream video only

Server
The command to start gstreamer as unicast video server is (no audio):

gst-launch filesrc location=/path/to/video.ext ! decodebin ! x264enc ! video/x-h264 ! rtph264pay pt=96 ! udpsink host=ip.remote.host port=5000 sync=true