• Node.js 调用 fluent-ffmpeg


    最近开发H5资源在线裁剪,最终在资源合成的步骤,选择 ffmpeg 作为合成的插件,记录下使用方式。

    一、介绍

    ffmpeg 一款跨平台多媒体处理工具,可以进行视频转码、裁剪、合成、音视频提取、推流等操作。

    二、安装

    Node js 可以利用 child_process 子进程调用 ffmpeg ,同时也可以利用 fluent-ffmpeg 插件来调用。

    首先下载安装 ffmpeg, 选择 windows 环境,下载后解压到C盘,接着配置环境变量。

    在这里插入图片描述

    命令行执行 ffmpeg -version,走到这里说明安装成功

    在这里插入图片描述

    三、使用

    我们这里就演示下基本功能,更多功能到 ffmpeg 官网尝试,下面是一段视频格式转换的逻辑,并伴随进度打印以及任务执行钩子函数

    index.js

    let express = require('express') // 引入express
    let app = express() // 相当于 http.createServer(app)
    let ffmpeg = require('fluent-ffmpeg') // ffmpeg
    let { exceSync } = require('child_process')
    
    let command = ffmpeg('http://10.0.129.157:8000/2023_09_11_17_28_08_智慧教室A_默认授课_admin_/学生全景.mp4')
      .on('start', function(commandLine) {
        console.log('Spawned Ffmpeg with command: ' + commandLine);
      }).on('progress', function(progress) {
        console.log('Processing: ' + progress.percent + '% done');
      }).on('end', function(stdout, stderr) {
        console.log('Transcoding succeeded !');
      }).on('error', function(err) {
        console.log('An error occurred: ' + err.message);
      }).save('test.avi')
    
    /**
     * @description create screenshots
     */
    function createScreenshots(command) {
      command.screenshots({
          folder: './',
          filename: 'test.png',
          count: 1,
          timemarks: [1],
          size: '50%'
      })
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    运行成功

    在这里插入图片描述
    预览转换格式后的视频:

    在这里插入图片描述

  • 相关阅读:
    QTableWidget 表格部件
    【JavaWeb】第四章 DOM与正则表达式
    JAVA系列之类加载机制详解
    5G基站配置
    attempted to return null from a method with a primitive return type (int).
    Qt 渗透测试 | 【Goby】自动化漏洞扫描工具介绍、下载、使用、功能
    洛谷2022SCP第一轮J组模拟题(LGR-2022-J1)部分题解
    Web-过滤器
    Unity 脚本单例
    Windows在与time.windows.com同步时出错
  • 原文地址:https://blog.csdn.net/Vue2018/article/details/133135227