Go と FFmpeg を利用した動画へのウォーターマーク追加
以下は、動画にウォーターマークを追加するため、Go と FFmpeg を用いたサンプルコードです。
package main
import (
"fmt"
"log"
"os"
"os/exec"
)
func main() {
// 输入视频文件路径
inputFile := "input.mp4"
// 输出视频文件路径
outputFile := "output.mp4"
// 水印图片路径
watermarkFile := "watermark.png"
// 创建FFmpeg命令
cmd := exec.Command("ffmpeg", "-i", inputFile, "-i", watermarkFile, "-filter_complex", "overlay=W-w-10:H-h-10", outputFile)
// 执行命令
err := cmd.Run()
if err != nil {
log.Fatal(err)
}
fmt.Println("视频水印添加成功!")
}
上のコードでは、os/execパッケージを使用してFFmpegコマンドを表すexec.Cmdオブジェクトを作成しています。入力ビデオファイルのパス、ウォーターマーク画像のパス、出力ビデオファイルのパスを渡すことでコマンドライン引数を指定しています。この例では、overlayフィルタを使用してウォーターマーク画像をビデオに追加しています。具体的なフィルタパラメータはoverlay=W-w-10:H-h-10であり、これはウォーターマーク画像をビデオの右下隅に、ビデオ境界の右と下からそれぞれ10ピクセルの位置に配置することを意味します。最後に、cmd.Run()メソッドを呼び出してFFmpegコマンドを実行しています。
システムにFFmpegが正しくインストール済みで、FFmpegの実行ファイルパスがシステムの環境変数に追加されていることを確認してください。
上記のコードを実行すると、透かしを含む出力ビデオファイルoutput.mp4が得られます。