ffmpeg视频处理常用命令
1.ffmpeg主要参数
-f fmt(输入/输出) 强制输入或输出文件格式。 格式通常是自动检测输入文件,
并从输出文件的文件扩展名中猜测出来,所以在大多数情况下这个选项是不需要的。-i url(输入) 输入文件的网址-y(全局参数) 覆盖输出文件而不询问-n(全局参数) 不要覆盖输出文件,如果指定的输出文件已经存在,请立即退出。-c [:stream_specifier] codec(输入/输出,每个流)
选择一个编码器(当在输出文件之前使用)或解码器(当在输入文件之前使用时)用于
一个或多个流。codec 是解码器/编码器的名称或 copy(仅输出)以指示该流不被重新编码。
如:ffmpeg -i INPUT -map 0 -c:v libx264 -c:a copy OUTPU-codec [:stream_specifier]编解码器(输入/输出,每个流) 同 -c-t duration(输入/输出) 当用作输入选项(在-i之前)时,限制从输入文件读取的数据的
持续时间。当用作输出选项时(在输出url之前),在持续时间到达持续时间之后停止输出。-ss位置(输入/输出) 当用作输入选项时(在-i之前),在这个输入文件中寻找位置。请注意,在大多数格式中,不可能精确搜索,因此ffmpeg将在位置之前寻找最近的搜索点。
当转码和-accurate_seek被启用时(默认),搜索点和位置之间的这个额外的分段将被解码和丢弃。当进行流式复制或使用-noaccurate_seek时,它将被保留。当用作输出选项(在输出url之前)时,
解码但丢弃输入,直到时间戳到达位置。-frames [:stream_specifier] framecount(output,per-stream)
停止在帧计数帧之后写入流。-filter [:stream_specifier] filtergraph(output,per-stream)
创建由filtergraph指定的过滤器图,并使用它来过滤流。filtergraph是应用于
流的filtergraph的描述,并且必须具有相同类型的流的单个输入和单个输出。
在过滤器图形中,输入与标签中的标签相关联,标签中的输出与标签相关联。
有关filtergraph语法的更多信息,请参阅ffmpeg-filters手册。
-------------------------------------------------
2.ffmpeg音频参数
-vframes num(输出)
设置要输出的视频帧的数量。对于-frames:v,这是一个过时的别名,您应该使用它。-r [:stream_specifier]
fps(输入/输出,每个流)设置帧率(Hz值,分数或缩写)。作为输入选项,忽略存储
在文件中的任何时间戳,根据速率生成新的时间戳。这与用于-framerate选项不同(它
在FFmpeg的旧版本中使用的是相同的)。如果有疑问,请使用-framerate而不是输入选
项-r。作为输出选项,复制或丢弃输入帧以实现恒定输出帧频fps。-s [:stream_specifier]大小(输入/输出,每个流) 设置窗口大小。作为输入选项,
这是video_size专用选项的快捷方式,由某些分帧器识别,其帧尺寸未被存储在文件中。
作为输出选项,这会将缩放视频过滤器插入到相应过滤器图形的末尾。请直接使用比例过
滤器将其插入到开头或其他地方。格式是'wxh'(默认 - 与源相同)。-aspect [:stream_specifier] 宽高比(输出,每个流设置方面指定的视频显示宽高比。
aspect可以是浮点数字符串,也可以是num:den形式的字符串,其中num和den是宽高比的
分子和分母。例如“4:3”,“16:9”,“1.3333”和“1.7777”是有效的参数值。如果与-vcodec
副本一起使用,则会影响存储在容器级别的宽高比,但不会影响存储在编码帧中的宽高比(如果存在)。-vn(输出) 禁用视频录制。-vcodec编解码器(输出) 设置视频编解码器。这是-codec:v的别名。-vf filtergraph(输出) 创建由filtergraph指定的过滤器图,并使用它来过滤流。
-----------------------------------
3.编码/解码命令
提取yuv数据
ffmpeg -i testVedio,flv -an -c:v rawivideo -pix_fmt yuv420p out.yuv提取yuv数据
-pix_fmt设置像素格式
-----------------------------------
提取PCM数据
ffmpeg -i break.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm提取PCM数据
-ar 设置音频采样率
-ac 设置音频通道数目
-f 设置pcm文件数据格式
-------------------------------------
编码命令
ffmpeg -s 1920×1080 -iout.yuv -vcodec h264 out.h264
使用和64编码压缩音频数据ffmpeg -ar 44100 -ac 2 -f sl16le -i out.pcm -acodec libfdk_acc out.acc
使用fdk_aac编码压缩PCM数据
------------------------------------
4.处理原始数据
提取YUV数据
ffmpeg -i input.mp4 -an -c:v rawvideo -pixel_format yuv420p out.yuv
ffplay -s wxh out.yuv
-c:v rawvideo 指定将视频转成原始数据
-pixel_format yuv420p 指定转换格式为yuv420pYUV转H264
ffmpeg -f rawvideo -pix_fmt yuv420p -s 320x240 -r 30 -i out.yuv -c:v libx264 -f rawvideo out.h264提取PCM数据
ffmpeg -i out.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm
ffplay -ar 44100 -ac 2 -f s16le -i out.pcmPCM转WAV
ffmpeg -f s16be -ar 8000 -ac 2 -acodec pcm_s16be -i input.raw output.wav
-------------------------------------
mp4 的封装格式转成flv
ffmpeg -i out.mp4 -vcodec copy -acodec copy out.flv
-------------------------------------------
5.裁剪/合并命令
裁剪命令
ffmpeg -SS 00:00:00 -t 10 -i break.mp4 -vcodec copy -acodec copy 1.ts
-SS position跳转到输入文件的postion位置,可以是秒数或者hh:mm:ss形式
-t duration读取到文件的duration位置,可以是秒数或者hh:mm:ss形式
-------------------------------------------
合并命令
ffmpeg -f concat -i input.txt -vcodec copy -acodec copy new.ts
合并input.txt的视频文件列表
input.txt格式: file 'fileName'ffmpeg -i out.h264 -i out.aac -vcodec copy -acodec copy out.mp4
音视频合并
-------------------------------------------
6.图片/视频互转命令
ffmpeg -i break.mp4 -t5 -r 2 -S 1024x768 %3d.jpeg视频转图片-r fps设置图片截取速率,可以为浮点数
-S WxH设置截取图片的大小
ffmpeg -i %3d.jpeg out.mp4图片转视频
ffmpeg -i %3d.jpeg -r 5 out.gif图片转gif动图
ffmpeg -i break.mp4 -t 5 -r 30 image.gif视频转gif动图
------------------------------------------
7.录制命令
ffmpeg -y f x11grab -r 30 -S 1024x768 -i :0.0 -preset ultrafast output.mp4
录制屏幕命令,并编码封装成mp4文件-preset设置编码器预设参数
-ultrafast最快的编码方式ffmpeg -f alsa -i pulse -ar 44100 -ac2 -f s16le out.pcm
获取音频数据命令ffmpeg -f avfoundation -i 1:0 -r 29.97 -c:v libx264 -crf 0 -c:a libfdk_aac -profile:a aac_he_v2 -b:a 32k out.flv
录制视频音频命令-i 1:0 冒号前面的 "1" 代表的屏幕索引号。冒号后面的"0"代表的声音索相号。
-c:v 与参数 -vcodec 一样,表示视频编码器。c 是 codec 的缩写,v 是video的缩写。
-crf 是 x264 的参数。 0 表式无损压缩。
-c:a 与参数 -acodec 一样,表示音频编码器。
-profile 是 fdk_aac 的参数。 aac_he_v2 表式使用 AAC_HE v2 压缩数据。
-b:a 指定音频码率。 b 是 bitrate的缩写, a是 audio的缩与。
---------------------------------------------
直播命令
ffmpeg -re -i input.mp4 -acodec copy -vcodec copy -f flv rtmp://xxx
推视频流至流媒体服务器-re读取输入的原始帧速率ffmpeg -i http://ivi.bupt.edu.cn/hls/cctv6hd.m3u8 -C copy output.m3u8
保存流媒体服务器上的流至本地
----------------------------------------------------
8.视频处理命令:
ffmpeg -i in.mp3 -filter_ complex atempo=0.5 out.mp3
对声音进行变速不变调处理
-filter_ complex filtergraph设置复杂滤镜
atempo设置音频速度因子(0.5 - 100,默认1)ffmpeg -i testVideo.flv -vf crop=in_ W-200:in_ _h- 100 -vcodec libx264 -c:a copy out.flv
裁剪视频
-vf filtergraph创建和使用filtergraph指定的滤镜组
crop滤镜名称
相关文章:
ffmpeg视频处理常用命令
1.ffmpeg主要参数 -f fmt(输入/输出) 强制输入或输出文件格式。 格式通常是自动检测输入文件, 并从输出文件的文件扩展名中猜测出来,所以在大多数情况下这个选项是不需要的。-i url(输入) 输入文件的网址-…...
前端npm和yarn更换国内淘宝镜像
NPM 查询当前镜像 npm get registry 设置为淘宝镜像 npm config set registry https://registry.npm.taobao.org/ (旧地址) npm config set registry https://registry.npmmirror.com/ (最新地址) 设置为官方镜像 npm config set registry https://registry.n…...

华为配置OSPF的Stub区域示例
配置OSPF的Stub区域示例 组网图形 图1 配置OSPF Stub区域组网图 Stub区域简介配置注意事项组网需求配置思路操作步骤配置文件 Stub区域简介 Stub区域的ABR不传播它们接收到的自治系统外部路由,在Stub区域中路由器的路由表规模以及路由信息传递的数量都会大大减少…...

学会Web UI框架--Bootstrap,快速搭建出漂亮的前端界面
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 所属的专栏:前端泛海 景天的主页:景天科技苑 文章目录 Bootstrap1.Bootstrap介绍2.简单使用3.布局容器4.Bootstrap实现轮播…...
C语言学习大纲
笔者看了下某二本的C语言考研大纲,供平常学习参考,主要考察知识点: C语言概述 (1) 了解程序设计语言的语法 (2) 掌握C语言的特点 (3) 掌握问题求解的过程数据描述 (1&am…...

Unity URP 如何写基础的曲面细分着色器
左边是默认Cube在网格模式下经过曲面细分的结果,右边是原状态。 曲面细分着色器在顶点着色器、几何着色器之后,像素着色器之前。 它的作用时根据配置信息生成额外的顶点以切割原本的面片。 关于这部分有一个详细的英文教程,感兴趣可以看一…...
android pdf框架-8,图片缓存
解码会产生很多图片,滑过后不要显示,如果直接回收,会浪费不少资源. 在没有缓存的情况下,会看到gc还是比较频繁的. 有了缓存后,明显gc少了. 目录 常用的缓存 自定义缓存 显示相关的内存缓存 解码缓存池 内存缓存实现: 解码缓存池实现: 常用的缓存 lrucache,这是最常用…...

UE5.2 SmartObject使用实践
SmartObject是UE5新出的一项针对AI的功能,可为开发者提供如公园长椅、货摊等交互对象的统一外观封装,如UE的CitySample(黑客帝国Demo)中就运用到了SmartObject。 但SmartObject实践起来较为繁琐,主要依赖于AI及行为树…...

奇舞周刊第521期:实现vue3响应式系统核心-MVP 模型
奇舞推荐 ■ ■ ■ 实现vue3响应式系统核心-MVP 模型 手把手带你实现一个 vue3 响应式系统,代码并没有按照源码的方式去进行组织,目的是学习、实现 vue3 响应式系统的核心,用最少的代码去实现最核心的能力,减少我们的学习负担&…...
Mybatis-plus手写SQL如何使用条件构造器和分页
Mybatis-plus手写SQL如何使用条件构造器和分页插件 前言:在使用mybatis-plus过程中,使用条件构造器和分页插件非常效率的提升开发速度,但有些业务需要使用连表查询,此时还想使用条件构造器和使用分页时应该如何操作呢?…...
Vue的table组件合并行方法
/*** param {Array} data - 原始数据集合* param {string} addParamer - 这个是自定义的参数,向每个对象中添加一个参数 按照这个参数的个数进行合并* param {} args - 剩余参数 这个是合并规则 ,比如按照时间合并 那就传入对象中的时间参数date…...
5. C语言字符串处理常用方法
在 C 语言中,字符串是以字符数组的形式表示的,以空字符 \0 结尾。C 语言提供了一系列的字符串处理函数,可以用于字符串的操作、查找、比较等。以下是一些常用的 C 语言字符串处理函数: 1. 字符串定义与初始化 #include <stdio.h> #include <string.h>int mai…...

ts--(入门到离职系列)
TS 与 JS 的区别 TypeScript[4] 是一种由微软开发的自由和开源的编程语言。它是 JavaScript 的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。-- 官方文档 说人话就是 TS 拓展了 JS 的一些功能,解决了 JS 的一些缺点&#…...
java后端常见问题
java面向对象的特征,如何应用 面向对象编程是利用类和对象的编程思想万物皆成类,对象是类的具体体现,面向对象的三大基础特性,继承封装多态。、封装:封装隐藏了类的具体内部实现机制,可以在不影响使用的情…...

windows系统玩游戏找不到d3dx9_43.dll缺失,无法启动此程序的解决方法
今日,我们要深入讨论d3dx9_43.dll文件的重要性及其缺失问题。最近,我也遇到了这个文件丢失的困扰,因此想借此机会与大家分享如何解决d3dx9_43.dll缺失的问题。 一.电脑d3dx9_43.dll丢失会提示什么? 关于电脑提示d3dx9_43.dll丢失…...
MATLAB中mapminmax函数用法
目录 语法 说明 示例 使用 mapminmax 函数格式化矩阵 mapminmax函数的功能是通过将行最小值和最大值映射到 [-1 1] 来处理矩阵。 语法 [Y,PS] mapminmax(X,YMIN,YMAX) [Y,PS] mapminmax(X,FP) Y mapminmax(apply,X,PS) X mapminmax(reverse,Y,PS) dx_dy mapminmax(d…...
数据结构导航 -- 38篇
数据结构实现代码 线性表 顺序表代码-C-CSDN博客 单链表代码-C-CSDN博客 双链表代码-C-CSDN博客 有序表概述-CSDN博客 栈 栈代码数组实现-C-CSDN博客 栈代码链表实现(链栈)-C-CSDN博客 队列 队列与环形队列顺序存储代码数组实现-C-CSDN博客 队…...

前端性能优化 | CDN缓存
前言 CDN(Content Delivery Network)是一种分布式的网络架构,通过在全球各地部署节点服务器来快速传输和分发网络内容。CDN的主要目标是提供快速、可靠的内容传输,以提升用户体验。 本文主要从以下方面讲解CDN 什么是CDNCDN的作…...

【C#语言入门】17. 事件详解(上)
【C#语言入门】17. 事件详解(上) 一、初步了解事件 定义:单词Event,译为“事件” 通顺的解释就是**“能够发生的什么事情”**,例如,“苹果”不能发生,但是“公司上市”这件事能发生。在C#中事…...
Charles无法打开导出的har文件解决方法
打开出错:MalformedJson: Use JsonReader.setLenient(true) to accept malformed JSON at line1 column 1368184 path $.log.entries[41].request.postData.text 一、解决办法 用json.dumps格式化一下里面内容,保存为新文件再打开 import jsondef modify…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...

Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...

MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...