首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Golang exec.Command()错误-通过golang执行ffmpeg命令

Golang exec.Command()错误-通过golang执行ffmpeg命令
EN

Stack Overflow用户
提问于 2017-08-15 09:59:08
回答 1查看 2.4K关注 0票数 1

当前正在使用此ffmpeg命令编辑视频

代码语言:javascript
复制
ffmpeg -i "video1.ts" -c:v libx264 -crf 20 -c:a aac -strict -2 "video1-fix.ts"

当我在终端中输入它时,它起作用了。但是,当我尝试使用Golang exec.Command()函数时,我得到的错误响应是

代码语言:javascript
复制
&{/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>}

下面是我的代码

代码语言:javascript
复制
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)

我的命令语法中是否遗漏了什么?不确定为什么没有加载视频

EN

回答 1

Stack Overflow用户

发布于 2017-08-15 15:23:34

正如@JimB所说,exec.Command不会返回错误。下面是示例https://golang.org/pkg/os/exec/#Command中更改后的代码

顺便说一句,你不需要使用"\"video-1.ts\"" -你的报价是外壳特性。

代码语言:javascript
复制
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())
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45685483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档