首页 >后端开发 >Golang >如何使用 Go 的 `os/exec` 包将 PhantomJS 输出传输到 FFmpeg 以进行视频创建?

如何使用 Go 的 `os/exec` 包将 PhantomJS 输出传输到 FFmpeg 以进行视频创建?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-02 04:09:10227浏览

How Can I Use Go's `os/exec` Package to Pipe PhantomJS Output to FFmpeg for Video Creation?

使用 Golang 的 Exec 包:使用 Pipe 执行命令并使用 PhantomJS 录制网页

尝试使用 PhantomJS 捕获网页并将生成的图像无缝传输到 ffmpeg视频创作,你遇到了挑战。直接在终端中执行命令会产生所需的结果,但通过 Go 的 os/exec 包运行它时会遇到障碍。

要克服这个障碍并避免将图像写入文件的繁重任务,您'我们探索了作为单个实体执行整个命令的可能性。这是一个可以提供帮助的解决方案:

import (
    "fmt"
    "os/exec"
)

func main() {
    cmd := "phantomjs runner.js | ffmpeg -y -c:v png -f image2pipe -r 25 -t 10  -i - -c:v libx264 -pix_fmt yuv420p -movflags +faststart dragon.mp4"
    output, err := exec.Command("bash", "-c", cmd).Output()
    if err != nil {
        fmt.Printf("Failed to execute command: %s", cmd)
    }
    fmt.Println(string(output))
}

在这种方法中,我们不直接依赖 os/exec 包,而是使用“bash”命令将整个字符串作为单个实体执行。这使我们能够维护管道功能并无缝执行命令。

成功执行后,ffmpeg 的输出将被捕获在“output”变量中,您可以根据需要继续处理结果。

以上是如何使用 Go 的 `os/exec` 包将 PhantomJS 输出传输到 FFmpeg 以进行视频创建?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn