要利用Golang和FFmpeg實現視頻幀提取,你可以使用Go的os/exec包來運行FFmpeg命令。下面是一個簡單的示例代碼:
package main
import (
"fmt"
"os"
"os/exec"
)
func main() {
// 設置FFmpeg命令參數
inputFile := "input.mp4"
outputDir := "frames/"
// 創建輸出目錄
err := os.MkdirAll(outputDir, os.ModePerm)
if err != nil {
fmt.Println("無法創建輸出目錄:", err)
return
}
// 運行FFmpeg命令
cmd := exec.Command("ffmpeg", "-i", inputFile, "-vf", "fps=1/5", outputDir+"frame%d.jpg")
err = cmd.Run()
if err != nil {
fmt.Println("運行FFmpeg命令失敗:", err)
return
}
fmt.Println("視頻幀提取完成!")
}
在上面的示例中,我們假設你已經安裝了FFmpeg并將其添加到了系統的環境變量中。代碼中的關鍵點是使用os/exec包來運行FFmpeg命令。在這個示例中,我們使用了以下命令參數:
“-i”: 指定輸入文件
“-vf”: 指定視頻濾鏡,"fps=1/5"表示每秒提取5幀
outputDir+“frame%d.jpg”: 指定輸出文件名格式,其中%d會自動替換為幀的索引號
你可以根據實際需求修改輸入文件和輸出目錄的路徑,以及調整提取幀的頻率。運行以上代碼后,視頻幀將會被提取并保存在指定的輸出目錄中。