zoukankan      html  css  js  c++  java
  • nodejs中使用fluent-ffmpeg实现n个webm视频文件先转码在合并

    1.引入fluent-ffmpeg
     
    var ffmpeg = require('fluent-ffmpeg');
     

    2.将n个webm文件重新编码 ,输入为“_i.webm”为 “i.webm”

    function runFFmpegWebmS(roomId,length) {
        for(var i=0;i<length;i++){
            runFFmpegWebm(roomId,i,length);
        }
    }
    

      

    function runFFmpegWebm(roomId,i,length) {
        var fileName1 = path.join(__dirname, 'uploads',''+roomId,'webm','_'+i+'.webm').replace(/\/g,'/');
        var fileName2 = path.join(__dirname, 'uploads',''+roomId,'webm',i+'.webm').replace(/\/g,'/');
        ffmpeg(fileName1)
        .output(fileName2)
        .on('end', function() {
            console.log('视频转码Finished processing');
            console.log("i:"+i+",length:"+length)
            if(i==length-1){  //这一步判断比较关键,当最后一个webm文件编码完成后调用合并的函数
                console.log("视频转码全部完成");
                runFFmpegCombine_Webm(roomId,length);
            }
        })
        .run();
    }
    

      

    3.将新生成的n个webm视频文件合并

    function runFFmpegCombine_Webm(roomId,length) {
        var file =path.join(__dirname, 'uploads',''+roomId,'webm','0.webm').replace(/\/g,'/');
        var outPath = path.join(__dirname, 'uploads',''+roomId,'webm',roomId+'.webm').replace(/\/g,'/');
        try{
            var proc = ffmpeg(file);
            for(var i=1;i<length;i++){
                proc=proc.input(path.join(__dirname, 'uploads',''+roomId,'webm',i+'.webm').replace(/\/g,'/'));
            }
            proc.mergeToFile(outPath).on('end', function() {
                console.log('视频合并成功');
            });
            }catch(err){
            console.log( 'an error occured!',err );
        } 
    }
    

      

  • 相关阅读:
    12.3、Libgdx的图像之截屏
    12.2、Libgdx的图像之清屏
    12.1、Libgdx的图像之持续性和非持续性渲染
    12、Libgdx的图像之全屏和垂直同步
    11.4、Libgdx的音频之录制PCM音效
    11.3、Libgdx的音频之播放PCM音频
    11.2、Libgdx的音频之音乐
    11.1、Libgdx的音频之音效
    11、Libgdx的音频
    阿里云服务器部署项目后台运行(入门)
  • 原文地址:https://www.cnblogs.com/ssyh/p/12451880.html
Copyright © 2011-2022 走看看