DataTurbine Video Utilities

JMRBNBStudio and rbnbVidView

User Manual

V1.1

September 25, 2000

Copyright, Creare Inc.


Table of Contents

 Introduction

 Overview
 Installation

 JMRBNBStudio

 Introduction

 Overview
 Setup and Startup

User Interface Enhancements

SaveToRBNB...

rbnbVidView

Introduction

Overview
Setup and Startup

Command Line Arguments

Audio Channel Path
DataTurbine Server Address
Video Channel Path

User Interface

File Pulldown
VCR Controls

Introduction

Overview

The DataTurbine Video Utilities package provides capture of, copying of, and display of video using the DataTurbine as a storage medium. Through use of the standard JavaTM Media Framework (JMF) API, the Video Utilities provide support for many standard video content types and formats.

The Video Utilities package consists of two programs:

  1. JMRBNBStudio
  2. rbnbVidView
The JMRBNBStudio application is a modified version of the JMStudio example program provided as part of the standard JMF installation. This program serves as a DataTurbine data source that can get video and audio data from: The rbnbVidView application provides a VCR-like interface for displaying audio and video data out of a DataTurbine server.

Installation

The DataTurbine Video Utilities package is delivered as a separate downloadable. To install and use it, perform the following steps:
  1. Download and unpack the DataTurbine API package,
  2. Download and unpack the DataTurbine Video Utilities package,
  3. Download and install JMF (version 2.1 or greater),
  4. Set up your CLASSPATH environment variable to include the Java Virtual Machine (JVM) DataTurbine Java API, DataTurbine Video Utilities, and JMF jar files.
The DataTurbine API and DataTurbine Video Utilities packages can be found on the standard DataTurbine download site. The JMF package can be downloaded from here. The JMF jar file can be found in the 'lib' directory of the JMF installation. Note that to be able to actually capture data from a video or audio card on your system, you must download the appropriate operating system specific version of JMF; the standard Java-only version does not support capture, although all other capabilities are supported.

If you intend to capture video and/or audio data, run the JMInit program provided as part of the JMF package. If your CLASSPATH environment variable is set correctly (as shown above), you can type:

java JMFInit
This program finds any supported video and audio capture devices on the system.

JMRBNBStudio

Introduction

Overview

The JMRBNBStudio application extends the standard JMF JMStudio program to allow video and/or audio data to be sent to a DataTurbine. One caveat: the JMStudio program available for download in source form (used to produce the JMRBNBStudio application) is not the latest version supplied in binary form with the current JMF release.

This document describes the features added to actually send the data to the DataTurbine server. All other features are described in the standard documentation that can be found here.

The following figure shows an example JMRBNBStudio user interface display.

Example JMRBNBStudio User Interface Display

Setup and Startup

The JMRBNBStudio application needs o be run under a Java Virtual Machine (JVM). Different flavors of Java come by different names (e.g. java, jre, jview).

All inputs to JMRBNBStudio come are provided by use of the pulldown controls on the user interface. The application can be run by simply typing:

java JMRBNBStudio
Use the standard JMStudio input selection items to get the audio/video input stream. You can load a file (Open File...), open a URL (Open URL...), open an RTP stream (Open RTP Session...), or capture data directly from a camera or microphone (Capture...). Once an input stream has been specified, the data in that stream can be saved to a file, to a DataTurbine server, or sent out to an RTP session.

User Interface Enhancements

This section describes the enhancements made to the standard JMStudio code to allow data to be saved to the DataTurbine server.

SaveToRBNB...

Video and audio data in JMRBNBStudio can be saved to the DataTurbine server by use of the SaveToRBNB... menu item in the File menu pulldown.

If your input stream is a direct capture, the following screen shows up. Press OK to continue with the save operation or press Cancel to continue viewing the captured data directly in JMRBNBStudio.

Capture Preview Warning Dialog

Specify the audio and video encoding using audio/video format selection dialog. The audio encoding dialog is shown in the first of the two figures below, while the video encoding dialog is shown in the second.

Example Save To RBNB Audio Format Selection

Example Save To RBNB Video Format Selection

The Format field determines the standard JMF supported file format used as a intermediate step to get the desired encoding for both audio and video. Choose one that provides the encodings you wish to use.

The Audio and Video tags switch to the audio and video encoding dialogs, respectively.

The Enable Track field determines whether the data associated with the dialog is saved into the DataTurbine.

The Encoding field determines how the data is compressed (or "encoded"). The value of the Format field determines what encodings are available. The DataTurbine Video Utilities package does not support all of the possible encodings that can show up on these screens. The supported encodings are:

Audio Video
The remaining fields should be left alone.

The Save button proceeds to the DataTurbine path specification dialog shown in the figure below. The Cancel button terminates the save operation. Note that it does not restore the capture preview!

Example DataTurbine Path Specification Dialog

The DataTurbine Server field specifies the address of the destination DataTurbine server (specified as <host>:<port>).

The Data Path field overrides the default data path provided by the DataTurbine server.

The Cache Size field specifies the size in frames of ring buffer cache used to store the data in the DataTurbine server. There must be at least one frame in the cache.

The Archive Size field specifies the size in frames of the ring buffer archive file used to permanently store the data. A value of 0 indicates that no archive should be created.

The OK button starts sending the data to the specified DataTurbine server.

The Cancel button returns to the audio/video selection dialog.

When the data is being sent to the DataTurbine, the user is presented with a saving file dialog such as the one shown in the next figure.

Example Saving File ... Dialog

The above dialog is shown when the input stream is a video capture. The Video Monitor and frames/sec fields are replaced by a progress bar if the input stream is a file.

The Pause button temporarily stops the save operation. It is replaced with a Resume  button that can be used to resume the save operation.

The Video Monitor field is only activated when the save operation is paused. Toggle it to monitor the current activity on the input stream.

The frames/sec field is only activated when the save operation is paused. If the video monitor is shown, this field controls the update rate of the monitor.

The Stop button terminates the save operation and closes the connection to the DataTurbine server, terminating the RBO object containing the cached data.  (If the data were archived, it can be reloaded).  If you want the video data to remain "on-line", use the Pause button.

For some video or audio encodings, there is a special encoding specific controls dialog such as that in the next figure. The only field on this dialog that is supported is the Key Frame Rate field.

Example Encoding Controls Dialog


rbnbVidView

Introduction

Overview

The rbnbVidView application uses JMF to display video and audio data stored in the DataTurbine server.

The rbnbVidView application provides both a simple command line interface and a graphical user interface to specify the video and audio streams to display, plus a VCR-like control panel to control the activities of the display.

The following figure shows a typical rbnbVidView display.

Example rbnbVidView Display

Setup and Startup

The rbnbVidView application needs to be run under a Java Virtual Machine (JVM). Different flavors of Java come by different names (e.g. java, jre, jview).

All inputs to rbnbVidView can be provided on the command line when it is started or via the user interface at any time.


Command Line Arguments

The rbnbVidView application accepts command line arguments that specify where to get the data and what data to retrieve.

Audio Channel Path

-a [dataturbine identification][/data path]/channel

The audio data is retrieved from the specified audio channel.

DataTurbine Server Address

-r [RBNB host][:RBNB port]

The audio/video data is retrieved from the specified DataTurbine server.

Video Channel Path

-v [dataturbine identification][/data path]/channel

The video data is retrieved from the specified video channel.


User Interface

The user interface provides controls to select where the data is coming from and what data to retrieve, plus a VCR-like panel that controls the display.

File Pulldown

The File pulldown allows the selection of the DataTurbine server and audio and video channels at any time. The fields in the pulldown are: The Open... item specifies the source DataTurbine server. An open server dialog allows the user to specified the DataTurbine server address as shown in the next figure.

Example DataTurbine Server Selection Dialog

The DataTurbine server address consists of an optional host (default if omitted: "localhost") and optional server port (default if omitted: "3333".) The last server address is shown in the window.

The OK button closes any existing connection and opens a new connection to the specified DataTurbine server. The application moves directly into channel selection (see Channels...)

The Cancel button cancels the open operation, leaving any existing connection still active.

The Channels... item specifies the video and audio channel(s) to retrieve. Two channel entry dialogs are shown in sequence:

  1. a video channel entry dialog
  2. an audio channel entry dialog
An example of the video channel dialog is shown in the next figure. The audio channel dialog is similar.

Example Video Channel Specification Dialog

One video and one audio channel are allowed; wildcards are accepted, but only if they map to a single real channel. The last channels used are shown as the defaults. A channel can be omitted, in which case that channel is not shown.

The OK button accepts the channel. After the audio channel has been selected, the application attempts to locate the channels in the DataTurbine and initiates the display (see  VCR Controls below.)

The Cancel button rejects the channel and aborts the channel selection.

The Close... item closes the connection the DataTurbine server.

The Exit item exits the rbnbVidView application.

VCR Controls

The display is controlled by a set of VCR-like buttons and a slider bar.

Note: the audio channel is muted unless:


Note: for video encoding schemes that do frame-to-frame compression (such as H261, H263), all positioning controls other than the Step ForwardPlay Forward, and  Real-Time Track buttons operate on "key" (complete) frames only. If necessary, the code moves backwards to the nearest key frame.

Beginning of Data

The beginning of data button moves the display to the earliest video data available.

Note: for frame-to-frame compressed video, the beginning of data button searches forwards to a key frame by attempting to step forward one frame at a time. If the step forward fails because the frame has been overwritten in the ring buffer, the application just displays the earliest partial frame.

Play Backward

The play backward button starts playing backwards (key frames only) from the current displayed frame of video.

Step Backward

The step backward button moves back one key frame from the current displayed frame of video.

Pause

The pause button freezes the display.

Step Forward

The step forward button moves forward one frame from the current displayed frame of video.

Play Forward

The play forward button plays forward from the the current displayed frame of audio and video.

End of Data

The end of data button moves the display to the latest frame of video data available.

Real-Time Track

The real-time track button tracks the latest frame of data continuously, playing audio and video together in "real-time". If the display is unable to keep up with the data at the rate it is being put into the DataTurbine, frames are dropped. This is often noticible as "clicks" of audio or partial updates of video, depending on the encoding schemes used.

Position Slider

The position slider (see the rbnbVidView figure) allows positioning within the data as a percentage of the available data range (0% to 100%). Precise positioning can be obtained using a combination of the slider and the Step Backward and Step Forward buttons.

Time Field

The time field (see the rbnbVidView figure) shows the start time of the current displayed frame. The time is shown as [x days] [hh:][mm:]ss.sss.

Frame Rate Field

The frame rate field (see the rbnbVidView figure) shows the instantaneous frame display rate (frames/sec).