giantpoplar / go-qt-faststart

A Go package that optimizes Quicktime movie files for network streaming

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Quicktime Fast Start for Go

Package qtfaststart optimizes Quicktime movie files for network streaming by moving metadata to the beginning of the file.

About

Quicktime files are composed of atoms, data structures that can contain audio or video tracks, subtitles, metadata, and even other atoms. One atom, called moov, contains general information about the movie, such as the number of tracks and where in the file those tracks can be found. The moov atom is traditionally placed at the end of the file, but this design decision means that playback cannot begin until the entire file has been loaded into memory, which translates to significant wait times when playing Quicktime movies on the web. We can solve this problem by rearranging the atoms that make up the Quicktime movie. By placing the moov atom near the beginning of the file, the movie can start playing almost as fast as it is downloaded.

This package is based on the original qt-faststart tool, written in C by Mike Melanson and now distributed as part of the FFmpeg project. It also draws inspiration from Daniel Taylor's python implementation of that utility.

Install

go get github.com/dejami/go-qt-faststart

Documentation

godoc.org/github.com/dejami/go-qt-faststart

Et cetera

Quicktime is a registered trademark of Apple, Inc.

About

A Go package that optimizes Quicktime movie files for network streaming

License:MIT License


Languages

Language:Go 100.0%