尝试使用 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中文网其他相关文章!