From: qydysky Date: Sat, 16 Nov 2024 09:56:32 +0000 (+0800) Subject: Fix cut replay X-Git-Tag: v0.14.22~14 X-Git-Url: http://127.0.0.1:8081/?a=commitdiff_plain;h=9fdea6666245b36b33ee407ca7fafd2d97a164c4;p=bili_danmu%2F.git Fix cut replay --- diff --git a/Reply/F.go b/Reply/F.go index c7f42d8..f4ef69f 100644 --- a/Reply/F.go +++ b/Reply/F.go @@ -1539,13 +1539,16 @@ func init() { defer func() { flog.L(`T: `, r.RemoteAddr, `断开录播`, time.Since(ts)) }() if duration != 0 { + // too fast copy with break js work + res := pio.WriterWithConfig(w, pio.CopyConfig{BytePerSec: speed}) + if strings.HasSuffix(v, "flv") { w.Header().Set("Content-Disposition", fmt.Sprintf("inline; filename=\"%s.%d.flv\"", qref, time.Now().Unix())) flvDecoder := NewFlvDecoder() if v, ok := c.C.K_v.LoadV(`flv音视频时间戳容差ms`).(float64); ok && v > 100 { flvDecoder.Diff = v } - if e := flvDecoder.Cut(f, startT, duration, w); e != nil && !errors.Is(e, io.EOF) { + if e := flvDecoder.Cut(f, startT, duration, res); e != nil && !errors.Is(e, io.EOF) { flog.L(`E: `, e) } } @@ -1555,7 +1558,7 @@ func init() { if v, ok := c.C.K_v.LoadV(`fmp4音视频时间戳容差s`).(float64); ok && v > 0.1 { fmp4Decoder.AVTDiff = v } - if e := fmp4Decoder.Cut(f, startT, duration, w); e != nil && !errors.Is(e, io.EOF) { + if e := fmp4Decoder.Cut(f, startT, duration, res); e != nil && !errors.Is(e, io.EOF) { flog.L(`E: `, e) } } diff --git a/go.mod b/go.mod index 6c98fe8..fd2172c 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.23 require ( github.com/gotk3/gotk3 v0.6.4 github.com/mdp/qrterminal/v3 v3.2.0 - github.com/qydysky/part v0.28.20241114122041 + github.com/qydysky/part v0.28.20241116095044 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.17.0 diff --git a/go.sum b/go.sum index 6824543..01f67a0 100644 --- a/go.sum +++ b/go.sum @@ -46,8 +46,8 @@ github.com/qydysky/biliApi v0.0.0-20240725184407-15076dddb6fb h1:dtSpNF9hLQa09TU github.com/qydysky/biliApi v0.0.0-20240725184407-15076dddb6fb/go.mod h1:om024vfxALQ5vxsbaGoMm8IS0esLYBnEOpJI8FsGoDg= github.com/qydysky/brotli v0.0.0-20240828134800-e9913a6e7ed9 h1:k451T+bpsLr+Dq9Ujo+Qtx0iomRA1XXS5ttlEojvfuQ= github.com/qydysky/brotli v0.0.0-20240828134800-e9913a6e7ed9/go.mod h1:cI8/gy/wjy2Eb+p2IUj2ZuDnC8R5Vrx3O0VMPvMvphA= -github.com/qydysky/part v0.28.20241114122041 h1:FuKZ8DlLtC9LmxENhOXE9BWFFbgvbj0ft6fMd3RkYL8= -github.com/qydysky/part v0.28.20241114122041/go.mod h1:s3h7P6YdST5b9WoqjlS9w+JzDFdMeSENQOi8noYuopg= +github.com/qydysky/part v0.28.20241116095044 h1:1yLfP5/0T58pedooC1JqKojEH3iml7DA24OVh9aHEok= +github.com/qydysky/part v0.28.20241116095044/go.mod h1:s3h7P6YdST5b9WoqjlS9w+JzDFdMeSENQOi8noYuopg= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI=