fix audio

This commit is contained in:
Andrey Semochkin
2021-01-09 17:24:48 +03:00
parent 33b07c6a20
commit f16439f7ef
4 changed files with 51 additions and 16 deletions

View File

@@ -79,7 +79,7 @@ func (self *Muxer) newStream(codec av.CodecData) (err error) {
stream.sample.SyncSample = &mp4io.SyncSample{}
stream.timeScale = 90000
case av.AAC:
stream.timeScale = 8000
stream.timeScale = int64(codec.(av.AudioCodecData).SampleRate())
}
stream.muxer = self
@@ -179,10 +179,12 @@ func (self *Stream) fillTrackAtom() (err error) {
self.sample.SampleDesc.MP4ADesc = &mp4io.MP4ADesc{
DataRefIdx: 1,
NumberOfChannels: int16(codec.ChannelLayout().Count()),
SampleSize: 16,
SampleSize: int16(codec.SampleFormat().BytesPerSample() * 4),
SampleRate: float64(codec.SampleRate()),
Unknowns: []mp4io.Atom{self.buildEsds(codec.MPEG4AudioConfigBytes())},
}
//log.Fatalln(codec.MPEG4AudioConfigBytes())
//log.Fatalln(codec.SampleFormat().BytesPerSample())
self.trackAtom.Header.Volume = 1
self.trackAtom.Header.AlternateGroup = 1
self.trackAtom.Header.Duration = 0
@@ -270,6 +272,9 @@ func (element *Muxer) WritePacket(pkt av.Packet, GOP bool) (bool, []byte, error)
if stream.lastpkt != nil {
ts = pkt.Time - stream.lastpkt.Time
}
if stream.CodecData.Type().IsAudio() {
pkt.Data = pkt.Data[4:]
}
got, buf, err := stream.writePacketV2(pkt, ts, 5)
stream.lastpkt = &pkt
if err != nil {