Skip to content

32bitkid/gtsp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 

Repository files navigation

Go Transport Stream Player (gtsp)

An experimental simple MPEG-2 Transport Stream demuxer/player written in Go. Presentation is handled by go-sdl2, but the actual video decoding is done using an experimental pure Go video decoder, mpeg, hence it's slow is as molasses.

The primary goal of mpeg is to be a human readable alternative to higher performance video decoding libraries, however work is still being done to improve both readability and performance where possible.

Dependencies

gtsp requires SDL:

On Ubuntu 14.04 and above, use:

apt-get install libsdl2{,-mixer,-image,-ttf}-dev

On Fedora 20 and above, use:

yum install SDL2{,_mixer,_image,_ttf}-devel

On Arch Linux, use:

pacman -S sdl2{,_mixer,_image,_ttf}

On Mac OS X, install SDL2 via Homebrew like so:

brew install sdl2{,_image,_ttf,_mixer}

On Windows, install SDL2 via Msys2 like so:

pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-SDL2{,_mixer,_image,_ttf}

See go-sdl2 for more details.

Installation

$ go get github.com/32bitkid/gtsp

Notes

The MPEG-2 decoder is presently experimental and does not support the entire MPEG-2 specification; presently, it only supports a subset of Main Profile encoded videos (I,P,B pictures, 4:2:0 chroma, frame based pictures with frame based motion compensation). Underlying library support for more of the specification is on-going.

At the time of writing this, you should be able to play PID 0x31 from this clip from the open source movie Elephants Dream:

$ gtsp -pid=0x31 elephants_dream_clip.ts

About

A experimental MPEG-2 TS video player written in Go

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages