rails / streamio-ffmpeg - 如何执行2遍编码?

时间:2017-03-20 14:56:03

标签: ruby-on-rails video encoding ffmpeg

我使用streamio-ffmpeg对通过ffmpeg上传到我的Rails应用程序的视频进行编码。我想使用VP9 coding format将视频编码为.webm格式,而WebM项目的VP9 Encoding Guide建议使用2遍编码。我设法通过stream-ffmpeg使用1遍编码获得视频编码,但我无法弄清楚如何处理2遍编码。

到目前为止我的设置:

# create two tempfiles for the video and a still
video = Tempfile.new(["video", ".webm"], binmode: true)
still = Tempfile.new(["still", ".jpg"], binmode: true)

# new FFMPEG
movie = FFMPEG::Movie.new(original.path)

# extract still from video
movie.screenshot(still.path)

# encode video
options = %w(-c:v libvpx-vp9 -b:v 1000K -threads 8 -speed 4 -tile-columns 6 -frame-parallel 1 -auto-alt-ref 1 -lag-in-frames 25 -c:a libvorbis -b:a 64k -f webm)
movie.transcode(video.path, options)

使用ffmpeg进行2遍编码的命令是:

ffmpeg -i <source> -c:v libvpx-vp9 -pass 1 ... -f webm /dev/null
ffmpeg -i <source> -c:v libvpx-vp9 -pass 2 ... -f output.webm

特别是,我不知道如何使用streamio-ffmpeg将第一个编码步骤的文件传递给第二步。如何将这两个步骤应用于movie.transcode(output, options)的语法?

谢谢!

0 个答案:

没有答案