当前正在使用此ffmpeg命令编辑视频
ffmpeg -i "video1.ts" -c:v libx264 -crf 20 -c:a aac -strict -2 "video1-fix.ts"当我在终端中输入它时,它起作用了。但是,当我尝试使用Golang exec.Command()函数时,我得到的错误响应是
&{/usr/local/bin/ffmpeg [ffmpeg -i "video1.ts" -c:v libx264 -crf 20 -c:a aac -strict -2 "video1-fix.ts"] [] <nil> <nil> <nil> [] <nil> <nil> <nil> <nil> <nil> false [] [] [] [] <nil> <nil>}下面是我的代码
cmdArguments := []string{"-i", "\"video-1.ts\"", "-c:v", "libx264",
"-crf", "20", "-c:a", "aac", "-strict", "-2", "\"video1-fix.ts\""}
err := exec.Command("ffmpeg", cmdArguments...)
fmt.Println(err)我的命令语法中是否遗漏了什么?不确定为什么没有加载视频
发布于 2017-08-15 15:23:34
正如@JimB所说,exec.Command不会返回错误。下面是示例https://golang.org/pkg/os/exec/#Command中更改后的代码
顺便说一句,你不需要使用"\"video-1.ts\"" -你的报价是外壳特性。
package main
import (
"bytes"
"fmt"
"log"
"os/exec"
)
func main() {
cmdArguments := []string{"-i", "video-1.ts", "-c:v", "libx264",
"-crf", "20", "-c:a", "aac", "-strict", "-2", "video1-fix.ts"}
cmd := exec.Command("tr", cmdArguments...)
var out bytes.Buffer
cmd.Stdout = &out
err := cmd.Run()
if err != nil {
log.Fatal(err)
}
fmt.Printf("command output: %q\n", out.String())
}https://stackoverflow.com/questions/45685483
复制相似问题