【发布时间】:2015-10-22 03:15:46
【问题描述】:
我想从 Ruby 脚本调用 ffmpeg,让我们调用“vpipe”,并且我希望这个 Ruby 脚本充当类似命令的过滤器:从管道获取输入。它的唯一目的是选择第一个音频流并删除章节数据(如果存在):
#!/usr/bin/ruby
require "open3"
output_file=ARGV[0]
cmd=%Q{ffmpeg -y -i - -map 0:v -map 0:a -c:v copy -c:a:0 copy -map_chapters -1 #{output_file}}
Open3.popen3(cmd,:stdin_data=>STDIN)
那我想如下调用我的程序:
curl http://www.example.com/video.wmv | vpipe processed.wmv
不幸的是不起作用,因为 popen3 没有像 :stdin_data 这样的选项。我也试过 Open3.capture3 可以接受这个参数,但后来我从 curl 收到一条错误消息:“Failed writing body”。
【问题讨论】:
标签: ruby ffmpeg stream pipe stdin