简单整理FFmpeg相关命令集

FFmpeg相关命令集

简单整理了FFmpeg相关命令,主要包括ffplay播放控制和媒体播放命令、ffmpeg命令相关参数以及常用的提取音视频等命令。

🎡导航小助手🎡

  • FFmpeg相关命令集
    • 1.ffmpeg命令分类查询
    • 2.ffplay命令
      • 2.1 ffplay播放控制
      • 2.2 ffplay命令选项
      • 2.3常用ffplay媒体播放命令
    • 3 ffmpeg命令
      • 3.1ffmpeg命令参数说明
      • 3.2 ffmpeg命令提取音视频数据
      • 3.3 ffmpeg常用命令
      • 3.4 音视频录制

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案,有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。
在这里插入图片描述

FFmpeg整体结构:
FFmpeg整体结构
ffmpeg/ffplay/ffprobe区别

  • ffmpeg:Hyper fast Audio and Video encoder超快音视频编码器
  • ffplay:Simple media player简单媒体播放器
  • ffprobe:Simple multimedia streams analyzer简单多媒体流分析器

ffmpeg音视频处理流程

在这里插入图片描述

1.ffmpeg命令分类查询

命令参数内容命令参数内容
-version版本-bsfs可用比特流filter
-buildconf编译配置-protocols显示可用的协议
-formats显示可用格式( muxers+demuxers)-filters显示可用的过滤器 可用的过滤器
-muxers显示可用复用器-pix_fmts显示可用的像素格式
-demuxers显示可用解复用器-layouts显示标准声道名称
-codecs显示可用编解码器( decoders+encoders)-sample_fmts显示可用的音频采样格式
-decoders显示可用解码器-colors显示可用的颜色名称
-encoders显示可用编码器

2.ffplay命令

2.1 ffplay播放控制

选项说明选项说明
q, ESC退出播放t循环切换字幕流
f全屏切换c循环切换节目
p, SPC暂停w循环切换过滤器或显示模式
m静音切换s逐帧播放
9, 09减少音量,0增加音量left/right向后/向前拖动10秒
down/up向后/向前拖动1分钟鼠标右键单击拖动与显示宽度对应百分比的文件进行播放
a循环切换音频流鼠标左键双击全屏切换
v循环切换视频流

2.2 ffplay命令选项

选项说明
-x width强制显示宽带。
-y height强制显示高度。
-pixel_format format格式设置像素格式
-an禁用音频(不播放声音)
-vn禁用视频(不播放视频)
-sn禁用字幕(不显示字幕)
-ss pos根据设置的秒进行定位拖动,注意时间单位:比如’55’ 55 seconds, ‘12:03:45’ ,12 hours, 03 minutes and 45 seconds, ‘23.189’ 23.189 second
-t duration设置播放视频/音频长度,时间单位如 -ss选项
-nodisp关闭图形化显示窗口,视频将不显示
-noborder无边框窗口
-volume vol设置起始音量。音量范围[0 ~100]
-f fmt强制使用设置的格式进行解析。比如-f s16le
-window_title title设置窗口标题(默认为输入文件名)
-showmode mode设置显示模式,可用的模式值:0 显示视频,1 显示音频波形,2 显示音频频谱。缺省为0,如果视频不存在则自动选择2

2.3常用ffplay媒体播放命令

  1.播放本地文件ffplay -window_title "test time" -ss 2 -t 10 -autoexit test.mp4ffplay buweishui.mp32.播放网络流ffplay -window_title "rtmp stream" rtmp://202.69.69.180:443/webcast/bshdlive-pc3.播放YUV数据ffplay -pixel_format yuv420p -video_size 320x240 -framerate 5 yuv420p_320x240.yuv(-pixel_format 指定像素格式,-framerate 帧率)4.播放RGB数据ffplay -pixel_format rgb24 -video_size 320x240 -i rgb24_320x240.rgbffplay -pixel_format rgb24 -video_size 320x240 -framerate 5 -i rgb24_320x240.rgb5.播放PCM数据ffplay -ar 48000 -ac 2 -f f32le 48000_2_f32le.pcm6.音视频同时变速ffplay -i test.mp4 -vf setpts=PTS/2 -af atempo=2
  1.双宫格ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -i 4.mp4 -filter_complex "nullsrc=size=640x480[base];[0:v]setpts=PTS-STARTPTS,scale=320x240[upperleft];[1:v]setpts=PTS-STARTPTS,scale=320x240[upperright];[base][upperleft]overlay=shortest=1[tmp1];[tmp1][upperright]overlay=shortest=1:x=320" out2.mp42.四宫格ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -i 4.mp4 -filter_complex "nullsrc=size=640x480[base];[0:v] setpts=PTS-STARTPTS,scale=320x240[upperleft];[1:v]setpts=PTS-STARTPTS,scale=320x240[upperright];[2:v]setpts=PTS-STARTPTS, scale=320x240[lowerleft];[3:v]setpts=PTS-STARTPTS,scale=320x240[lowerright];[base][upperleft]overlay=shortest=1[tmp1];[tmp1][upperright]overlay=shortest=1:x=320[tmp2];[tmp2][lowerleft]overlay=shortest=1:y=240[tmp3];[tmp3][lowerright]overlay=shortest=1:x=320:y=240" out3.mp4

3 ffmpeg命令

3.1ffmpeg命令参数说明

ffmpeg命令行参数解释:
ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出文件]
ffmpeg [[ options ][ -i input_file ]]… {[ options ] output_file}…

1.主要参数

-i设定输入流
-f设定输出格式(format)
-ss开始时间
-t时间长度

2.音频参数

-aframes设置要输出的音频帧数
-b:a音频码率
-ar设定采样率
-ac设定声音的Channel数
-acodec设定声音编解码器,如果用copy表示原始编解码数据必须被拷贝。
-an不处理音频
-af音频过滤器

3.视频参数

-vframes设置要输出的视频帧数
-b设定视频码率
-b:v视频码(与上一条一样)
-r设定帧速率
-s设定画面的宽与高
-vn不处理视频
-aspect aspect设置横纵比 4:3 16:9 或 1.3333 1.7777
-vcodec设定视频编解码器,如果用copy表示原始编解码数据必须被拷贝。
-vf视频过滤器

3.2 ffmpeg命令提取音视频数据

  1.保留封装格式ffmpeg -i test.mp4 -acodec copy -vn audio.mp4ffmpeg -i test.mp4 -vcodec copy -an video.mp42.提取视频 保留编码格式:ffmpeg -i test.mp4 -vcodec copy -an test_copy.h264指定格式:ffmpeg -i test.mp4 -vcodec libx264 -an test.h2643.提取音频保留编码格式:ffmpeg -i test.mp4 -acodec copy -vn test.aac指定格式:ffmpeg -i test.mp4 -acodec libmp3lame -vn test.mp3

3.3 ffmpeg常用命令

  1.保持编码格式ffmpeg -i test.mp4 -vcodec copy -acodec copy test_copy.ts ffmpeg -i test.mp4 -codec copy test_copy2.ts2.修改音视频码率ffmpeg -i test.mp4 -b:v 400k -b:a 192k output_bva.mp43.修改视频分辨率ffmpeg -i test.mp4 -s 480x270 output_480x270.mp44.修改音频采样率ffmpeg -i test.mp4 -ar 44100 output_44100hz.mp45.截取视频ffmpeg -i believe.mp4 -ss 00:03:00 -t 10 -codec copy 1.mp4
  1.mp4转tsffmpeg -i 1.mp4 -codec copy -vbsf h264_mp4toannexb 1.ts2.mp4转flvffmpeg -i 1.mp4 -codec copy 1.flv
  1.截取一张352x240尺寸大小的,格式为jpg的图片ffmpeg -i test.asf -y -f image2 -t 0.001 -s 352x240 a.jpg2.把视频的前30帧转换成一个Animated Gifffmpeg -i test.asf -vframes 30 -y -f gif a.gif3.截取指定时间的缩微图ffmpeg -i test.avi -y -f image2 -ss 8 -t 0.001 -s 350x240 test.jpg

3.4 音视频录制

  1.录制视频(默认参数)桌面:ffmpeg -f dshow -i video="screen-capture-recorder" v-out.mp4摄像头: ffmpeg -f dshow -i video="Integrated Webcam" -y v-out2.flv (要根据自己摄像头名称)2.录制声音(默认参数)系统声音:ffmpeg -f dshow -i audio="virtual-audio-capturer" a-out.aac系统+麦克风声音:ffmpeg -f dshow -i audio="麦克风 (Realtek Audio)"-f dshow -i audio="virtual-audio-capturer" -filter_complex amix=inputs=2:duration=first: dropout_transition=2 a-out2.aac3.同时录制声音和视频(默认参数)ffmpeg -f dshow -i audio="麦克风(Realtek Audio)" -f dshow -i audio="virtual-audio- capturer" -filter_complex amix=inputs=2:duration=first:dropout_transition=2 -f dshow -i video="screen-capture-recorder" -y av-out.flv

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

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

相关文章

【J-Flash基本使用总结】

【J-Flash基本使用总结】 VX:hao541022348 ■ 烧录文件■ 创建新的工程■ 烧录模式-SWD模式■ J-Flash下载程序到单片机 ■ J-Flash拼接多个hex或bin文件■ J-Flash读单片机的option byte■ J-Flash读单片机Flash数据■ 将读出来的文件用jflash烧录到其他的芯片■ 设…

【C++ 程序设计入门基础】- 第4节-函数

1、函数 函数是对实现某一功能的代码的模块化封装。 函数的定义&#xff1a; 标准函数&#xff1a; 输入 n 对整数的 a、b &#xff0c;输出它们的和。 #include <iostream> #include <windows.h> using namespace std;int add(int a,int b);//函数原型声明int…

Python数据分析案例34——IMDB电影评论情感分析(Transformer)

电影评论的情感分析 案例背景 很多同学对电影系列的数据都比较喜欢&#xff0c;那我就补充一下这个最经典的文本分类数据集&#xff0c;电影情感评论分析。用神经网络做。对国外的英文评论文本进行分类&#xff0c;看是正面还是负面情感。 数据集介绍 数据集&#xff1a;IMDb…

java每日一题——ATM系统编写(答案及编程思路)

前言&#xff1a; 基础语句学完&#xff0c;也可以编写一些像样的程序了&#xff0c;现在要做的是多加练习&#xff0c;巩固下知识点&#xff0c;打好基础&#xff0c;daydayup! 题目&#xff1a;模仿银行ATM系统&#xff0c;可以创建用户&#xff0c;存钱&#xff0c;转账&…

VMware workstation安装debian-12.1.0虚拟机(最小化安装)并配置网络

VMware workstation安装debian-12.1.0虚拟机&#xff08;最小化安装&#xff09;并配置网络 Debian 是一个完全自由的操作系统&#xff01;Debian 有一个由普罗大众组成的社区&#xff01;该文档适用于在VMware workstation平台安装最小化安装debian-12.1.0虚拟机。 1.安装准…

索引和视图

索引和视图 一、实验目的 学会使用SQL语句CREATE INDEX创建索引。学会使用SQL语句DROP INDEX删除索引。学会使用SQL语句CREATE VIEW创建视图的用法。掌握使用SQL语句ALTER VIEW修改视图的方法。了解删除视图的SQL语句DROP VIEW的用法。 二、实验内容SQL语句CREATE INDEX创建索…

谷粒商城-缓存使用分布式锁SpringCache(5天)

缓存使用 1.1.1 哪些数据适合放入缓存 即时性、 数据一致性要求不高的 访问量大且更新频率不高的数据&#xff08;读多&#xff0c; 写少&#xff09; 例如&#xff1a;电商类应用&#xff0c; 商品分类&#xff0c; 商品列表等适合缓存 本地缓存 使用Map进行本地缓存 本地缓存…

基于JavaWeb+BS架构+SpringBoot+Vue智慧党建系统设计与实现

基于JavaWebBS架构SpringBootVue智慧党建系统设计与实现 文末获取源码Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 文末获取源码 Lun文目录 1 概 述 1 1.1 课题研究背景 1 1.2 课题研究意义 1 1.3 课题研究内容 2 2 系统开…

MySQL 基于 GTID 主从复制

GTID 定义 GTID 是 MySQL 事务标识&#xff0c;为每一个提交的事务都生成一个标识&#xff0c;并且是全局唯一的&#xff0c;这个特性是从 MySQL5.6 引进的。 组成 GTID 是由 UUID TID&#xff0c;UUID 是MySQL的唯一标识&#xff0c;每个MySQL实例之间都是不同的。TID是代表…

速度之巅-位图算法

1:简单通俗来讲就是速度非常之快 以字节为单位,用一位一位寻找 #include <iostream> using namespace std; //加载数据 //就是将能被3整除的位设置为:1 void init(char* data, int len) {unsigned int n len * 8;for (unsigned i 0; i < n; i){if (i%30){//判断能被…

DNS从入门到精通

DNS从入门到精通 Dns从入门到精通 DNS从入门到精通一、DNS原理二、企业高速缓存dns的搭建三、DNS相关名词解释四、权威DNS搭建编辑子配置文件&#xff08;主要写我们维护的域zone)开始解析 五、权威dns中的数据记录种类及应用编辑子配置文件&#xff08;主要写我们维护的域zone…

图像提取大师:轻松从指定时长中获取某帧的图片,视频剪辑方法

在数字媒体时代&#xff0c;视频和图像已成为生活中不可或缺的部分。要从视频中提取某一帧作为图片&#xff0c;或者在视频剪辑时要采用其他的方法来达到需求的效果。下面来看云炫AI智剪如何轻松地从指定时长的视频中获取某帧的图片&#xff0c;视频剪辑的新方法。 视频中按指定…

JMeter定时器之同步定时器

JMeter定时器之同步定时器 1. 背景2. 目的3. 介绍4. 例子4.1单个请求4.2多个请求 1. 背景 在实际生活中大家肯定遇到过一种场景&#xff0c;就是在某一时间或某一时刻&#xff0c;某件商品进行抢购&#xff0c;相当于秒杀&#xff1b;但是用JMeter进行测试的时候&#xff0c;如…

tcpdump常用命令

tcp首部解析&#xff1a; tcp-首部_tcp首部-CSDN博客 ref&#xff1a; Home | TCPDUMP & LIBPCAP https://www.cnblogs.com/onlyforcloud/p/4396126.html tcpdump 详细使用指南&#xff08;请尽情食用&#xff09;_tcpdump指定ip和端口-CSDN博客 【博客192】抓取报文查…

【Python机器学习】SVM——线性模型与非线性特征

SVM&#xff08;核支持向量机&#xff09;是一种监督学习模型&#xff0c;是可以推广到更复杂模型的扩展&#xff0c;这些模型无法被输入空间的超平面定义。 线模型在低维空间中可能非常受限&#xff0c;因为线和平面的灵活性有限&#xff0c;但是有一种方式可以让线性模型更加…

软件测试|Python数据可视化神器——pyecharts教程(十四)

使用pyecharts绘制极坐标系图 简介 极坐标系图是一种用于可视化数据的坐标系&#xff0c;与常见的直角坐标系图&#xff08;笛卡尔坐标系&#xff09;不同&#xff0c;它使用角度和半径来表示数据点的位置。极坐标系图非常适合展示数据的循环性和周期性关系&#xff0c;以及数…

VSCode 正则表达式 匹配多行

VS Code 正则表达式匹配多行 (.|\n)*? //test.js const test {str: VS Code 正则表达式匹配多行VS Code 正则表达式匹配多行VS Code 正则表达式匹配多行VS Code 正则表达式匹配多行VS Code 正则表达式匹配多行VS Code 正则表达式匹配多行VS Code 正则表达式匹配多行VS Code …

【Rust】get_local_info 0.2.4发布

发布0.2.4&#xff0c;修正0.2.3&#xff08;[我的Rust库更新]get_local_info 0.2.3-CSDN博客&#xff09;中存在的峰值算法bug&#xff0c;现已提交力扣并通过&#xff0c;耗时0ms

C++学习笔记——SLT六大组件及头文件

目录 一、C中STL&#xff08;Standard Template Library&#xff09; 二、 Gun源代码开发精神 三、 实现版本 四、GNU C库的头文件分布 bits目录 ext目录 backward目录 iostream目录 stdexcept目录 string目录 上一篇文章&#xff1a; C标准模板库&#xff08;STL&am…

为什么自动测试要发现缺陷?

Q:为什么你做了那么多自动测试&#xff0c;却很少能发现缺陷&#xff1f; A:为什么自动化测试要发现缺陷&#xff1f; 在讨论问题时&#xff0c;首先要对问题是否存在达成一致&#xff0c;而不是直接跳到解决方案。 前一阵子&#xff0c;笔者在某个高端测试群里面丢了一个小…