OpenVCX
    
Open Source Video Conferencing and Streaming Server
 

Installation

Quick start installation guide for OpenVSX.  Read more


 

Wowza Streaming Engine

Example showing how to use OpenVSX with Wowza Streaming Engine.  Read more


 

Publish to Youtube

Stream live content to a CDN or Youtube.  Read more


 

Flash Media Encoder

Stream live content with Flash Media Encoder RTMP.  Read more


 

QuickTime Broadcaster

Stream live content with QuickTime Broadcaster RTSP.  Read more


 

Security and Encryption

Examples showing how to protect streaming content.  Read more


 

RTMP Streaming

Use RTMP to broadcast and capture live content.  Read more


 

RTSP Streaming

Use RTSP to broadcast and capture live content.  Read more


 

FLV Streaming

Stream live content to Flash player.  Read more


 

MPEG-DASH Streaming

Stream live content using MPEG-DASH.


 

WebM/HTML5 Streaming

Stream live content using a Matroska / WebM container.  Read more


 

HTTPLive Streaming

Stream live content to Apple devices using HTTPLive.  Read more


 

Analyze H.264 contents

OpenVSX can be used as a utilitity to take a closer look at the format of H.264 video.  Read more


 

Dump a container file

OpenVSX can be used as a utilitity to take a closer look at the format of MP4 container file.  Read more


 

Extract video and audio tracks from a media container

OpenVSX can be used as a utility to extract raw video and audio contents from container files.  Read more


 

Basic streaming output examples

Examples showing how to use the commandline to create stream output.  Read more


 

MPEG-DASH Streaming

OpenVSX contains an MPEG-DASH streaming server for delivering live content. MPEG-DASH can be used for adaptive bitrate streaming similar to HTTPLive for Apple devices.


 

MPEG-DASH Streaming Server

Offer a live MPDG-DASh .mpd playlist and .m4s media content on HTTP port 8080

./bin/vsx -v --in=input.sdp --dash=8080 --live

To view the live stream you can connect a device to http://<OpenVSX IP>:8080/dash

To offer the content over SSL/TLS use --dash=https://0.0.0.0:8443 or just --dash=https://8443

To require authentication you can specify a username and password using the following standard syntax.

--dash=https://<username>:<password>@0.0.0.0:8443

OpenVSX will create .m4s media segments with a default duration of between 5 and 10 seconds. The duration can vary depending on the placement of keysframes in the video stream.

To change the minimum duration to 3 seconds use--dashminduration=3.0

To change the maximum duration to 5 seconds use--dashmaxduration=5.0

The m3u8 playlist file and media segments are stored in <OPENVSX_HOME>/html/httplive/. You may want to change this path to allow another web server to serve HTTPLive content, or to use an in-memory file system. The following option changes the output directory to allow the Apache web server to serve the generated content --httplivedir=/usr/local/apache/htdocs/httplive

Both the .mpd playlist file and media segments are named by using the file prefix out. To use a different file prefix such as myprefix add --dashfileprefix=myprefix. This will create the files called myprefix.mpd and myprefix<time-stamp>.m4s.

The .mpd playlist assumes an HTTP client will load the media segments from the same directory as the playlist. To use a different URL to refer to the media segments use --dashurlhost=http://my-high-bandwidth-server/my-media-uri. The playlist file will then prefix each media segment with out<time-stamp>.ts file with this URL.

 

MPEG-DASH Adaptive Bitrate Streaming

OpenVSX is able to perform real-time media encoding to produce multiple parallel encoded outputs for the same input media stream.

This example will output three representations of the input media by transcoding the video portion to produce two lower bandwidth representations while also preserving the original encoded stream.

  • The first representation is the original video bypassing the transcoder. In this example the bitrate is 900Kb/s.
  • The second representation produces a video bitrate of 600Kb/s.
  • The third representation produces a video bitrate of 300Kb/s with a width of 320 pixels and the same aspect ratio.

--xcode="videoCodec1=passthru,videoCodec2=h264,videoBitrate2=600Kb,videoWidth3=320,videoBitrate3=300Kb"

Producing multiple stream outputs will create a master playlist called segtemplate.mpd which will contain multiple representations of each of the encoded outputs.

To load the master .mpd playlist containing references to each bitrate specific output use the URL:
http://<OpenVSX IP>:8080/dash
or
http://<OpenVSX IP>:8080/dash/segtemplate.mpd

To explicitly load a specific representation append the index of the desired encoding output to the URL.

Load the original representation at 900Kb/s use the URL:
http://<OpenVSX IP>:8080/dash/1
or
http://<OpenVSX IP>:8080/dash/1segtemplate.mpd

Load the third representation at 300Kb/s use the URL:
http://<OpenVSX IP>:8080/dash/3
or
http://<OpenVSX IP>:8080/dash/3segtemplate.mpd


 

 

 

Don't hesitate to contact us via our contact page or email us at openvcx@gmail.com.