Skip to content

jacksonmv/txsuite

 
 

Repository files navigation

Transmission Suite

This is a collection of tools and utilities pulled from various places for use when preparing multimedia content for broadcast and streaming it over IP networks.

The suite aims to cover, primarily:

  • MPEG-2 Transport Stream creation and introspection
  • Tools for testing and simulating DVB broadcasts
  • MPEG-4 container manipulation (MPEG-4 Part 14; ISO/IEC 14496-14:2003)
  • SDP, RTSP and RTP testing tools
  • MHEG-5 authoring and testing (specifically the UK DVB profile to begin with)
  • Dirac video encoding, decoding and packetisation
  • Ogg Vorbis audio encoding, decoding and packetisation
  • Utilities to manipulate individual pre-rendered frames of video

If the BBC's Project Canvas achieves trust approval, it will be a further aim of this project that the tools provided will interoperate well with a Project Canvas workflow. Once the Project Canvas specifications have been completed and released, work will commence on ensuring that these tools are suitably aligned with them.

Licensing

Most of the tools are licensed under the GNU General Public License, version 2. Darwin Streaming Server is licensed under the APSL, version 2.

It should be noted that there are few, if any, interdependencies between the tools included; each of the top-level 'sub-project' directories within the build tree is typically a separate project in its own right.

Sources are taken from:

Pre-requisites

You will need a copy of pkg-config installed. Most Unix-like operating systems ship with a copy or have a package available. If you need to build from source, the latest version can be downloaded from http://pkgconfig.freedesktop.org/releases/

You should install at least the following before building txsuite. If you're building from source, you may find it helpful to build and install everything into a common prefix (e.g., /opt/txsuite):

If you don't have pkg-config installed on your system, you will also need to install it. Almost every Linux distribution includes it out of the box, but other platforms do not.

libSDL can be built in-tree if required. Download the latest version of the libSDL sources (1.2.14 at the time of writing) and extract the tarball. Rename the versioned directory (e.g., SDL-1.2.14) to simply SDL. Building SDL in-tree requires a minor patch to the build logic, so you will need to run buildtools/autogen after putting it in place. Note that running autogen re-creates the configure scripts and Makefiles and so requires that you have automake, autoconf and libtool installed properly. For most people, just installing an SDL developer package is easier.

When building x264 (built by default if ffmpeg is), you will need to either have yasm (yasm-0.6.2 or later) installed, or configure with --disable-asm. The latter obviously incurs some significant runtime performance penalties.

To build mhegc, you will need to install GNU bison and GNU flex.

To build OpenCaster, you will need to install Python 2.4's development package (assuming you don't have it already). Note that only Python 2.4 is acceptable; Python 2.3 and 2.5 are not acceptable alternatives (most operating systems ship with or allow you to install Python 2.4 alongside other versions if needed).

To build Darwin Streaming Server, you will need to configure with --enable-dss.

Projects

dvbloop

dvbloop provides a loopback (virtual) DVB adapter device on Linux-based systems. DVB receiver applications (such as those provided by the LinuxTV project) can open this device as though it were a real DVB adapter; data written to the device is then looped back to those applications, allowing simulation in software of DVB transport streams (useful when testing on hosts which do not have DVB hardware, or on virtual machines).

mhegenc

mhegenc is an MHEG-5 script encoder and decoder originally created by Samsung, and now maintained by SpongeLava. It accepts files containing MHEG-5 textual notation and produces ASN.1 DER output ready for transmission. In decoding mode, the reverse operation is performed.

RedButton (mhegc/mhegd, rb-download, rb-browser)

The RedButton suite contains tools for compiling and decompiling, capturing and viewing MHEG-5 interactive applications. The tools can be used with DVB hardware, with the dvbloop device, or with files loaded from disk. rb-browser requires X11, libpng, FFmpeg and the ALSA audio system.

OpenCaster

OpenCaster is a set of tools for manipulating and broadcasting MPEG-2 Transport Streams, as well as utilities for converting MPEG Elementary Streams to MPEG Packetized Elementary Streams, and vice versa. It includes tools to generate dummy streams, remap PIDs, and dump information about streams.

Darwin Streaming Server

Darwin Streaming Server is the open source version of Apple's QuickTime Streaming Server (QTSS), a high-performance RTSP/RTP media server supporting both unicast and multicast broadcasts from sources in various formats.

MPEG4IP

MPEG4IP is a reference implementation of the MPEG 4 standard, along with a number of other useful utilities. Tools are included to encode, stream and play back media, as well as manipulate MPEG 4 containers.

Schroedinger

Schroedinger is a fast reference implementation of the BBC’s Dirac video codec.

png2rgb

png2rgb is a small utility to process a sequence of one or more PNG images into a single raw 24-bit RGB file. The resulting .rgb file can be passed to the rgb2yuv utility included with MPEG4IP in order to generate a raw YUV 4:2:0-format frame sequence suitable for feeding into an encoder.

About

Transmission Suite

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published