FFMPEG制作的MP4无法播放/无法打开
MP4 made in FFMPEG cannot play / be opened
我正在尝试通过组合一系列 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();
您需要为视频使用编码器,请尝试使用列表设置编码器:
ffmpeg -encoders
当使用典型的 H.264 编码器保存为 MP4 时,ffmpeg 将转换为 YUV 颜色编码,但会选择保真度最高的像素格式,对于 RGB 源,该格式为 YUV 4:4:4。这种格式与大多数播放器不兼容。解决方案是手动强制输出 YUV 4:2:0。在输出文件名前添加 -pix_fmt yuv420p。
.outputOptions('-pix_fmt yuv420p')
我正在尝试通过组合一系列 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();
您需要为视频使用编码器,请尝试使用列表设置编码器:
ffmpeg -encoders
当使用典型的 H.264 编码器保存为 MP4 时,ffmpeg 将转换为 YUV 颜色编码,但会选择保真度最高的像素格式,对于 RGB 源,该格式为 YUV 4:4:4。这种格式与大多数播放器不兼容。解决方案是手动强制输出 YUV 4:2:0。在输出文件名前添加 -pix_fmt yuv420p。
.outputOptions('-pix_fmt yuv420p')