看到标题,有没有可以用来给视频文件添加滤镜效果的 ruby gem 或服务?
问问题
1239 次
2 回答
4
我认为您不会找到可靠且最新的宝石或服务。
可能您在 Ruby 中最好的选择是直接自动使用ffmpeg
命令行实用程序。有了这个,您可以将视频渲染为单独的音轨和单独的帧作为图像(例如 jpeg)。然后使用 gem likermagick
依次对每个帧图像应用效果,最后ffmpeg
再次使用将它们全部缝合在一起。这可能是比您希望的更低级别的工作,但据我所知,这一切都是容易且免费的。
以下 Ruby 代码将炭笔绘图效果应用于视频:
require 'rmagick'
INPUT_VIDEO = 'Test.mp4'
OUTPUT_VIDEO = 'Charcoal.mp4'
# Extract audio
`ffmpeg -y -i #{INPUT_VIDEO} -ab 64k -ac 2 Audio.aac`
# Extract frames
`ffmpeg -y -i #{INPUT_VIDEO} Frame%04d.png`
# Convert frames
Dir.glob('Frame*.png').each do |frame|
frame_img = Magick::Image.read( frame )
new_frame = frame_img[0].gaussian_blur
new_frame = new_frame.charcoal
new_frame = new_frame.negate
new_frame.write( "Converted" + frame )
end
# Stitch back together
`ffmpeg -y -r 25 -i ConvertedFrame%04d.png -i Audio.aac -r 25 #{OUTPUT_VIDEO}`
ffmpeg
请注意,上面的示例中省略了很多重要参数。示例中音频同步的可能性很低。检查 FFmpeg 文档!
于 2013-07-16T20:20:41.287 回答
1
于 2013-07-16T19:49:33.960 回答