第一帧视频

问题描述 投票:5回答:1

我正在后端使用Golang创建单页应用程序,并在前端创建javascript。我想找到一种方法如何使用Golang获取视频的第一帧。

首先,我将.mp4视频文件上传到服务器。它保存在服务器上。

有没有办法使用Golang获取此视频的第一帧?它应该可以在前端使用Javascript来实现,但我不认为这是解决此问题的正确方法。

我不知道如何使用Golang实现它,我没有找到任何有用的库,甚至没有内置函数可以帮助我解决这个问题。

我们非常感谢您的每一条建议或任何建议。

video go frame
1个回答
6
投票

正如评论中所建议的那样,使用ffmpeg将是最简单的方法。以下是改编自this answer的示例:

package main

import (
    "bytes"
    "fmt"
    "os/exec"
)
func main() {
    filename := "test.mp4"
    width := 640
    height := 360
    cmd := exec.Command("ffmpeg", "-i", filename, "-vframes", "1", "-s", fmt.Sprintf("%dx%d", width, height), "-f", "singlejpeg", "-")
    var buffer bytes.Buffer
    cmd.Stdout = &buffer
    if cmd.Run() != nil {
        panic("could not generate frame")
    }
    // Do something with buffer, which contains a JPEG image
}
© www.soinside.com 2019 - 2024. All rights reserved.