Golang と FFmpeg を使用してビデオ フレームを抽出する方法
要約:
この記事では、Golang と FFmpeg を使用してビデオ フレームを抽出する方法を紹介し、具体的な内容を示します。コード例。この方法により、ビデオから各フレームを簡単に抽出し、その後処理して分析することができます。
以下は、Golang を使用して FFmpeg コマンドを呼び出してビデオ フレームを抽出する方法を示すサンプル コードです:
package main import ( "log" "os" "os/exec" ) func main() { inputFile := "input.mp4" // 输入视频文件 outputDir := "frames/" // 输出目录,存放提取出的视频帧 // 创建输出目录 err := os.MkdirAll(outputDir, os.ModePerm) if err != nil { log.Fatal(err) } // 构造FFmpeg命令 cmd := exec.Command("ffmpeg", "-i", inputFile, "-vf", "fps=1", outputDir+"frame-%03d.jpg") // 执行命令 err = cmd.Run() if err != nil { log.Fatal(err) } log.Println("视频帧提取完成!") }
上記のコードの機能は、指定されたビデオを配置することです。ファイル(input.mp4)を各フレームに抽出し、jpg 形式の画像ファイルとして保存し、frames/ ディレクトリに保存します。このうち「-vf fps=1」パラメータは1秒間に1フレームを切り出すことを意味します。
go run filename.go
を実行してビデオ フレームの抽出を開始します。ビデオのサイズとフレーム レートによっては、抽出プロセスに時間がかかる場合があります。 以上がGolang と FFmpeg を使用してビデオ フレームを抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。