代码之家  ›  专栏  ›  技术社区  ›  Robin

访问Ruby中视频每帧的像素数据

  •  0
  • Robin  · 技术社区  · 6 年前

    我希望能够在Mac上用Ruby读取/传输视频,并且能够访问每帧的像素数据。

    我试过什么


    require 'streamio-ffmpeg'
    movie = FFMPEG::Movie.new("flakes.mp4")
    
    movie.screenshot("screenshots/screenshot_%d.jpg", { custom: %w(-vf crop=60:60:10:10), vframes: (movie.duration).to_i, frame_rate: movie.frame_rate/24 }, { validate: false })`
    

    知道我可以为这个用例使用什么工具或方法吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Max    6 年前

    如果有可用的ffmpeg(streamio ffmpeg只是将命令行调用包装到ffmpeg),则可以使用 File.mkfifo 让ffmpeg把截图写在管道上。

    然后用Ruby打开管道,就像打开任何普通文件一样,您可以直接从ffmpeg读取屏幕截图图像,而无需将它们传输到磁盘或从磁盘读取。用您选择的红宝石解析像素数据。