【问题标题】:How to convert gif in mp4 video with Nodejs?如何使用 Nodejs 转换 mp4 视频中的 gif?
【发布时间】:2017-08-26 23:45:08
【问题描述】:

有没有办法仅使用 Nodejs 将 .gif 上传的图像转换为 .mp4?如何将其与 MEAN 应用程序集成?我希望能够将转换后的 .mp4 文件存储到 S3。

使用:https://www.npmjs.com/package/fluent-ffmpeg-extended 但得到错误:Invalid Input

var upload = multer({
    storage: multerS3({
       s3: s3,
       bucket: 'mybucket',
       key: function (req, file, cb) {
        var extension = file.originalname.substring(file.originalname.lastIndexOf('.')+1).toLowerCase();
            if(extension == "gif"){
                console.log(file);
                var proc = new ffmpeg({ source: file })
                  .usingPreset('podcast')
                  .saveToFile('/path/to/your_target.m4v', function(stdout, stderr) {
                    console.log('file has been converted succesfully');
                  });
            }
            else{
                cb(null, file.originalname);
            }
        }
    })
});

非常感谢。

【问题讨论】:

    标签: node.js video ffmpeg


    【解决方案1】:

    你可以使用这个库。它是 ffmpeg 可执行文件的包装器,因此您也需要拥有它。

    https://www.npmjs.com/package/fluent-ffmpeg-extended

    这个帖子也很有帮助,

    https://www.bountysource.com/issues/36060167-converting-gif-buffer-to-mp4-buffer-without-writing-to-file-first

    【讨论】:

    • 谢谢。如何在上传的文件上实现它。我编辑了这个问题。请看一看。使用上面的代码,我得到Invalid Input
    • 我如何引用上传的file?为什么fileinvalid input? ` var proc = new ffmpeg({ source: file })` 是我得到错误的那一行
    • 您是否尝试过硬编码路径?
    • 如何在上传的文件中做到这一点?我也尝试将它与硬编码路径一起使用,但它也失败了:stackoverflow.com/questions/43176748/…stackoverflow.com/questions/43176898/…
    【解决方案2】:
    var ffmpeg = require('ffmpeg');
    var ffmpegPath = require('@ffmpeg-installer/ffmpeg').path;
    var ffprobePath = require('@ffprobe-installer/ffprobe').path;
    var ffmpeg = require('fluent-ffmpeg');
    ffmpeg.setFfmpegPath(ffmpegPath);
    ffmpeg.setFfprobePath(ffprobePath);
    export let UPLOAD_PATH = 'public';
    // video : any live video url or any video path from your local storage
        public createGif (video, fileName){
            ffmpeg(video)
            .setStartTime('00:00:03')
            .setDuration('10')
            .output(`${UPLOAD_PATH}/${fileName}`)
            .on('end', function(err) {
              if(!err) { console.log('conversion Done') }
            })
            .on('error', function(err){
              console.log('error: ', err)
          }).run()
        }
    

    您可以使用“ffmpeg”npm 包将视频转换为 gif 完整的代码写在这里

    【讨论】:

      猜你喜欢
      • 2017-04-05
      • 2021-10-20
      • 2022-11-02
      • 2021-06-30
      • 2020-10-24
      • 2015-06-14
      • 2015-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多