Node.js 调用 fluent-ffmpeg

news/2024/7/10 19:27:15 标签: node.js, 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%'
  })
}

运行成功

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

在这里插入图片描述


http://www.niftyadmin.cn/n/5039727.html

相关文章

PMP证书有什么用?可以技术转管理吗?

PMP证书在国内有一个很普遍的认知就是,考取了PMP证书也就意味着你是具备国际水准的项目管理专业素质、实战技能、综合性的管理型人才。这也意味着,如果你考取了PMP证书的话,你就拥有了一本深受各大企业认可的证书,对于技术转岗&am…

Nginx环境搭建、负载均衡测试

Nginx环境搭建、负载均衡测试 系统环境: win10,IDEA2020,JDK8 一、nginx环境搭建 1.ngxin下载 Nginx官网下载: http://nginx.org/en/download.html Nginx有三种版本,分别是Mainline version(开发版&…

读书笔记:多Transformer的双向编码器表示法(Bert)-2

多Transformer的双向编码器表示法 Bidirectional Encoder Representations from Transformers,即Bert; 第2章 了解Bert模型(掩码语言模型构建和下句预测) 文本嵌入模型Bert,在许多自然语言处理任务上表现优秀&#…

postman记录backup

之前一直未登录postman,在临时空间处理请求,可能是因为postman更新了,导致其记录没了 别着急! 首先我们先登录postman,有谷歌登录方式等 第一步、登录后点击import 第二步、点击files 第三步、找到c:/users/AppData…

Ubuntu下运行adb devices找不到设备的问题

问题描述 Windows下安装Android studio,里面含有Android SDK,自动包含了adb在内的很多工具包;因开发需要,在WSL中安装了Ubuntu,分别是18和22的,其中也分别安装了Android SDK,官网下载&#xff…

module ‘numpy‘ has no attribute ‘object‘

目录 module numpy has no attribute object FreeTypeFont object has no attribute getsize module numpy has no attribute object 解决方案: pip uninstall numpy pip install numpy1.23.4 pip3 install --user numpy1.23.4 FreeTypeFont object has no at…

【算法练习Day2】有序数组的平方长度最小子数组螺旋矩阵II

​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:练题 🎯长路漫漫浩浩,万事皆有期待 文章目录 有序数组的平方暴力求解…

uniappAndroid平台签名证书(.keystore)生成

一、安装JRE环境 https://www.oracle.com/java/technologies/downloads/#java8 记住下载默认安装地址。ps:我都默认安装地址C:\Program Files\Java\jdk-1.8 二、安装成功后配置环境变量 系统变量配置 AVA_HOME 放到环境变量去 %JAVA_HOME%\bin 三、生成签名证书…