在Go語言中調用FFmpeg合并文件可以通過執行系統命令來實現。可以使用os/exec包來執行shell命令。下面是一個使用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,并且FFmpeg命令在系統的環境變量中可用。