Browse Source

update go-mp4 (#1411)

pull/1412/head
Alessandro Ros 2 years ago committed by GitHub
parent
commit
22d86ba7fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      go.mod
  2. 4
      go.sum
  3. 12
      internal/hls/fmp4/boxes_h265.go
  4. 183
      internal/hls/fmp4/init_test.go

2
go.mod

@ -4,7 +4,7 @@ go 1.18 @@ -4,7 +4,7 @@ go 1.18
require (
code.cloudfoundry.org/bytefmt v0.0.0
github.com/abema/go-mp4 v0.9.0
github.com/abema/go-mp4 v0.10.0
github.com/alecthomas/kong v0.7.1
github.com/aler9/gortsplib/v2 v2.0.5
github.com/asticode/go-astits v1.10.1-0.20220319093903-4abe66a9b757

4
go.sum

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
github.com/abema/go-mp4 v0.9.0 h1:WFkzn0J8uYTQ2MIWfgCaFHRB3VDkird5JncIjuuKjGI=
github.com/abema/go-mp4 v0.9.0/go.mod h1:vPl9t5ZK7K0x68jh12/+ECWBCXoWuIDtNgPtU2f04ws=
github.com/abema/go-mp4 v0.10.0 h1:76eRo2PlJQUHAKKsQJnROsdIHdt+aPXhJkmPFMjj3+4=
github.com/abema/go-mp4 v0.10.0/go.mod h1:vPl9t5ZK7K0x68jh12/+ECWBCXoWuIDtNgPtU2f04ws=
github.com/alecthomas/assert/v2 v2.1.0 h1:tbredtNcQnoSd3QBhQWI7QZ3XHOVkw1Moklp2ojoH/0=
github.com/alecthomas/kong v0.7.1 h1:azoTh0IOfwlAX3qN9sHWTxACE2oV8Bg2gAwBsMwDQY4=
github.com/alecthomas/kong v0.7.1/go.mod h1:n1iCIO2xS46oE8ZfYCNDqdR0b0wZNrXAIAqro/2132U=

12
internal/hls/fmp4/boxes_h265.go

@ -1,12 +0,0 @@ @@ -1,12 +0,0 @@
//nolint:gochecknoinits,revive,gocritic
package fmp4
import (
gomp4 "github.com/abema/go-mp4"
)
func BoxTypeHvc1() gomp4.BoxType { return gomp4.StrToBoxType("hvc1") }
func init() {
gomp4.AddAnyTypeBoxDef(&gomp4.VisualSampleEntry{}, BoxTypeHvc1())
}

183
internal/hls/fmp4/init_test.go

@ -812,6 +812,189 @@ func TestInitUnmarshalExternal(t *testing.T) { @@ -812,6 +812,189 @@ func TestInitUnmarshalExternal(t *testing.T) {
},
},
},
{
"h265 apple",
[]byte{
0x00, 0x00, 0x00, 0x20, 0x66, 0x74, 0x79, 0x70,
0x6d, 0x70, 0x34, 0x32, 0x00, 0x00, 0x00, 0x01,
0x6d, 0x70, 0x34, 0x31, 0x6d, 0x70, 0x34, 0x32,
0x69, 0x73, 0x6f, 0x6d, 0x68, 0x6c, 0x73, 0x66,
0x00, 0x00, 0x04, 0x96, 0x6d, 0x6f, 0x6f, 0x76,
0x00, 0x00, 0x00, 0x6c, 0x6d, 0x76, 0x68, 0x64,
0x00, 0x00, 0x00, 0x00, 0xd5, 0x5b, 0xc6, 0x84,
0xd5, 0x5b, 0xc6, 0x84, 0x00, 0x00, 0x02, 0x58,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x02, 0x70,
0x74, 0x72, 0x61, 0x6b, 0x00, 0x00, 0x00, 0x5c,
0x74, 0x6b, 0x68, 0x64, 0x00, 0x00, 0x00, 0x01,
0xd5, 0x5b, 0xc6, 0x84, 0xd5, 0x5b, 0xc6, 0x84,
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
0x03, 0xc0, 0x00, 0x00, 0x02, 0x1c, 0x00, 0x00,
0x00, 0x00, 0x02, 0x0c, 0x6d, 0x64, 0x69, 0x61,
0x00, 0x00, 0x00, 0x20, 0x6d, 0x64, 0x68, 0x64,
0x00, 0x00, 0x00, 0x00, 0xd5, 0x5b, 0xc6, 0x84,
0xd5, 0x5b, 0xc6, 0x84, 0x00, 0x00, 0x17, 0x70,
0x00, 0x00, 0x00, 0x00, 0x15, 0xc7, 0x00, 0x00,
0x00, 0x00, 0x00, 0x31, 0x68, 0x64, 0x6c, 0x72,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x76, 0x69, 0x64, 0x65, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x43, 0x6f, 0x72, 0x65, 0x20, 0x4d, 0x65, 0x64,
0x69, 0x61, 0x20, 0x56, 0x69, 0x64, 0x65, 0x6f,
0x00, 0x00, 0x00, 0x01, 0xb3, 0x6d, 0x69, 0x6e,
0x66, 0x00, 0x00, 0x00, 0x14, 0x76, 0x6d, 0x68,
0x64, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x24, 0x64, 0x69, 0x6e, 0x66, 0x00, 0x00, 0x00,
0x1c, 0x64, 0x72, 0x65, 0x66, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x0c, 0x75, 0x72, 0x6c, 0x20, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x01, 0x73, 0x73, 0x74, 0x62,
0x6c, 0x00, 0x00, 0x01, 0x27, 0x73, 0x74, 0x73,
0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x01, 0x17, 0x68, 0x76, 0x63,
0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x03, 0xc0, 0x02, 0x1c, 0x00, 0x48, 0x00,
0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x18, 0xff, 0xff, 0x00,
0x00, 0x00, 0x8a, 0x68, 0x76, 0x63, 0x43, 0x01,
0x02, 0x00, 0x00, 0x00, 0x04, 0xb0, 0x00, 0x00,
0x00, 0x00, 0x00, 0x7b, 0xf0, 0x00, 0xfc, 0xfd,
0xfa, 0xfa, 0x00, 0x00, 0x0f, 0x03, 0xa0, 0x00,
0x01, 0x00, 0x18, 0x40, 0x01, 0x0c, 0x01, 0xff,
0xff, 0x02, 0x20, 0x00, 0x00, 0x03, 0x00, 0xb0,
0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x7b,
0x18, 0xb0, 0x24, 0xa1, 0x00, 0x01, 0x00, 0x3c,
0x42, 0x01, 0x01, 0x02, 0x20, 0x00, 0x00, 0x03,
0x00, 0xb0, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03,
0x00, 0x7b, 0xa0, 0x07, 0x82, 0x00, 0x88, 0x7d,
0xb6, 0x71, 0x8b, 0x92, 0x44, 0x80, 0x53, 0x88,
0x88, 0x92, 0xcf, 0x24, 0xa6, 0x92, 0x72, 0xc9,
0x12, 0x49, 0x22, 0xdc, 0x91, 0xaa, 0x48, 0xfc,
0xa2, 0x23, 0xff, 0x00, 0x01, 0x00, 0x01, 0x6a,
0x02, 0x02, 0x02, 0x01, 0xa2, 0x00, 0x01, 0x00,
0x08, 0x44, 0x01, 0xc0, 0x25, 0x2f, 0x05, 0x32,
0x40, 0x00, 0x00, 0x00, 0x13, 0x63, 0x6f, 0x6c,
0x72, 0x6e, 0x63, 0x6c, 0x78, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x0a,
0x66, 0x69, 0x65, 0x6c, 0x01, 0x00, 0x00, 0x00,
0x00, 0x0a, 0x63, 0x68, 0x72, 0x6d, 0x00, 0x00,
0x00, 0x00, 0x00, 0x10, 0x70, 0x61, 0x73, 0x70,
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
0x00, 0x00, 0x00, 0x10, 0x73, 0x74, 0x74, 0x73,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x10, 0x73, 0x74, 0x73, 0x63,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x14, 0x73, 0x74, 0x73, 0x7a,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0x73, 0x74, 0x63, 0x6f, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x6a,
0x74, 0x72, 0x61, 0x6b, 0x00, 0x00, 0x00, 0x5c,
0x74, 0x6b, 0x68, 0x64, 0x00, 0x00, 0x00, 0x01,
0xd5, 0x5b, 0xc6, 0x84, 0xd5, 0x5b, 0xc6, 0x84,
0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x06, 0x6d, 0x64, 0x69, 0x61,
0x00, 0x00, 0x00, 0x20, 0x6d, 0x64, 0x68, 0x64,
0x00, 0x00, 0x00, 0x00, 0xd5, 0x5b, 0xc6, 0x84,
0xd5, 0x5b, 0xc6, 0x84, 0x00, 0x00, 0x75, 0x30,
0x00, 0x00, 0x00, 0x00, 0x15, 0xc7, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3a, 0x68, 0x64, 0x6c, 0x72,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x63, 0x6c, 0x63, 0x70, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x43, 0x6f, 0x72, 0x65, 0x20, 0x4d, 0x65, 0x64,
0x69, 0x61, 0x20, 0x43, 0x6c, 0x6f, 0x73, 0x65,
0x64, 0x20, 0x43, 0x61, 0x70, 0x74, 0x69, 0x6f,
0x6e, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x6d, 0x69,
0x6e, 0x66, 0x00, 0x00, 0x00, 0x0c, 0x6e, 0x6d,
0x68, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x24, 0x64, 0x69, 0x6e, 0x66, 0x00, 0x00,
0x00, 0x1c, 0x64, 0x72, 0x65, 0x66, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
0x00, 0x0c, 0x75, 0x72, 0x6c, 0x20, 0x00, 0x00,
0x00, 0x01, 0x00, 0x00, 0x00, 0x6c, 0x73, 0x74,
0x62, 0x6c, 0x00, 0x00, 0x00, 0x20, 0x73, 0x74,
0x73, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x63, 0x36,
0x30, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x73, 0x74,
0x74, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x73, 0x74,
0x73, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x73, 0x74,
0x73, 0x7a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x10, 0x73, 0x74, 0x63, 0x6f, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x48, 0x6d, 0x76, 0x65, 0x78, 0x00, 0x00,
0x00, 0x20, 0x74, 0x72, 0x65, 0x78, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x20, 0x74, 0x72, 0x65, 0x78, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
},
Init{
Tracks: []*InitTrack{{
ID: 1,
TimeScale: 6000,
Format: &format.H265{
PayloadTyp: 96,
VPS: []byte{
0x40, 0x01, 0x0c, 0x01, 0xff, 0xff, 0x02, 0x20,
0x00, 0x00, 0x03, 0x00, 0xb0, 0x00, 0x00, 0x03,
0x00, 0x00, 0x03, 0x00, 0x7b, 0x18, 0xb0, 0x24,
},
SPS: []byte{
0x42, 0x01, 0x01, 0x02, 0x20, 0x00, 0x00, 0x03,
0x00, 0xb0, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03,
0x00, 0x7b, 0xa0, 0x07, 0x82, 0x00, 0x88, 0x7d,
0xb6, 0x71, 0x8b, 0x92, 0x44, 0x80, 0x53, 0x88,
0x88, 0x92, 0xcf, 0x24, 0xa6, 0x92, 0x72, 0xc9,
0x12, 0x49, 0x22, 0xdc, 0x91, 0xaa, 0x48, 0xfc,
0xa2, 0x23, 0xff, 0x00, 0x01, 0x00, 0x01, 0x6a,
0x02, 0x02, 0x02, 0x01,
},
PPS: []byte{
0x44, 0x01, 0xc0, 0x25, 0x2f, 0x05, 0x32, 0x40,
},
},
}},
},
},
{
"mpeg4audio",
[]byte{

Loading…
Cancel
Save