diff --git a/example/example.go b/example/example.go index 3b0e1e2..df07b6d 100644 --- a/example/example.go +++ b/example/example.go @@ -10,9 +10,7 @@ import ( func DemuxExample() { file, _ := os.Open("test.mp4") - demuxer := &mp4.Demuxer{ - R: file, - } + demuxer := &mp4.Demuxer{R: file} demuxer.ReadHeader() fmt.Println("Total tracks: ", len(demuxer.Tracks)) @@ -57,7 +55,35 @@ func DemuxExample() { fmt.Print(hex.Dump(sample)) } -func main() { - DemuxExample() +func MuxExample() { + infile, _ := os.Open("test.mp4") + outfile, _ := os.Create("test.out.mp4") + + demuxer := &mp4.Demuxer{R: infile} + demuxer.ReadHeader() + + muxer := &mp4.Muxer{W: outfile} + muxer.AddH264Track() + muxer.TrackH264.SetH264PPS(demuxer.TrackH264.GetH264PPS()) + muxer.TrackH264.SetH264SPS(demuxer.TrackH264.GetH264SPS()) + muxer.TrackH264.SetTimeScale(demuxer.TrackH264.TimeScale()) + + muxer.WriteHeader() + for { + pts, dts, isKeyFrame, data, err := demuxer.TrackH264.ReadSample() + if err != nil { + break + } + fmt.Println("sample #", dts, pts) + muxer.TrackH264.WriteSample(pts, dts, isKeyFrame, data) + } + + muxer.WriteTrailer() + outfile.Close() +} + +func main() { + //DemuxExample() + MuxExample() }