ruby + cairo + ffmpeg로 모래 폭풍 동영상 만들기

5306 단어 cairo루비ffmpeg
적당한 더미 동영상을 원할 때 이것으로 바삭바삭하게 만들 수 있습니다.



cairo 설치


$ gem install cairo

Ruby 코드



suna.rb
require "cairo"

format = Cairo::FORMAT_ARGB32
# キャンバスの大きさ
width = 400
height = 300

surface = Cairo::ImageSurface.new format, width, height
context = Cairo::Context.new surface

# 1ピクセルの大きさ
cell_height = 2
cell_width = 2

# 解像度
num_cols = width / cell_width
num_rows = height / cell_height

66.times do |n|
  current_col = 0
  current_row = 0

  num_rows.times do |i|
    num_cols.times do |j|
      # ピクセルの座標
      y = i * cell_height
      x = j * cell_width
      # ランダムな色
      r = rand(100) / 100.0
      g = rand(100) / 100.0
      b = rand(100) / 100.0
      context.set_source_rgb r, g, b
      # ピクセルを描画
      context.rectangle x, y, cell_width, cell_height
      context.fill
    end
  end
  # ファイルに書き込み
  surface.write_to_png "out/suna#{format "%03d", n}.png"
end

일련 번호 이미지 생성


$ ruby suna.rb

ffmpeg 설치(Homebrew의 경우)


$ brew install ffmpeg

ffmpeg로 연속 이미지에서 동영상 만들기


$ ffmpeg -r 15 -i ./out/suna%03d.png -r 15 -an -vcodec libx264 -pix_fmt yuv420p out.mp4 

좋은 웹페이지 즐겨찾기