golang中怎么调用ffmpeg合并文件
Go言語でシステムコマンドを実行することで、FFmpegを呼び出してファイルをマージすることができます。シェルコマンドを実行するためにos/execパッケージを使用できます。以下に、FFmpegを使用してファイルをマージするサンプルコードを示します。
package main
import (
"fmt"
"log"
"os/exec"
)
func main() {
// 输入文件列表
files := []string{"input1.mp4", "input2.mp4", "input3.mp4"}
// 输出文件名
outputFile := "output.mp4"
// 构造FFmpeg命令
ffmpegCmd := exec.Command("ffmpeg")
// 添加输入文件参数
for _, file := range files {
ffmpegCmd.Args = append(ffmpegCmd.Args, "-i", file)
}
// 添加合并参数
ffmpegCmd.Args = append(ffmpegCmd.Args, "-filter_complex", fmt.Sprintf("concat=n=%d:v=1:a=1[outv][outa]", len(files)), "-map", "[outv]", "-map", "[outa]", outputFile)
// 执行命令
err := ffmpegCmd.Run()
if err != nil {
log.Fatal(err)
}
fmt.Println("合并完成")
}
このサンプルでは、まず入力ファイルのリストと出力ファイル名を定義しました。次に、FFmpeg コマンドを構成し、os/exec パッケージを使用して cmd オブジェクトを作成しました。次に、入力ファイルのリストを繰り返し処理して、各ファイルをパラメータとして追加します。最後に、マージパラメータが追加され、コマンドが実行されました。コマンドの実行が成功すれば、マージは完了です。
FFmpeg がシステムにインストールされており、コマンドが環境変数に設定されていることを確認してください。