我正在使用Golang作为后端和JavaScript作为前端来创建单页应用程序。
首先,我将.mp4视频文件上传到服务器并将其保存在服务器上。
是否有一种方法可以使用Golang获取此视频的第一帧?尽管在前端使用JavaScript也可以实现这一点,但我认为这不是解决此问题的正确方式。
我不知道如何使用Golang来实现它,并且我没有找到任何有用的库或内置函数来帮助我解决这个问题。
非常感谢您提供任何建议或推荐。
如评论所建议的那样,使用ffmpeg将是最简单的方法。下面是从这个答案调整的例子:
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
}
ffmpeg
可以做到。 - mrd0ll4r