Provides mp4 reader/writer and mp4 atom manipulations functions.
Open a mp4 file and read the first sample:
file, _ := os.Open("test.mp4")
demuxer := &mp4.Demuxer{R: file}
demuxer.ReadHeader()
pts, dts, isKeyFrame, data, err := demuxer.TrackH264.ReadSample()
do some seeking:
demuxer.TrackH264.SeekToTime(2.0)
demuxer demo code here
the library also provide atom struct decoding/encoding functions( learn more about mp4 atoms here )
you can access atom structs via Demuxer.TrackH264.TrackAtom
. for example:
// Get the raw TimeScale field inside `mvhd` atom
fmt.Println(demuxer.TrackH264.TrackAtom.Media.Header.TimeScale)
for more see Atom API Docs