gpt4 book ai didi

ruby - 无法在 Ruby 中将 ffmpeg 作为子进程运行

转载 作者:数据小太阳 更新时间:2023-10-29 07:12:34 24 4
gpt4 key购买 nike

我正在尝试使用以下代码通过将 ffmpeg 实用程序作为子进程运行并获取其输出并解析它来确定视频分辨率:

IO.popen 'ffmpeg -i ' + path_to_file do |ffmpegIO|
# my parse goes here
end

...但是 ffmpeg 输出仍然连接到标准输出并且 ffmepgIO.readlines 是空的。 ffmpeg 实用程序是否需要一些特殊处理?或者还有其他方法可以获得 ffmpeg 输出吗?我在 WinXP 和 Fedora Linux 下测试了这段代码 - 结果是一样的。

最佳答案

要跟进 mouviciel 的评论,您需要使用类似 popen3 的内容:

require 'open3'

Open3.popen3("ffmpeg", "-i", path_to_file) { |stdin, stdout, stderr|
# do stuff
}

(顺便说一句,请注意,使用数组作为 popen 的参数会更安全一些,尤其是当文件名可能包含空格或任何需要用引号括起来的字符时)

关于ruby - 无法在 Ruby 中将 ffmpeg 作为子进程运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/755233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com