ffmpeg图片视频编辑器工具的安装与使用

news2024/9/21 14:32:55

title: ffmpeg图片视频编辑器工具的安装与使用
tags: [ffmpeg, 图片, 音频, 视频, 工具, 流媒体]
categories: [工具, ffmpeg]

ffmpeg

FFmpeg是一个开源的命令行工具,广泛用于处理视频和音频文件,包括转换格式、剪辑、混流、解码、编码等。以下是一些基本的FFmpeg使用示例和它们的含义:

linux与类unix系统中的ffmepg安装教程。

安装ffmpeg:

直接安装

在大多数Linux发行版中,可以使用包管理器安装FFmpeg:

sudo apt-get install ffmpeg   # Debian/Ubuntu
sudo yum install ffmpeg      # CentOS/RedHat
sudo pacman -S ffmpeg        # Arch Linux

源码安装

地址:https://ffmpeg.org/download.html

tar zxvf ffmpeg-7.0.tar.gz
cd ffmpeg-7.0
./configure --disable-x86asm
make && make install

环境变量:

export IMAGEIO_FFMPEG_EXE=/Users/zuolichen/opt/software/ffmpeg-7.0
vim ~/.zprofile
export PATH=/Users/zuolichen/opt/software/ffmpeg-7.0/bin:$PATH

ffmpeg基本使用

media

转换视频格式

将一个视频文件从一种格式转换到另一种格式,例如将.mp4转换为.avi

ffmpeg -i input.mp4 -c:v libxvid -q:v 2 -c:a libmp3lame -q:a 2 output.avi

视频裁剪

裁剪视频的指定部分:

ffmpeg -i input.mp4 -ss 00:00:10 -t 00:01:00 -c copy output.mp4

提取音频

从视频文件中提取音频到单独的文件:

ffmpeg -i video.mp4 -q:a 0 -map a audio.mp3

视频转GIF

将视频的一部分转换成GIF动图:

ffmpeg -i video.mp4 -ss 00:00:10 -t 10 -s 320x240 -r 15 -f image2pipe -vcodec ppm - | gifsicle --optimize=3 --delay=2 > output.gif

视频直播

使用RTMP协议进行视频直播:

ffmpeg -re -i input.mp4 -c:v libx264 -preset veryfast -maxrate 2000k -bufsize 4000k -pix_fmt yuv420p -g 50 -c:a aac -b:a 128k -ac 2 -ar 44100 -f flv rtmp://live.twitch.tv/app/stream_key

视频编码

使用H.264编码器对视频进行编码:

ffmpeg -i input.avi -c:v libx264 -crf 23 -c:a aac -b:a 128k output.mp4

调整视频分辨率

改变视频的分辨率:

ffmpeg -i input.mp4 -s 1280x720 output.mp4

视频合并

将多个视频文件合并为一个文件:

ffmpeg -i "concat:part1.mp4|part2.mp4|part3.mp4" -c copy -map 0 output.mp4

视频帧提取

从视频中提取单独的帧作为图片:

ffmpeg -i input.mp4 -r 1 -f image2 output_%03d.png

音频视频同步

如果视频和音频不同步,尝试重新同步:

ffmpeg -i out_of_sync.mp4 -af "arealtime,asetnsamples=1000" sync.mp4

查看文件信息

查看视频文件的信息,包括格式、持续时间、码率、编解码器等:

ffmpeg -i input.mp4

FFmpeg的选项非常多,以上只是一些基本的用法。FFmpeg的强大之处在于其灵活性和模块化,可以用于各种复杂的音视频处理任务。在实际使用中,你可能需要根据具体需求调整命令和参数。

heart


不积跬步无以至千里,不积小流无以成江海。

欢迎关注,您的资源可变现:【乐知付加密平台】

个人:【程序员写书】

一起学习,一起进步。

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

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

相关文章

【全面讲解下iPhone新机官网验机流程】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

nginx配置反向代理-CSDN

客户需求 1、实现通过域名访问税金的发票服务(路径格式要求:https://www.xxx.com) nginx的部署 前提 1、客户在局域网内已实现通过https://ip:port/stms访问税金平台 2、客户已获取https的SSL证书 3、客户申请的外网ip和域名已绑定 部署…

为什么要设计DTO类

为什么要使用DTO类,下面以新增员工接口为例来介绍。 新增员工 1.1 需求分析和设计 1.1.1 产品原型 一般在做需求分析时,往往都是对照着产品原型进行分析,因为产品原型比较直观,便于我们理解业务。 后台系统中可以管理员工信息…

WEB自动化框架封装MySQL连接及sql断言教程

为了在Web自动化测试中连接MySQL数据库并进行SQL断言,您可以按照以下步骤: 安装MySQL Connector/Python驱动程序,并导入它。 使用Connector/Python创建一个连接对象,指定所需的主机名、用户名、密码和数据库名。 创建一个游标对…

linux-虚拟内存-虚拟cpu

1、进程: 计算机中的程序关于某数据集合上的一次运行活动。 狭义定义:进程是正在运行的程序的实例(an instance of a computer program that is being executed)。广义定义:进程是一个具有一定独立功能的程序关于某个…

【三维向量旋转】基于Matlab的三维坐标旋转

一、问题描述 若空间中存在三个点A,B,C,其中A点是不动点,B点是当前方向向量上的一个点,C是目标方向上的一个点。如果要让AB向量沿着BC方向进行旋转,使得AB最终旋转到AC。这个过程就是三维向量的旋转过程。我们关注的是这个过程&am…

JAVA 课设 满汉楼餐厅点餐系统

一、代码详解 1.总体结构展示 2.总体代码 2.1 libs文件 链接:https://pan.baidu.com/s/1nH-I7gIlsqyMpXDDCFRuOA 提取码:3404 2.2 配置的德鲁连接池 #keyvalue driverClassNamecom.mysql.cj.jdbc.Driver urljdbc:mysql://localhost:3306/mhl?rewriteBa…

爱了!8款超好用的PC端办公软件!

AI视频生成:小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频https://aitools.jurilu.com/ 你电脑中用的最久的软件是哪些?以下是否有你曾经使用过的软件呢?工欲善其事,必先利其器,今天继续…

打造属于自己的脚手架工具并发布到npm仓库

一、创建项目 使用 npm init -y 创建项目创建项目入口文件 index.js在 package.json 中添加 bin 字段使用 npm link 命令将文件映射至全局,使可以在本地测试 zp 命令 // "zp" 为用于全局执行脚手架的命令,vue-cli中使用的是vue命令 "bi…

STM32-I2C

本内容基于江协科技STM32视频学习之后整理而得。 文章目录 1. I2C通信1.1 I2C通信简介1.2 硬件电路1.3 I2C时序基本单元1.3.1 起始条件和终止条件1.3.2 发送一个字节1.3.3 接收一个字节1.3.4 发送应答和接收应答 1.4 I2C时序1.4.1 指定地址写1.4.2 当前地址读1.4.3 指定地址读…

利用docker搭建漏洞环境,使用SSRF+Redis写入centos以及ubuntu的公钥,实现免密登录

一、实验环境 kali:在kali中搭建docker容器环境,这里我主要是使用第一个; redis作为一种数据库,它可以将数据写入内存中去,我们通过利用ssrf请求,实现服务器对自己的公钥写入,从而实验免密登录;…

el-table 树形数据与懒加载 二级数据不展示

返回的数据中 children和hasChildren只能有一个,不能同时存在,否则加载数据会失败

优化后Day53 动态规划part11

LC1143最长公共子序列 1.dp数组的含义:dp[i][j]表示以下标i结尾的text1子序列和以下标j结尾的text2子序列的最长公共子序列 2. 初始化:跟LC718一样,i结尾的需要初始化,i-1结尾不需要初始化 3. 递推公式 如果charAt(i)charAt(j)&…

集成测试技术栈

前端 浏览器操作:playwright、selenium 后端 testcontainercucumbervitestcypressmsw

Threejs将场景生成全景图导出

实现思路: 创建全景相机CubeCamera(六个方位的透视相机)并渲染场景 读取六个面的纹理数据 填充进canvas中 即可按照常规的canvas导出图片了 demo https://gitee.com/honbingitee/three-template-next.js/tree/HDR 核心代码 const cubeRender…

《python程序语言设计》2018版第5章第53题利用turtle绘制sin和cos函数 sin蓝色,cos红色和52题类似

直接上题和代码 5.53 (Turtle:绘制sin和cos函数)编写程序绘制蓝色的sin函数和红色的cos函数。 代码和结果 turtle.speed(10) turtle.penup() # sin 用蓝色 turtle.color("blue") #这道题和上道题一样,先把turtle放到起始…

数列结构(3.9)——队列应用

树的层次遍历 树的层次遍历,也称为树的广度优先遍历,是一种按照树的层次顺序,从上到下、从左到右遍历树中所有节点的算法。在二叉树中,这种遍历方式通常使用队列来实现。下面是层次遍历的基本步骤: 创建一个空队列&a…

排序(2)

我们在排序&#xff08;1&#xff09;中说到选择排序的代码&#xff1a; void SelectSort(int* a,int n) {int begin0,endn-1;int minibegin,maxbegin;for(int ibegin1;i<end;i){if(a[i]>a[max]){maxii;}if(a[i]<a[mini]){minii;}begin;--end;}Swap(&a[beign],&a…

UE5 05-利用 timeline 插值运动

理解成 unity Dotween DoMove 插值运动即可 AddTimeLine 节点 物体插值运动 物体插值缩放 一个timeline 可以K多个动画帧

C语言 printf 函数多种输出格式以及占位输出

一、输出格式 在C语言中&#xff0c;printf 函数提供了多种输出格式&#xff0c;用于控制不同类型数据的输出方式。 1.整数输出格式 %d&#xff1a;以十进制形式输出整数。 %o&#xff1a;以八进制形式输出整数&#xff08;无前导0&#xff09;。 %x 或 %X&#xff1a;以十六进…