【发布时间】:2016-08-17 17:57:16
【问题描述】:
我正在将视频生成库从 NodeJS 转换为主要使用 FFMPEG 进行所有视频处理的 GO。我已经编写了所有 FFMPEG 命令来进行我想要的生成。问题是当我尝试通过os/exec 包运行命令时,它失败了。但是,如果我复制确切的命令并直接在终端中运行它,它就可以工作,我无法弄清楚为什么会这样。我运行该命令的代码如下:
command := "ffmpeg -y -loop 1 -i image.png -vf 'fade=in:0:15,fade=out:105:15' -c:v mpeg2video -t 5 -s 1280x720 -r 30 -q:v 1 -preset ultrafast image.mpg"
parts := strings.Fields(command)
cmd := exec.Command(parts[0], parts[1:]...)
cmd.Stderr = os.Stderr
cmd.Stdout = os.Stdout
err := cmd.Run()
if err != nil {
panic(err)
}
我尝试运行此代码时遇到的 ffmpeg 错误是:
[AVFilterGraph @ 0x22a9bc0] 没有这样的过滤器:'fade=in:0:15,fade=out:105:15'
打开过滤器时出错!
2016/08/17 17:48:53 退出状态1
如前所述,如果我复制 EXACT 命令:
ffmpeg -y -loop 1 -i image.png -vf 'fade=in:0:15,fade=out:105:15' -c:v mpeg2video -t 5 -s 1280x720 -r 30 -q:v 1 -preset ultrafast image.mpg
直接在终端运行,没问题。
请帮忙。
【问题讨论】: