Add support AAC for RTMP to MP4

This commit is contained in:
Alexey Khit
2022-11-06 22:44:48 +03:00
parent d8158bc1e3
commit 8b93c97e69
7 changed files with 315 additions and 93 deletions
+4 -3
View File
@@ -84,9 +84,8 @@ func handlerMP4(w http.ResponseWriter, r *http.Request) {
cons := &mp4.Consumer{}
cons.Listen(func(msg interface{}) {
switch msg := msg.(type) {
case []byte:
if _, err := w.Write(msg); err != nil {
if data, ok := msg.([]byte); ok {
if _, err := w.Write(data); err != nil {
exit <- struct{}{}
}
}
@@ -112,6 +111,8 @@ func handlerMP4(w http.ResponseWriter, r *http.Request) {
return
}
cons.Start()
<-exit
log.Trace().Msg("[api.mp4] close")
+7 -8
View File
@@ -21,14 +21,13 @@ func handlerWS(ctx *api.Context, msg *streamer.Message) {
cons.RemoteAddr = ctx.Request.RemoteAddr
cons.Listen(func(msg interface{}) {
switch msg.(type) {
case *streamer.Message, []byte:
ctx.Write(msg)
if data, ok := msg.([]byte); ok {
ctx.Write(data)
}
})
if err := stream.AddConsumer(cons); err != nil {
log.Warn().Err(err).Msg("[api.mse] add consumer")
log.Warn().Err(err).Caller().Send()
ctx.Error(err)
return
}
@@ -37,16 +36,16 @@ func handlerWS(ctx *api.Context, msg *streamer.Message) {
stream.RemoveConsumer(cons)
})
ctx.Write(&streamer.Message{
Type: MsgTypeMSE, Value: cons.MimeType(),
})
ctx.Write(&streamer.Message{Type: MsgTypeMSE, Value: cons.MimeType()})
data, err := cons.Init()
if err != nil {
log.Warn().Err(err).Msg("[api.mse] init")
log.Warn().Err(err).Caller().Send()
ctx.Error(err)
return
}
ctx.Write(data)
cons.Start()
}