golangでffmpegによるトランスコーディングをどのように実装するか
GoにおけるFFmpegによるトランスコードは、FFmpegのコマンドラインツールの呼び出しで実現できますし、また、Goライブラリのffmpeg-goを利用してFFmpegを直接操作することもできます。
ffmpeg-goライブラリを使用したトランスコーディングのサンプルコードを以下に示します。
- まず、ffmpeg-go ライブラリをインストールする必要があります。次のコマンドを使用してインストールできます。
go get -u github.com/xfrr/goffmpeg
- そして、下記のコードスニペットを使用して、トランスコードを実行できます。
package main
import (
"fmt"
"os"
"github.com/xfrr/goffmpeg/transcoder"
)
func main() {
// 创建一个新的转码器
trans := new(transcoder.Transcoder)
// 设置输入文件路径
inputFilePath := "input.mp4"
err := trans.Initialize(inputFilePath)
if err != nil {
fmt.Println("初始化失败:", err)
os.Exit(1)
}
// 设置输出文件路径
outputFilePath := "output.mp4"
err = trans.Run(outputFilePath)
if err != nil {
fmt.Println("转码失败:", err)
os.Exit(1)
}
fmt.Println("转码完成")
}
このコード例では、input.mp4 ファイルを output.mp4 ファイルに変換する単純なトランスコーディングプロセスを示しています。
エンコードには、入力ファイルのサイズやシステムパフォーマンスによって時間がかかる場合がありますので、ご注意ください。進捗状況を監視するための進捗コールバック関数の追加など、コードを実際の状況に合わせて変更したり、他のエンコードパラメータを設定したりできます。
FFmpegを使ったGoでのトランスコードを開始するのに役立つことを願っています。