]> 127.0.0.1 Git - bili_danmu/.git/commitdiff
flv中断fix
authorqydysky <32743305+qydysky@users.noreply.github.com>
Sun, 16 Oct 2022 13:45:35 +0000 (21:45 +0800)
committerqydysky <32743305+qydysky@users.noreply.github.com>
Sun, 16 Oct 2022 13:45:35 +0000 (21:45 +0800)
Reply/stream.go
demo/go.mod
go.mod
go.sum

index 54e17a3cab97d20239a97a51b634db7cfdaf8aae..2bb1985a4cb5b1f422f7ba9f06bd8c58150ab1dc 100644 (file)
@@ -446,7 +446,7 @@ func (t *M4SStream) saveStream() (e error) {
        // 获取流
        switch t.stream_type {
        case `m3u8`:
-               e = t.saveStreamM4s()
+               fallthrough
        case `mp4`:
                e = t.saveStreamM4s()
        case `flv`:
@@ -496,17 +496,18 @@ func (t *M4SStream) saveStreamFlv() (e error) {
                        }
 
                        rc, rw := io.Pipe()
-                       var leastReadTime time.Time
+                       var leastReadUnix = time.Now().Unix()
                        // read timeout
                        go func() {
-                               timer := time.NewTimer(5 * time.Second)
+                               timer := time.NewTicker(5 * time.Second)
                                defer timer.Stop()
                                for {
                                        select {
                                        case <-s.WaitC():
                                                return
                                        case curT := <-timer.C:
-                                               if curT.Sub(leastReadTime).Seconds() > 5 {
+                                               if curT.Unix()-leastReadUnix > 5 {
+                                                       t.log.L(`W: `, "5s未接收到任何数据")
                                                        // 5s未接收到任何数据
                                                        r.Cancel()
                                                        return
@@ -521,7 +522,7 @@ func (t *M4SStream) saveStreamFlv() (e error) {
                                var buf = make([]byte, 1<<16)
                                for {
                                        n, e := rc.Read(buf)
-                                       leastReadTime = time.Now()
+                                       leastReadUnix = time.Now().Unix()
                                        buff = append(buff, buf[:n]...)
                                        if n > 0 {
                                                front_buf, keyframe, last_avilable_offset, e := Seach_stream_tag(buff)
index 354f10c5a849c4521308dd7e2d72d1b7d2dcf98d..862480233bf33a8d169b4b1f4f432e02bd567d65 100644 (file)
@@ -15,7 +15,7 @@ require (
        github.com/mdp/qrterminal/v3 v3.0.0 // indirect
        github.com/miekg/dns v1.1.50 // indirect
        github.com/mitchellh/mapstructure v1.5.0 // indirect
-       github.com/qydysky/part v0.10.12 // indirect
+       github.com/qydysky/part v0.10.13 // indirect
        github.com/shirou/gopsutil v3.21.11+incompatible // indirect
        github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e // indirect
        github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 // indirect
diff --git a/go.mod b/go.mod
index aea539b2dcfd35d9f167eeb8a30e02a0ef6b5f60..04a2698140d941816e72f217d576112d9277c183 100644 (file)
--- a/go.mod
+++ b/go.mod
@@ -7,7 +7,7 @@ require (
        github.com/gofrs/uuid v4.3.0+incompatible
        github.com/gotk3/gotk3 v0.6.1
        github.com/mdp/qrterminal/v3 v3.0.0
-       github.com/qydysky/part v0.10.12
+       github.com/qydysky/part v0.10.13
        github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e
        github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966
        golang.org/x/text v0.3.8
diff --git a/go.sum b/go.sum
index b627385af83e0d6b77a24a8538225e9262fb474f..243d3d51a079f00b18f087b35ef712289d394556 100644 (file)
--- a/go.sum
+++ b/go.sum
@@ -43,6 +43,8 @@ github.com/qydysky/part v0.10.11 h1:6KeTx3accgmzv+HwMP8mcYmWhWxAO7wxyPisQWJTfS4=
 github.com/qydysky/part v0.10.11/go.mod h1:B3GD/j5jmvwfKtnzDWqRYFqnwOXEyoUg/jShFk1yQSM=
 github.com/qydysky/part v0.10.12 h1:i5eMB/AMncs0pqWD3z1E8FivxiyDGGrsIQtKbkOjW/Y=
 github.com/qydysky/part v0.10.12/go.mod h1:B3GD/j5jmvwfKtnzDWqRYFqnwOXEyoUg/jShFk1yQSM=
+github.com/qydysky/part v0.10.13 h1:X2pzesWFRTyEw164sP3AaijYiRH3WoaUcldzklrmcI8=
+github.com/qydysky/part v0.10.13/go.mod h1:B3GD/j5jmvwfKtnzDWqRYFqnwOXEyoUg/jShFk1yQSM=
 github.com/shirou/gopsutil v3.20.12+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
 github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI=
 github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=