Go言語とFFmpegを使用して動画をスピードアップ・ダウンする方法

ビデオの高速化・低速化には Go 言語の os/exec パッケージを利用して FFmpeg コマンドを実行する

まず、FFmpegがインストールされており、システムの環境変数に追加されていることを確認してください。

以下のコードで動画の加速と減速を実現できます。

package main
import (
"fmt"
"os"
"os/exec"
)
func main() {
inputFile := "input.mp4"           // 输入视频文件
outputFile := "output.mp4"         // 输出视频文件
speed := 2.0                       // 加速或减速的倍数,2.0表示加速两倍,0.5表示减速一半
// 构建FFmpeg命令行参数
args := []string{"-i", inputFile, "-vf", fmt.Sprintf("setpts=%f*PTS", 1/speed), "-r", "30", outputFile}
// 创建一个Cmd对象
cmd := exec.Command("ffmpeg", args...)
// 设置输出流,用于显示FFmpeg的输出日志
cmd.Stdout = os.Stdout
// 执行命令
err := cmd.Run()
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("视频加速/减速完成!")
}

上の例では、setpts フィルターを使用して、ビデオの再生速度を制御します。ここで、setpts パラメーターの値は、PTS(Presentation Time Stamp) を変更して加速または減速を行う式です。-r パラメーターは、出力ビデオのフレームレートを指定するために使用され、必要に応じて調整できます。

なお、以上のサンプルでは動画の高速化、低速化の基本的な機能のみの実装であり、ご要望に合わせてパラメータ調整や機能拡張を行ってください。

bannerAds