Skip to content
kierank edited this page Apr 2, 2011 · 110 revisions

Note: This is the Open Broadcast Encoder code wiki. There are a range of OBE sites for different user-groups:

Corporate

http://www.ob-encoder.com

Downloads Page

http://code.google.com/p/open-broadcast-encoder/

Technical wiki (e.g. STB compatibility)

http://obe.wikia.com

Community Portal

http://ob-encoder.ning.com

Introduction

Open Broadcast Encoder is a fresh implementation of an open source decoder/encoder/transcoder/transmuxer. It is designed from the ground up to be both flexible and scalable enough for use in both 24/7 live streaming and offline operations. Open Broadcast Encoder aims to be compliant with all relevant broadcast industry standards and practices, with a special emphasis on quality and stability.

Open Broadcast Encoder is based on existing high-quality open source projects including x264, FFmpeg, libmpegts, and aften.

The project is divided into two subprojects that share core components: OBE-RT for real-time 24/7 operation and OBE-VoD when dealing with file-based workflows.

System Requirements OBE-Video on Demand

  • Supported on Windows, Mac OSX and Linux.

Usage scenarios for OBE-VoD

  • Existing File -> Demuxer -> Decoder/Filtering -> Encoder -> Muxer -> Save to File

System Requirements OBE-Realtime

  • Red Hat 5.x or Centos 5.x 64-bit or Ubuntu 10.x 64-bit
  • Other Linux configurations may work but are unsupported
  • HD/SD-SDI card for SDI input
  • DVB card for DVB input
  • ASI card for ASI input and/or output
  • Core 2 Quad or better for OBE-RT
    Core i7 recommended for HD

More specific hardware information will be listed as support is added.


Usage scenarios for OBE-RT

  • Live Stream -> Demuxer -> Decoder/Filtering -> Encoder -> Muxer -> Live Stream

OBE-RT-TODO


Input

Sources

  • SDI and HD-SDI
    Embedded audio and correct VANC processing where possible
    4:2:2 sampling
  • IP streams
    Raw UDP, RTP/UDP, Multicast IGMP v2, Unicast, RTSP, RTMP
  • DVB-ASI
    Passthrough or transcoding of H.264/MPEG-2 (SPTS and MPTS)
    ATSC PSIP
    Datacasting
  • AES3
    PCM and all non-PCM embedded formats
  • DVB-T/C/S
    Support for V4L2-DVB
  • Files from disk
    MKV, YUV2, Y4M, etc.

Audio Formats
Passthrough or transcode

  • AC-3 Audio
  • "E-distribution audio"
    Commercially known as "Dolby E" - Contact kierank for more information about this.
  • MPEG/MP2 Audio
    Includes 4x MP2 channels to simulate a 5.1+2.0 mix

Anciliary Streams

  • DVD Subtitles
  • DVB Subtitles
  • DVB-TTX (Teletext)

Output

Video Encoders

  • x264 - H.264 AVC encoder (includes 10-bit mode for high-quality applications)
  • x262 - MPEG-2 encoder (in development)
  • xvp8 - VP8 encoder (in development)

Statmux pools for both MPEG-2 and H.264 AVC (in development)
Speedcontrol to increase encoding complexity when CPU capacity is available (in development)

Video Filters

  • 10-bit to 8-bit dithering
  • 4:2:2 to 4:2:0 resampling using the high-speed libswscale package
  • Filters via libavfilter
    Basic deinterlacing, noise reduction, etc.
  • Handling for 3DTV formats

Audio Encoders

  • FFmpeg - AC-3 (future E-AC3 support)
  • Twolame - MP2
  • QuickTime - AAC/HE-AAC (experimental)

Audio Filters

  • "E-distribution" to AC-3 metadata passthrough
  • SMPTE 337M audio passthrough for AC-3 or MPEG audio

Subtitles/Captioning

  • DVB subtitles
  • CEA subtitles

Miscellaneous

  • Active Format Description
    Insertion and passthrough

Muxers

  • libmpegts - ATSC/CableLabs/DVB/ISDB compatible MPEG-2 Systems multiplexer
    • SMPTE 302M
    • LATM
  • rtmp
    For connection to an RTMP streaming server or a CDN such as Akamai
  • Possibly also split mp4 files (Youview)

Output Modules

  • DVB-ASI
  • SMPTE 310M
  • SMPTE 2022
  • Possibility for software DVB modulation
  • UDP/IP & RTP/UDP/IP Multicast

Miscellaneous

Monitoring and Control

  • SNMP
  • LCD Display
    Likely using LCDproc or similar

User Interaction

  • Command line interface
  • Web-based interface
  • GUI interface
  • Integrated system benchmarks for determining viable real-time performance capabilities
  • General system information
    Kernel version, CPU/memory usage, buffer sizes, etc.
Clone this wiki locally