Giter Site home page Giter Site logo

gpmf's Introduction

GoPro GPMF format Reader/Parser/Writer

GPMF structure (link to GPMF structure document)

GPMF structure (link to GPMF structure document)

- Finding the metadata track that has the GPMF data

Find the track's hdlr atom and check if the componentSubType = "meta". There can be several tracks with meta data. GPMF is meta data.

  • /moov/trak/mdia/hdlr

From that same track find the stsd atom. It will contain a sample description table where the entry should contain dataFormat = 'gpmd'

  • /moov/trak/mdia/minf/stbl/stsd

- Sample retrieval proces from the GPMF track

Samples are read from the track in chunks of samples. The MP4 atom containing the chunk offsets table for that track that points into the MP4 file where those chunks start. One of the following 2 chunk offsets tables will be present depending on the size of the video. We will call a chunk from now on a payload.

  • /moov/trak/mdia/minf/stbl/stco (32 bit values)
  • /moov/trak/mdia/minf/stbl/co64 (64 bit values)

There is also an MP4 chunk size table with the same amount of entries as the chunk offset table. You could retrieve that also of you want to. But with good coding it's not really needed. And ... I don't need it :)

  • /moov/trak/mdia/minf/stbl/stsz

- Handling if the GPMF payload

Check this link for a full GPMF data structure reference. The GPMF payload exists of klv blocks that are nested with each other to get all the needed meta data samples. Each data type has a stream (STRM) that includes a table of the samples for that payload, the scaling factor, the units type and more data. The values are presented in itegers that need to be devided by the scalar integer value to get a precise float value.

- Timing of the GPMF payload

In progress ...

gpmf's People

Contributors

faalbers avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.