Nodejs 第十六章(ffmpeg)

简介: Nodejs 第十六章(ffmpeg)

FFmpeg 是一个开源的跨平台多媒体处理工具,可以用于处理音频、视频和多媒体流。它提供了一组强大的命令行工具和库,可以进行视频转码、视频剪辑、音频提取、音视频合并、流媒体传输等操作。

FFmpeg 的主要功能和特性:
  1. 格式转换:FFmpeg 可以将一个媒体文件从一种格式转换为另一种格式,支持几乎所有常见的音频和视频格式,包括 MP4、AVI、MKV、MOV、FLV、MP3、AAC 等。
  2. 视频处理:FFmpeg 可以进行视频编码、解码、裁剪、旋转、缩放、调整帧率、添加水印等操作。你可以使用它来调整视频的分辨率、剪辑和拼接视频片段,以及对视频进行各种效果处理。
  3. 音频处理:FFmpeg 可以进行音频编码、解码、剪辑、混音、音量调节等操作。你可以用它来提取音频轨道、剪辑和拼接音频片段,以及对音频进行降噪、均衡器等处理。
  4. 流媒体传输:FFmpeg 支持将音视频流实时传输到网络上,可以用于实时流媒体服务、直播和视频会议等应用场景。
  5. 视频处理效率高:FFmpeg 是一个高效的工具,针对处理大型视频文件和高分辨率视频进行了优化,可以在保持良好质量的同时提供较快的处理速度。
  6. 跨平台支持:FFmpeg 可以在多个操作系统上运行,包括 Windows、MacOS、Linux 等,同时支持多种硬件加速技术,如 NVIDIA CUDA 和 Intel Quick Sync Video。
安装

http://ffmpeg.p2hp.com/download.html

选择对应的操作系统进行下载就可以了,下载完成配置一下环境变量就ok了

输入 ffmpage -version 不报错即可

子进程配合ffmpeg

  1. 简单的demo 视频转gif -i 表示输入的意思
const {execSync} = require('child_process')
execSync(`ffmpeg -i test.mp4 test.gif`,{stdio:'inherit'})

  1. 添加水印

-vf 就是video filter

drawtext 添加文字 fontsize 大小 xy垂直水平方向 fontcolor 颜色 text 水印文案 全部小写

const {execSync} = require('child_process')
execSync(`ffmpeg -i test.mp4 -vf drawtext=text="XMZS":fontsize=30:fontcolor=white:x=10:y=10 test2.mp4`,{stdio:'inherit'})

  1. 视频裁剪 + 控制大小

-ss 起始时间

-to 结束事件

ss写在 -i的前面可能会导致精度问题,因为视频还没解析就跳转到了相关位置,但是解析速度快

ss写在 -i后面精度没问题,但是解析速度会变慢

const {execSync} = require('child_process')
execSync(`ffmpeg -ss 10 -to 20 -i test.mp4  test3.mp4`,{stdio:'inherit'})
  1. 提取视频的音频
const {execSync} = require('child_process')
execSync(`ffmpeg -i test.mp4 test.mp3`,{stdio:'inherit'})

  1. 去掉水印

w h 宽高

xy 垂直 水平坐标

delogo使用的过滤参数删除水印

const {execSync} = require('child_process')
execSync(`ffmpeg -i  test2.mp4 -vf delogo=w=120:h=30:x=10:y=10 test3.mp4`,{stdio:'inherit'})

目录
相关文章
Cesium系列:加载单个模型
Cesium如何加载单个三维模型数据
1232 0
|
3月前
|
关系型数据库 MySQL Java
《理解MySQL数据库》执行计划EXPLAIN深度解析
本文系统讲解MySQL执行计划(EXPLAIN)在Java开发中的应用,涵盖基础语法、各列深度解析及实战优化案例。通过分析type、key、Extra等关键字段,帮助开发者诊断慢查询、优化索引、提升SQL性能,并结合Spring AOP与JDBC实现执行计划的自动化监控与优化建议,构建高效稳定的数据库访问体系。(239字)
|
3月前
|
安全 Ubuntu 应用服务中间件
基于code-server的云端编程环境部署
本文档描述如何在 Ubuntu 主机上部署 code-server(即“网页版 VS Code”),并通过 autossh 将服务反向隧道到跳板机、使用 Nginx 反向代理域名访问、以及使用 certbot 配置 HTTPS。适合在多设备间共享同一开发环境、并解决个人主机动态公网 IP 的访问问题。
851 5
|
4月前
|
前端开发 开发工具 iOS开发
原创Electron38.2+Vite7+Vue3+Pinia3+ArcoDesign客户端os管理系统模板
2025最新版原创研发Electron38.2+Vite7+Vue3 setup+ArcoDesign+Echarts仿MacOS/Wins风格桌面客户端OS系统解决方案。
275 10
|
Java 开发工具 Android开发
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
216 2
ES6的Proxy到底是什么?
ES6的Proxy到底是什么?
222 2
|
数据采集 文字识别 测试技术
智谱开源端侧大语言和多模态模型GLM-Edge系列!
GLM-Edge系列模型是由智谱开源,专为端侧应用设计的大语言对话模型和多模态理解模型,包括GLM-Edge-1.5B-Chat、GLM-Edge-4B-Chat、GLM-Edge-V-2B和GLM-Edge-V-5B四种尺寸。这些模型针对手机、车机及PC等不同平台进行了优化,通过量化的技术手段,实现了高效运行。例如,在高通骁龙8 Elite平台上,1.5B对话模型和2B多模态模型能够达到每秒60 tokens以上的解码速度,而通过应用投机采样技术,这一数字可提升至100 tokens以上。
1048 0
智谱开源端侧大语言和多模态模型GLM-Edge系列!
|
缓存 监控 负载均衡
提高服务器CPU使用率
提高服务器CPU使用率
1488 8
|
语音技术 网络架构
首个支持普通话和方言混说的TTS大模型:河南话、上海话、粤语说得溜
【9月更文挑战第6天】近年来,人工智能技术的进步推动了文本到语音(TTS)系统的高质量语音生成能力。针对现有TTS系统在中文方言生成上的不足,研究人员开发了Bailing-TTS模型。此模型利用大规模数据集与连续半监督学习方法,结合特定的Transformer架构及多阶段训练流程,实现了自然流畅的方言语音合成。实验结果显示,Bailing-TTS在客观和主观测试中均能生成接近真实的人类发音,并具备零样本学习能力。尽管仍面临复杂方言质量和多样性等挑战,但Bailing-TTS为中文方言语音合成提供了新的可能,并有望在未来技术发展中发挥更大作用。
1644 2
|
JavaScript 前端开发 网络协议
从理论到实践:全面剖析Python Web应用中的WebSocket实时通信机制
【7月更文挑战第17天】WebSocket在实时Web应用中扮演重要角色,提供全双工通信,减少延迟。本文详述了Python中使用`websockets`库创建服务器的步骤,展示了一个简单的echo服务器示例,监听8765端口,接收并回显客户端消息。客户端通过JavaScript与服务器交互,实现双向通信。了解WebSocket的握手、传输和关闭阶段,有助于开发者有效利用WebSocket提升应用性能。随着实时需求增长,掌握WebSocket技术至关重要。
874 6