insert free atom after moov make vlc play
This commit is contained in:
parent
637f47b250
commit
b810c9a2fb
@ -7,7 +7,7 @@ import (
|
||||
)
|
||||
|
||||
func main() {
|
||||
if _, err := mp4.Open("tiny2-avconv.mp4"); err != nil {
|
||||
if _, err := mp4.Open("mid.mp4"); err != nil {
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
|
14
mp4.go
14
mp4.go
@ -59,14 +59,26 @@ func Open(filename string) (file *File, err error) {
|
||||
}
|
||||
|
||||
if cc4 == "moov" {
|
||||
curPos, _ := outfile.Seek(0, 1)
|
||||
origSize := ar.N+8
|
||||
var moov *atom.Movie
|
||||
if moov, err = atom.ReadMovie(ar); err != nil {
|
||||
return
|
||||
}
|
||||
log.Println("regen moov", "tracks nr", len(moov.Tracks))
|
||||
if err = atom.WriteMovie(outfile, moov); err != nil {
|
||||
return
|
||||
}
|
||||
curPosAfterRead, _ := outfile.Seek(0, 1)
|
||||
bytesWritten := curPosAfterRead - curPos
|
||||
|
||||
log.Println("regen moov", "tracks nr", len(moov.Tracks),
|
||||
"origSize", origSize, "bytesWritten", bytesWritten,
|
||||
)
|
||||
|
||||
padSize := origSize - bytesWritten - 8
|
||||
aw, _ := atom.WriteAtomHeader(outfile, "free")
|
||||
atom.WriteDummy(outfile, int(padSize))
|
||||
aw.Close()
|
||||
} else {
|
||||
var aw *atom.Writer
|
||||
if aw, err = atom.WriteAtomHeader(outfile, cc4); err != nil {
|
||||
|
Loading…
x
Reference in New Issue
Block a user