问题描述
我正在尝试通过组合一系列 PNG 图像来制作视频。它似乎工作正常,除了输出的 MP4 实际上无法用 Quicktime 打开/播放。所以基本上它不起作用。我无法弄清楚问题是什么,或者如何调试这个,因为我没有收到错误或任何东西。下面是我的代码:
var ffmpegPath = require('@ffmpeg-installer/ffmpeg').path;
var ffmpeg = require('fluent-ffmpeg');
ffmpeg.setFfmpegPath(ffmpegPath);
var command = ffmpeg();
command
.size('2000x2000')
.input('Aussie1_Export/test_%04d.png')
.inputFPS(1)
.output('Aussie_Export_Video/test.mp4')
.outputFPS(30)
.noAudio()
.on('error',(error) => { console.log('error'); })
.run();
解决方法
当使用典型的 H.264 编码器保存到 MP4 时,ffmpeg 将转换为 YUV 颜色编码,但会选择保真度最高的像素格式,对于 RGB 源,它是 YUV 4:4:4。这种格式与大多数播放器不兼容。解决办法是手动强制YUV 4:2:0输出。在输出文件名前添加 -pix_fmt yuv420p。
.outputOptions('-pix_fmt yuv420p')
,
您需要为视频使用编码器,请尝试使用列表设置编码器:
ffmpeg -encoders