From 8525b913b80641f7a29448782694e8eff9a8e7ba Mon Sep 17 00:00:00 2001 From: bytedream Date: Sun, 20 Mar 2022 13:07:09 +0100 Subject: [PATCH] More FFmpeg optimizations when writer is a file --- downloader.go | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/downloader.go b/downloader.go index 8c0278b..d455f89 100644 --- a/downloader.go +++ b/downloader.go @@ -160,9 +160,9 @@ func (d Downloader) mergeSegmentsFFmpeg(files []string) error { } var tmpfile string - if _, ok := d.Writer.(*io.PipeWriter); ok { + if _, ok := d.Writer.(*io.PipeWriter); !ok { if file, ok := d.Writer.(*os.File); ok { - tmpfile = filepath.Base(file.Name()) + tmpfile = file.Name() } } if filepath.Ext(tmpfile) == "" { @@ -198,12 +198,14 @@ func (d Downloader) mergeSegmentsFFmpeg(files []string) error { return err } } - file, err := os.Open(tmpfile) - if err != nil { - return err + if f, ok := d.Writer.(*os.File); !ok || f.Name() != tmpfile { + file, err := os.Open(tmpfile) + if err != nil { + return err + } + defer file.Close() + _, err = io.Copy(d.Writer, file) } - defer file.Close() - _, err = io.Copy(d.Writer, file) return err }