]> 127.0.0.1 Git - bili_danmu/.git/commitdiff
Add 配置 flv使用内置头
authorqydysky <qydysky@foxmail.com>
Sat, 15 Jun 2024 17:16:08 +0000 (17:16 +0000)
committerqydysky <qydysky@foxmail.com>
Sat, 15 Jun 2024 17:16:08 +0000 (17:16 +0000)
Reply/stream.go
demo/config/config_K_v.json

index faa10b3c5c6988eee49971252c2d63eb709dec18..ab48eb210ec752486c0f5f87c1033ea40c992462 100644 (file)
@@ -731,13 +731,17 @@ func (t *M4SStream) saveStreamFlv() (e error) {
                {
                        pipe := pio.NewPipe()
                        var (
-                               leastReadUnix atomic.Int64
-                               readTO        int64 = 3
+                               leastReadUnix     atomic.Int64
+                               readTO            int64 = 3
+                               useInterFlvHeader bool  = false
                        )
                        leastReadUnix.Store(time.Now().Unix())
                        if v, ok := t.common.K_v.LoadV(`flv断流超时s`).(float64); ok && int64(v) > readTO {
                                readTO = int64(v)
                        }
+                       if v, ok := t.common.K_v.LoadV(`flv使用内置头`).(bool); ok && v {
+                               useInterFlvHeader = v
+                       }
 
                        // read timeout
                        go func() {
@@ -820,18 +824,20 @@ func (t *M4SStream) saveStreamFlv() (e error) {
                                                }
                                                if keyframe.Size() != 0 {
                                                        if len(t.first_buf) == 0 {
-                                                               switch v.Codec {
-                                                               case "hevc":
-                                                                       t.log.L(`W: `, `flv未接收到起始段,使用内置头`)
-                                                                       t.first_buf = t.first_buf[:0]
-                                                                       t.first_buf = append(t.first_buf, flvHeaderHevc...)
-                                                                       t.msg.Push_tag(`load`, t)
-                                                               case "avc":
-                                                                       t.log.L(`W: `, `flv未接收到起始段,使用内置头`)
-                                                                       t.first_buf = t.first_buf[:0]
-                                                                       t.first_buf = append(t.first_buf, flvHeader...)
-                                                                       t.msg.Push_tag(`load`, t)
-                                                               default:
+                                                               if useInterFlvHeader {
+                                                                       switch v.Codec {
+                                                                       case "hevc":
+                                                                               t.log.L(`W: `, `flv未接收到起始段,使用内置头`)
+                                                                               t.first_buf = t.first_buf[:0]
+                                                                               t.first_buf = append(t.first_buf, flvHeaderHevc...)
+                                                                               t.msg.Push_tag(`load`, t)
+                                                                       case "avc":
+                                                                               t.log.L(`W: `, `flv未接收到起始段,使用内置头`)
+                                                                               t.first_buf = t.first_buf[:0]
+                                                                               t.first_buf = append(t.first_buf, flvHeader...)
+                                                                               t.msg.Push_tag(`load`, t)
+                                                                       default:
+                                                                       }
                                                                }
                                                                if len(t.first_buf) == 0 {
                                                                        t.log.L(`W: `, `flv未接收到起始段`)
index 4ae5106e2f8120de6afd7e84bfb73c8da5f65376..bad780d74f3487f57579aac49b1f908a95404529 100644 (file)
@@ -75,6 +75,7 @@
     "直播流接收n帧才保存": 3,
     "flv断流超时s": 5,
     "flv断流续接": true,
+    "flv使用内置头": false,
     "fmp4切片下载超时s": 3,
     "fmp4获取更多服务器": true,
     "fmp4跳过解码出错的帧-help": "fmp4跳过解码出错的帧、但可能导致关键帧时间上的跳越",