0

看到标题,有没有可以用来给视频文件添加滤镜效果的 ruby​​ gem 或服务?

4

2 回答 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

一个非常流行的视频处理库是FFmpeg

以下是支持的视频过滤器的文档。您必须将它们混合以获得您正在寻找的效果。

您可以通过包装命令行参数来使用它,但其中一个工具可能会起作用(我没有测试过它们)。

于 2013-07-16T19:49:33.960 回答