From 0cb6af407e54611197817ce952ba05eb0f1ead4b Mon Sep 17 00:00:00 2001 From: Matt Stark Date: Thu, 23 Sep 2021 15:16:40 +1000 Subject: [PATCH 1/2] Ensure that ffmpeg is called with the correct framerate. This ensures files have correct duration in VLC (and possibly other players). --- encoders/dv8-enc.go | 3 ++- encoders/dv9-enc.go | 3 ++- encoders/huffyuv-enc.go | 3 ++- encoders/qtrle-enc.go | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/encoders/dv8-enc.go b/encoders/dv8-enc.go index 8af17fc..19396b9 100644 --- a/encoders/dv8-enc.go +++ b/encoders/dv8-enc.go @@ -1,6 +1,7 @@ package encoders import ( + "fmt" "image" "io" "os" @@ -31,7 +32,7 @@ func (enc *VP8ImageEncoder) Init(videoFileName string) { "-vcodec", "ppm", //"-r", strconv.Itoa(framerate), "-vsync", "2", - "-r", "5", + "-r", fmt.Sprint(enc.Framerate), "-probesize", "10000000", "-an", //no audio //"-vsync", "2", diff --git a/encoders/dv9-enc.go b/encoders/dv9-enc.go index 77e862a..ede3a30 100644 --- a/encoders/dv9-enc.go +++ b/encoders/dv9-enc.go @@ -1,6 +1,7 @@ package encoders import ( + "fmt" "image" "io" "os" @@ -29,7 +30,7 @@ func (enc *DV9ImageEncoder) Init(videoFileName string) { "-f", "image2pipe", "-vcodec", "ppm", //"-r", strconv.Itoa(framerate), - "-r", "5", + "-r", fmt.Sprint(enc.Framerate), //"-i", "pipe:0", "-i", "-", "-vcodec", "libvpx-vp9", //"libvpx",//"libvpx-vp9"//"libx264" diff --git a/encoders/huffyuv-enc.go b/encoders/huffyuv-enc.go index c6938e5..d04f2b3 100644 --- a/encoders/huffyuv-enc.go +++ b/encoders/huffyuv-enc.go @@ -2,6 +2,7 @@ package encoders import ( "errors" + "fmt" "image" "io" "os" @@ -33,7 +34,7 @@ func (enc *HuffYuvImageEncoder) Init(videoFileName string) { "-f", "image2pipe", "-vcodec", "ppm", //"-r", strconv.Itoa(framerate), - "-r", "12", + "-r", fmt.Sprint(enc.Framerate), //"-re", //"-i", "pipe:0", diff --git a/encoders/qtrle-enc.go b/encoders/qtrle-enc.go index f654674..ad359b5 100644 --- a/encoders/qtrle-enc.go +++ b/encoders/qtrle-enc.go @@ -3,6 +3,7 @@ package encoders import ( "errors" "image" + "fmt" "io" "os" "os/exec" @@ -32,7 +33,7 @@ func (enc *QTRLEImageEncoder) Init(videoFileName string) { "-f", "image2pipe", "-vcodec", "ppm", //"-r", strconv.Itoa(framerate), - "-r", "12", + "-r", fmt.Sprint(enc.Framerate), //"-re", //"-i", "pipe:0", From 1ac941ed96a7bf5a2516337c6dc1b13ea0f6828d Mon Sep 17 00:00:00 2001 From: Matt Stark Date: Fri, 24 Sep 2021 12:29:12 +1000 Subject: [PATCH 2/2] Fix encoders to actually use the binaries requested instead of always using ./ffmpeg --- encoders/dv8-enc.go | 3 +-- encoders/dv9-enc.go | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/encoders/dv8-enc.go b/encoders/dv8-enc.go index 19396b9..e23fbb9 100644 --- a/encoders/dv8-enc.go +++ b/encoders/dv8-enc.go @@ -26,8 +26,7 @@ func (enc *VP8ImageEncoder) Init(videoFileName string) { if !strings.HasSuffix(videoFileName, fileExt) { videoFileName = videoFileName + fileExt } - binary := "./ffmpeg" - cmd := exec.Command(binary, + cmd := exec.Command(enc.FFMpegBinPath, "-f", "image2pipe", "-vcodec", "ppm", //"-r", strconv.Itoa(framerate), diff --git a/encoders/dv9-enc.go b/encoders/dv9-enc.go index ede3a30..8aee361 100644 --- a/encoders/dv9-enc.go +++ b/encoders/dv9-enc.go @@ -25,8 +25,7 @@ func (enc *DV9ImageEncoder) Init(videoFileName string) { if !strings.HasSuffix(videoFileName, fileExt) { videoFileName = videoFileName + fileExt } - binary := "./ffmpeg" - cmd := exec.Command(binary, + cmd := exec.Command(enc.FFMpegBinPath, "-f", "image2pipe", "-vcodec", "ppm", //"-r", strconv.Itoa(framerate),