Node canvas와 FFmpeg로 타이머 애니메이션 만들기

5685 단어 nodecanvasFFmpegtech

개요


스크립트와 명령을 사용하여 30초 동안 애니메이션을 만듭니다.
이번 실사에서는 영상 길이가'약 30초(31초)'였지만 정확성을 중시하지 않아 허용됐다.

컨디션


canvas 2.6.1
ffmpeg 4.3.1

이루어지다


const fs = require('fs')
const path = require('path')
const { createCanvas } = require('canvas')

for (let i = 0; i < 31; i++) {
  const canvas = createCanvas(320, 240)
  const ctx = canvas.getContext('2d')

  ctx.fillStyle = '#fff'
  ctx.fillRect(0, 0, canvas.width, canvas.height)

  ctx.fillStyle = '#000'
  ctx.font = '96px sans-serif'
  ctx.textBaseline = 'middle'
  ctx.textAlign = 'center'
  ctx.fillText(30 - i, canvas.width / 2, canvas.height / 2)

  const url = path.resolve(__dirname, 'output', `image${i}.png`)
  const data = canvas.toBuffer()
  fs.writeFileSync(url, data)
}

명령을 집행하다


ffmpeg -r 1 -i output/image%d.png -pix_fmt yuv420p output/output.mp4

참고 자료

  • 그거 FFmpeg 쓰면 돼! -Qiita
  • 좋은 웹페이지 즐겨찾기