码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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

    运行成功

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

    在这里插入图片描述

  • 相关阅读:
    OkGo - 一个基于okhttp的标准RESTful风格的网络框架
    树莓派4:安装 .NET 6 SDK 并测试连接 MSSQL SERVER(无 mono)
    (四)Ansible-其他模块
    【PyTorch深度强化学习】DDPG算法的讲解及实战(超详细 附源码)
    Unity的实用移动技巧
    使用互传APP实现Android手机投屏到windows电脑
    【SpringMVC】@RequestMapping注解
    2. JVM-类加载子系统
    Electron录制应用-打包静态文件问题【命令行ffmpeg导不出视频】
    C语言面试题(拓展)
  • 原文地址:https://blog.csdn.net/Vue2018/article/details/133135227
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号