如何使用ffmpeg有效地将高分辨率图像转换为视频


  • 我有24帧(frame-%d.png(
  • 我想把它们变成一个1秒长的视频
  • 这意味着每帧应该播放1/24秒

为了实现这一点,我正在努力找出正确的设置:

await new Promise((resolve) => {
ffmpeg()
.on('end', () => {
setTimeout(() => {
console.log('done')
resolve()
}, 100)
})
.on('error', (err) => {
throw new Error(err)
})
.input('/my-huge-frames/frame-%d.png')
.inputFPS(1/24)
.output('/my-huge-video.mp4')
.outputFPS(24)
.noAudio()
.run()
  1. 是我的inputFPS(1/24)&outputFPS(24)正确吗
  2. 每个frame-%d.png都是巨大的:32400PX x 32400PX(~720Mb(。ffmpeg能生成这样的视频吗?如果能,视频能播放吗?如果不是,每个frame-%d.png的最大分辨率应该是多少
  3. 由于过程将相当繁重,我认为使用命令行可能更合适。在这种情况下,命令行中的上述Js代码的等价物是什么(如ffmpeg -framerate etc...(

对于大多数常见的视频编解码器来说,您的输出图像大小太大。

  • h.264 2048x2048
  • h.265 8192×4320
  • av1 7680×4320

你可能可以做原始RGB或原始YUV,但这将是巨大的YUV420…每帧约1.5GB

你打算在什么地方播放这个,我知道一些圆顶影院理论上可以同时播放15个4k节目。。。但它们是手工处理的。。。

最新更新