当我在项目中想使用ffmpeg实现录制视频的一个小功能当我生成的文件格式为MP4的时候总是显示打不开这个文件或者文件损坏但是使用cmd 命令行测试的时候生成的MP4又是能打开的这个问题困扰了我很久最后我把生成的MP4格式改成了avi就能正常打开了
const {
spawn
} = require('child_process');
const videoPath = 'C:\\Users\\loyal\\Videos\\Captures\\qwq.mp4';
const videoPath1 = 'C:\\cxf\\qwq.AVI';
let ffmpegProcess;
function begin() {
if (ffmpegProcess) {
console.log('已经在录制中');
return;
}
const ffmpegArgs = [
'-f', 'gdigrab',
'-framerate', '30',
'-i', 'desktop',
'-c:v', 'libx264',
'-r', '30',
'-pix_fmt', 'yuv420p',
'-preset', 'ultrafast',
'-crf', '18',
'-c:a', 'aac',
'-y', // 覆盖输出文件
videoPath1, // 输出文件路径
];
ffmpegProcess = spawn('ffmpeg', ffmpegArgs);
console.log('开始录制桌面');
}
function stop() {
if (!ffmpegProcess) {
console.log('未在录制中');
return;
}
ffmpegProcess.kill('SIGINT'); // 发送 SIGINT 信号停止录制
}
这是我的代码把MP4改成avi虽然解决了这个问题但是我不知道为什么MP4会在这种情况下打不开希望来位高人指点一下