mpeg

module
v0.0.0-...-533afb4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 11, 2018 License: MIT

README

mpeg

Package mpeg provides an implementation of an experimental pure golang implementation of an MPEG-2 decoder. It is intended as an educational look at some of the patterns and algorithms involved in the ubiquitous technology of video compression/decompression.

This package is experimental and is not intended for use in production environments.

GoDoc

Composition

This library is split into four sub-packages:

  • mpeg/ts for parsing and processing MPEG-2 Transport Streams
  • mpeg/ps for parsing and processing MPEG-2 Program Streams
  • mpeg/pes for parsing and processing MPEG-2 Packetized Elementary Streams
  • mpeg/video for decoding MPEG-2 Video

Examples

Give it a spin!
go get -d github.com/32bitkid/mpeg
Decode a frame of video from a MPEG-2 TS and save it as a png
package main

import "os"
import "image/png"

import "github.com/32bitkid/mpeg/ts"
import "github.com/32bitkid/mpeg/pes"
import "github.com/32bitkid/mpeg/video"

func main() {
  // Open the file
  tsReader, err := os.Open("source.ts")

  // Decode PID 0x21 from the TS stream
  pesReader := ts.NewPayloadUnitReader(tsReader, ts.IsPID(0x21))

  // Decode the PES stream
  esReader := pes.NewPayloadReader(pesReader)

  // Decode the ES into a stream of frames
  v := video.NewVideoSequence(esReader)

  // Align to next sequence start/entry point
  v.AlignTo(video.SequenceHeaderStartCode)

  // get the next frame
  frame, _ = v.Next()
  file, _ := os.Create("output.png")
  png.Encode(file, frame)
}

Directories

Path Synopsis
Package pes implements an MPEG-2 packetized elementary stream parser as defined in ISO/IEC 13818-1.
Package pes implements an MPEG-2 packetized elementary stream parser as defined in ISO/IEC 13818-1.
Package ts implements an MPEG-2 transport stream parser as defined in ISO/IEC 13818-1.
Package ts implements an MPEG-2 transport stream parser as defined in ISO/IEC 13818-1.
Package video implements the basic structures for simple MPEG-2 video decoding as defined in ISO/IEC 13818-1.
Package video implements the basic structures for simple MPEG-2 video decoding as defined in ISO/IEC 13818-1.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL