用于使用ffmpeg将ts文件转换为节点中的mp4文件的严格实验标记

时间:2015-08-13 00:58:18

标签: node.js ffmpeg aac libav

我尝试将一系列.ts文件转换为一个mp4文件,使用ffmpeg通过节点执行:

var combineVideo = function (videoFiles, fileName, callback) {
var videoDone = _.after(videoFiles.length, function () {
    var ffmpegcommand = 'ffmpeg -i "concat:';
    ffmpegcommand += _.inject(videoFiles, function (command, name, i) {
        return command + process.env.UPLOAD_PATH + fileName + '-' + i + '.ts|';
    }, '');

    ffmpegcommand = ffmpegcommand.substring(0, ffmpegcommand.length - 1);
    ffmpegcommand += '"  -c copy -bsf:a aac_adtstoasc -strict -2 ' +  process.env.UPLOAD_PATH + fileName + 'combined-video.mp4';

    exec(ffmpegcommand, function (error, stdout, stderr) {
        if (error) {
            logger.error(error);
        }
            _.each(videoFiles, function (v, i) {
            fs.unlink(process.env.UPLOAD_PATH + fileName + '-' + i + '.ts');
        });
        callback();
    });
});
_.each(videoFiles, function (file, i) {
    convertWebmToMp4(fileName + '-' + i, videoDone);
});

我在执行命令之前记录了命令:

结合视频 / usr / bin / ffmpeg -i" concat:./ uploads / db42ab00-4140-11e5-83dd-936f6cb4a63a-0.ts | ./uploads/db42ab00-4140-11e5-83dd-936f6cb4a63a-1.ts&# 34; -c copy -bsf:a aac_adtstoasc -strict -2 ./uploads/db42ab00-4140-11e5-83dd-936f6cb4a63acombined-video.mp4

我收到的错误消息是:

{[错误:命令失败:ffmpeg版本2.5.7-0ubuntu0.15.04.1版权所有(c)2000-2015 FFmpeg开发人员   使用gcc 4.9.2(Ubuntu 4.9.2-10ubuntu13)构建

[aac @ 0x8ae8c0]编码器' aac'是实验性的,但实验编解码器未启用,添加' -strict -2'如果你想使用它。 ] killed:false,代码:1,signal:null}

但是,确切的ffmpeg命令已经有-strict -2标志,它在命令行或单独的.js文件中运行正常。我很难过。

0 个答案:

没有答案