正在运行
a = `ffmpeg -i video.mp4`
似乎没有将命令的输出提供给a
...为什么呢?如何覆盖它?
最佳答案
快速回答:
a = `ffmpeg -i video.mp4 2>&1`
详细答案:
当我跑ffmpeg -i blah.avi
时在一个方便的文件上,我注意到当输出到标准输出时,它没有任何输出;相反,所有输出都为标准错误。您可以通过运行以下命令在 shell 中检查自己:
ffmpeg -i video.mp4 > /tmp/standard_out 2> /tmp/standard_error
然后看看 /tmp/standard_out
和/tmp/standard_error
。您很快就会看到哪一个是哪一个。您可以使用 ffmpeg -i video.mp4 2>&1
快速“修复”此问题在您的脚本中,这将要求 shell 将 stderr 与 stdout 一起重定向。您将无法区分 stderr 和 stdout 之间的区别,但您可以轻松获得“看到”的输出。
您必须使用popen3如果你想将 stdout 和 stderr 分开。
关于ruby 不会读取 ffmpeg 的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4678574/