前端多媒体处理工具——ffmpeg的使用

写在前面

在前端领域,FFmpeg 是一个非常有用的工具,它提供了多种媒体格式的封装和解封装,包括多种音视频编码、多种协议的流媒体、多种色彩格式转换、多种采样率转换、多种码率切换等。可以在多种操作系统安装使用。

安装
下载FFmpeg

在网站根据对应电脑系统下载对应版本即可,windows下载下图版本。
在这里插入图片描述
下载完成后选择合适的路径存放此工具包,根据对应路径配置环境变量:

我是将工具包放在下图目录:
在这里插入图片描述
因此环境变量是这样的:
在这里插入图片描述
使用控制台输入ffmpeg -version,如果得到类似下图结果则表明配置成功:
在这里插入图片描述

配置完成后,在本篇文件主要介绍以下几个功能

  1. 基本格式转换 avi mp4 gif 等
  2. 提取视频中的音频
  3. 裁剪视频 或 音频
  4. 删除水印
  5. 添加水印

1. 基本格式转换

在这里插入图片描述

这里有一段名为tiktok.mp4的文件,我们通过使用FFmpeg将它转换为gif格式:

用法:ffmpeg -i 视频文件名 新格式视频文件名

const { execSync, exec } = require("child_process");// 1. 基本格式转换 avi mp4 gif 等
execSync("ffmpeg -i tiktok.mp4 test.gif", { stdio: "inherit" });

生成的gif结果如下:

在这里插入图片描述
当然其他格式也同样可以,如avi、MP4等都可互相转换。

2. 提取视频中音频

用法:ffmpeg -i 视频文件名 音频文件名

const { execSync, exec } = require("child_process");
// 2. 提取视频中音频
execSync("ffmpeg -i tiktok.mp4 test.mp3", { stdio: "inherit" })

结果如下:
在这里插入图片描述

3. 裁剪视频或音频

用法:ffmpeg -ss 开始时间 -to 结束时间 -i 视频/音频文件名 生成的视频/音频文件名

参数-ss:set frame size,表示设置帧长

const { execSync, exec } = require("child_process");// 3. 裁剪视频 或 音频 -ss(set frame size设置帧长) ? -to ? ...
execSync("ffmpeg -ss 5 -to 10 -i tiktok.mp4 test2.mp3", { stdio: "inherit" });

结果如下:
在这里插入图片描述

4. 删除水印

用法:ffmpeg -i 视频文件名 -vf delogo=w=水印宽:h=水印高:x=水印x位置:y=水印y位置 新视频文件名
参数-vf:video filters,表示使用视频滤镜功能。

const { execSync, exec } = require("child_process");// 4. 删除水印 -vf(video filters) delogo=w=?:h=?...
execSync("ffmpeg -i tiktok.mp4 -vf delogo=w=240:h=120:x=10:y=10 test3.mp4", {stdio: "inherit",
});

结果如下:
在这里插入图片描述

5. 添加水印

用法:ffmpeg -i 视频文件名 -vf drawtext=x=水印x位置:y=水印y位置:fontsize=水印字体大小:fontcolor=水印字体颜色:text='水印内容' 新视频文件名

const { execSync, exec } = require("child_process");// 5. 添加水印 -vf(video filters) drawtext=text=?:fontsize=?...
execSync("ffmpeg -i test3.mp4 -vf drawtext=x=30:y=30:fontsize=40:fontcolor=white:text='ffmpeg' test7.mp4",{ stdio: "inherit" }
);

结果如下:
在这里插入图片描述

6. 更多用法

ffmpeg -help查看更多用法
在这里插入图片描述
ffmpge -help filter=参数:查看参数有哪些子参数,比如这里查看添加水印时使用的参数drawtext的子参数:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/114192.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入探讨 Golang 中的追加操作

通过实际示例探索 Golang 中的追加操作 简介 在 Golang 编程领域,append 操作是一种多才多艺的工具,使开发人员能够动态扩展切片、数组、文件和字符串。在这篇正式的博客文章中,我们将踏上一段旅程,深入探讨在 Golang 中进行追加…

【VSCode】解决Open in browser无效

问题描述: 在VSCode中无论是点击右键,选择在默认浏览器中打开,还是按快捷键alt b都没有反应。 解决办法: 右击文件 --> 在文件资源管理器中显示 右击文件,选择属性 点击更改 选择用默认浏览器打开 最后 此时…

音乐制作软件 Studio One 6 mac中文版软件特点

Studio One mac是一款专业的音乐制作软件,该软件提供了全面的音频编辑和混音功能,包括录制、编曲、合成、采样等多种工具,可用于制作各种类型的音乐,如流行音乐、电子音乐、摇滚乐等。 Studio One mac软件特点 1. 直观易用的界面&…

Defender Antivirus占用资源怎么禁止

前言 有时Defender Antivirus 突然磁盘IO很高。导致机器卡得很,开发代码很不方便,本文就介绍如何禁用这个服务。 操作 下载Defender Control https://www.sordum.org/9480/defender-control-v2-1/ 这是当前的最新版本。下载不了就用云盘地址 &#x…

Android Studio(2022.3.1)设置阿里云源-新旧版本

新版本 #settings.gradle.ktsmaven { url uri("https://maven.aliyun.com/repository/public/") }maven { url uri("https://maven.aliyun.com/repository/google/") }maven { url uri("https://maven.aliyun.com/repository/jcenter/") }ma…

git commit报错:running pre-commit hook: lint-staged

报错截图: 报错信息: running pre-commit hook: lint-staged 解决方式: 在项目(vue)的package.json文件中,查找 “husky” 部分,并确认其下的 “pre-commit” 钩子是否正确地引用了 lint-staged。 其中配置示例如下&a…

大数据测试用例分析

基于大数据分析,对业务系统产生的日志进行智能分析,能够识别日志中的接口、参数、业务流,并依据分析的结果生成测试用例。 问题与背景 业务复杂 业务系统的复杂性,对测试人员的业务能力提出严格要求,加重测试成本。 …

开源网安受邀参加数字安全高峰论坛,为数字经济发展保驾护航

​10月19日,“提升数字安全技术,护航数字经济发展”高峰论坛在常州创意产业园圆满完成。本次论坛由常州国家高新区管委会、常州市工业和信息化局、常州市大数据管理中心主办,聚焦“数据安全”主题,邀请了超百位专家及企业代表共同…

FROZEN TRANSFORMERS IN LANGUAGE MODELS ARE EFFECTIVE VISUAL ENCODER LAYERS

本文是LLM系列文章,针对《FROZEN TRANSFORMERS IN LANGUAGE MODELS ARE EFFECTIVE VISUAL ENCODER LAYERS》的翻译。 语言模型中的冻结Transformer是有效的视觉编码器层 摘要1 引言2 相关工作3 方法:用于视觉编码的冷冻LLMTransformer4 LLMTransformer在…

5种常用的冲突解决方法

1、撤退/回避:从实际或潜在冲突中退出,将问题推迟到准备充分的时候,或将问题推给其他人员解决; 2、缓和/包容:强调一致而非差异,为维持和谐与关系而退让一步,考虑其他方面的需求; …

华为云HECS服务器下docker可视化(portainer)

一、docker安装 华为云HECS安装docker-CSDN博客 二、portainer安装 portainer地址:Portainer: Docker and Kubernetes Management Platform 当前portainer分CE(开源版) 和 BE(商业版),用CE即可 1 创建…

Vue3开始

1. Vue3简介 2020年9月18日,Vue.js发布版3.0版本,代号:One Piece(海贼王) 经历了:4800次提交、40个RFC、600次PR、300贡献者 官方发版地址:Release v3.0.0 One Piece vuejs/core 截止2023年…

c++23中的新功能之十七显示this的应用

一、显示this 在前面的文章中分析了显示this(Deducing This),具体的内容请移步《c23新功能之二语法中的Deducing This》,本篇对显示this对实际应用中的一些完善和更新形式进行分析说明,抛砖引玉。 二、CRTP的应用 在前面的学习中,学过CRTP…

ARM映像文件组成

引言 ARM编译器将各种源文件(汇编文件、C语言程序文件、C语言程序文件)编译生成ELF格式的目标文件(后缀为.o文件,以下将目标文件简称为.o文件),.o文件经过连接器,和C/C运行时库一起编译生成ELF格…

如何解决香港服务器使用的常见问题

​  站长们在选择香港服务器租用时会考虑到它的各种性能以及稳定性,这是必须的。但是使用过程中还有些问题也不容忽视,比如:带宽资源是否短缺,是否存在安全漏洞,连接是否正常等这些问题也要考虑到。 香港服务器使用中…

php判断是否是email格式

要判断一个字符串是否是有效的电子邮件地址,你可以使用正则表达式和PHP内置函数来完成。以下是一个示例代码: $email "exampleexample.com"; // 你要检查的电子邮件地址// 使用正则表达式检查电子邮件格式 if (filter_var($email, FILTER_VA…

数据库备份与恢复(实战mysqldump+bin-log)

一、为什么要进行数据库备份? 常见数据库备份的应用场景如下: 数据丢失应用场景: 人为操作失误造成某些数据被误操作 软件 BUG 造成部分数据或全部数据丢失 硬件故障造成数据库部分数据或全部数据丢失 安全漏洞被入侵数据恶意破坏 非数据丢…

UV统计 - HyperLogLog

UV统计 - HyperLogLog 首先我们搞懂两个概念: UV:全称Unique Visitor,也叫独立访客量,是指通过互联网访问、浏览这个网页的自然人。1天内同一个用户多次访问该网站,只记录1次。PV:全称Page View&#xff…

Leetcode—2331.计算布尔二叉树的值【简单】

2023每日刷题(六) Leetcode—2331.计算布尔二叉树的值 递归实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ bool evaluateTree(struct TreeNod…

【算法与数据结构】--算法应用--算法在实际问题中的应用

一、算法在搜索引擎中的应用 搜索引擎是计算机科学中算法应用的典型领域之一。搜索引擎的主要任务是帮助用户在海量数据中快速找到相关信息。以下是算法在搜索引擎中的主要应用: 爬虫算法:爬虫是搜索引擎的基础,用于自动抓取互联网上的网页…