QStream Usage

Home

Documentation

Downloads

Contact Information

Links

Screen Shots

qvid Usage

This section is only paritally complete.

Before you can start streaming, you need some content. QStream uses the SPEG video format, which is a derivative of MPEG4. We have some sample videos (see the downloads section), which you can use to get started and test whether the software is working. The following section describes how to produce your own video files for use with QStream. You can skip it for now if you are going to use one of our video files.

It is also possible to use also QStream's live capture capability to capture video directly from a webcam, but we don't have documentation for that yet.

Procedure for creating QStream video files

QStream uses a proprietary (as in not standardized, not as in closed) format for video. Berkeley DB is used for the container, as opposed to a conventional one like AVI, Quicktime MOV, and the like. And of course, the video coding is SPEG. For audio, conventional MPEG audio (MPEG1) is used. In this section we outline an example procedure for converting videos to QStream .db files. tbd. For know look at the encode-*.sh scripts in the QStream source.

Running QStream

  1. Starting the Monitor (optional).

    QStream includes a monitor program called 'qmon2' that provides extensive real-time visualization of the streaming process, via a several software oscilliscope views. The other QStream programs connect to the monitor via TCP, so it needs to be started first. The monitor can run on a separate host from the server and client.

       cd [qstream base]/qmon2/src
       ./qmon2 
       
    The can run in non-graphical mode, but collects the data and stores it in files for further analysis or offline visualization, e.g. via gnuplot.

    About clock synchronization. For many of the values, the monitor requires that clocks be synchronized between the machines that the QStream programs are running on, typically this would be done via ntp. The PPS protocol does not depend on clock sync for video streaming, so video should be fine, but without clock sync many of the signals in the monitor oscilloscopes will not work correctly. If you see lots of continuous output from the monitor about late signal values, it is a pretty sure bet that the clocks are out of sync.

  2. Start the video server. Skip this step if you are going to run everything on the same machine.

       cd [qstream base]/qvid/src/qvid2
       ./qserver --qmon-address [address of monitor host]
       

  3. Start the player.

       cd [qstream base]/qvid/src/qvid2
       ./qclient_gui --qmon-address [address of monitor host] \
            pps://[address of qvid server host]/[full path to video]
      
    For example:
          ./qclient_gui --qmon-address localhost pps://qstream.org/home/krasic/big-buck-bunny.db
       

    If you are running everything on the same machine, a stand-alone player qvid_play_gui is available.

    Hopefully, it starts and you see a nice video, along with pretty signals in the monitor scopes!

    Most of the GUI should be self explanatory. Tooltips on the buttons explain their puposes. Dragging the scrollbar will scrub through the video. Right clicking on the video will raise a popup menu. In the preferences dialog, you can use the QoS balance slider to adjust priority assignment (favoring temporal or spatial adaption), and the drop threshold slider to manually force the server to drop SPEG data.

All of the qstream programs can print some usage information if you give them the --help command line argument.

Last modified: June 15 2008