视频的第一帧

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

首先,我将一个.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

}

以上是 视频的第一帧 的全部内容, 来源链接: utcz.com/qa/409212.html

回到顶部