简单整理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.mp4
    ffplay buweishui.mp3
  2.播放网络流
    ffplay -window_title "rtmp stream" rtmp://202.69.69.180:443/webcast/bshdlive-pc
  3.播放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.rgb
    ffplay -pixel_format rgb24 -video_size 320x240 -framerate 5 -i rgb24_320x240.rgb
  5.播放PCM数据
    ffplay -ar 48000 -ac 2 -f f32le 48000_2_f32le.pcm
  6.音视频同时变速
    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.mp4
  2.四宫格
	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.mp4
	  ffmpeg -i test.mp4 -vcodec copy -an video.mp4
  2.提取视频 
	  保留编码格式:ffmpeg -i test.mp4 -vcodec copy -an test_copy.h264
	  指定格式:ffmpeg -i test.mp4 -vcodec libx264 -an test.h264
  3.提取音频
	  保留编码格式: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.ts
  2.修改音视频码率
	  ffmpeg -i test.mp4 -b:v 400k -b:a 192k output_bva.mp4
  3.修改视频分辨率
	  ffmpeg -i test.mp4 -s 480x270 output_480x270.mp4
  4.修改音频采样率
	  ffmpeg -i test.mp4 -ar 44100 output_44100hz.mp4
  5.截取视频
	  ffmpeg -i believe.mp4 -ss 00:03:00 -t 10 -codec copy 1.mp4
  1.mp4转ts
	  ffmpeg -i 1.mp4 -codec copy -vbsf h264_mp4toannexb 1.ts
  2.mp4转flv
	  ffmpeg -i 1.mp4 -codec copy 1.flv
  1.截取一张352x240尺寸大小的,格式为jpg的图片
	  ffmpeg -i test.asf -y -f image2 -t 0.001 -s 352x240 a.jpg
  2.把视频的前30帧转换成一个Animated Gif
	  ffmpeg -i test.asf -vframes 30 -y -f gif a.gif
  3.截取指定时间的缩微图
  	  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.aac
  3.同时录制声音和视频(默认参数)
	 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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

云联惠 被查 消费积分合法化!——全新消费返利模式!共享购!

大家好 我是吴军 一家软件开发公司的产品经理 今天讲一讲,曾经盛极一时的云联惠,巅峰时期达到一千万的用户,资金6000亿。 前几年云联惠如火如荼,到处都是在宣传云联惠的,小编也略玩了一下下。 当时因为政策的不明朗…

十三、Three场景物体增加发光特效

物体发光效果非常炫酷,本期来讲three场景内物体自带发光效果怎么来实现。本次使用的是threejs138版本,在vue3+vite+ant的项目中使用。 下面来看看实现的效果。绿色罐体有了明显的发光效果。 实现步骤 增加composer.js import { UnrealBloomPass } from three/examples/jsm/po…

【已解决】Linux下执行Shell脚本出现$‘\r‘: command not found

【已解决】Linux下执行Shell脚本出现$‘\r‘: command not found 1、起因2、原因:3、解决方法:(运行以下命令即可修改该脚本格式) 1、起因 今天把 Windows 的项目导入 linux 运行,执行 shell 脚本的时候,报…

(2023版)斯坦福CS231n学习笔记:DL与CV教程 (3) | 正则化与最优化

前言 📚 笔记专栏:斯坦福CS231N:面向视觉识别的卷积神经网络(23)🔗 课程链接:https://www.bilibili.com/video/BV1xV411R7i5💻 CS231n: 深度学习计算机视觉(2017&#xf…

【产品测试】Bug报告的四个元素,你知道吗?

前言 由于任何由人编写的程序都不可避免的存在着不符合测试需求的错误,也就是bug。因此需要一个方法来跟踪、分析和展示那些测试活动,避免偏离最小。这种方法称之为错误跟踪系统。它主要是有效的管理缺陷,实现以下作用: 1)减少由…

Java--业务场景:在Spring项目启动时加载Java枚举类到Redis中

文章目录 前言实现项目启动时加载枚举值到Redis1. 定义EnumInterface接口2. 创建EnumDTO3. 创建ClassUtils工具类4. 创建EnumService接口5. 创建EnumServiceImpl6. 修改枚举类7. 创建ApplicationInit 测试结果 前言 新的一年即将来到,回首2023年,也是学…

深入解析JavaScript中new Function语法

🧑‍🎓 个人主页:《爱蹦跶的大A阿》 🔥当前正在更新专栏:《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》 ​ ​ ✨ 前言 Function是JavaScript中非常重要的内置构造函数,可以用来动态创建函数…

Redis和MySQL如何保持数据一致性

前言 在高并发的场景下,大量的请求直接访问Mysql很容易造成性能问题。所以,我们都会用Redis来做数据的缓存,削减对数据库的请求。但是,Mysql和Redis是两种不同的数据库,如何保证不同数据库之间数据的一致性就非常关键…

Pyside6/PyQt6图标设置必备:窗口图标、软件图标、任务栏图标与系统托盘图标设置详解(含示例源码)

文章目录 📖 介绍 📖🏡 环境 🏡📒 图标设置 📒📝 设置窗口图标📝 设置软件/任务栏图标📝 设置系统托盘图标🎈 添加右键菜单/全局快捷键/隐藏任务栏图标⚓️ 相关链接 ⚓️📖 介绍 📖 在创建图形用户界面(GUI)应用程序时,一个吸引人的图标是必不可少…

day10

1.构造代码块和构造方法的区别 {代码块 } public 类名 () {} 都是实例化一个对象的时候执行的 只不过构造代码块先于构造方法执行的 2.局部变量和成员变量区别局部变量写在方法中,只能在方法体中使用,出了这个方法就不能再使用了成…

AI对决:ChatGPT与文心一言的深度比较

. 个人主页:晓风飞 专栏:数据结构|Linux|C语言 路漫漫其修远兮,吾将上下而求索 文章目录 引言ChatGPT与文心一言的比较Chatgpt的看法文心一言的看法Copilot的观点chatgpt4.0的回答 模型的自我评价自我评价 ChatGPT的优势在这里插入图片描述 文…

【刷题】leetcode 1 . 两数之和

两数之和 两数之和1 思路一 (简单突破)2 思路二 (进行优化)3 思路三 (哈希表 我还不会) 谢谢阅读Thanks♪(・ω・)ノ下一篇文章见!!! 两数…

uniapp的nvue是什么

什么是nvue uni-app App 端内置了一个基于 weex 改进的原生渲染引擎,提供了原生渲染能力。 在 App 端,如果使用 vue 页面,则使用 webview 渲染;如果使用 nvue 页面(native vue 的缩写),则使用原生渲染。一个 App 中可…

USB Redirector本地安装并结合内网穿透实现远程共享和访问USB设备

文章目录 前言1. 安装下载软件1.1 内网安装使用USB Redirector1.2 下载安装cpolar内网穿透 2. 完成USB Redirector服务端和客户端映射连接3. 设置固定的公网地址 前言 USB Redirector是一款方便易用的USB设备共享服务应用程序,它提供了共享和访问本地或互联网上的U…

十五.流程控制与游标

流程控制与游标 1.流程控制1.1分支结构之IF1.2分支结构值CASE1.3循环结构之LOOP1.4循环结构之WHILE1.5循环结构之REPEAT1.6跳转语句之LEAVE语句1.7跳转语句之ITERATE语句 2.游标2.1什么是游标2.2使用游标步骤4.3举例4.5小结 1.流程控制 解决复杂问题不可能通过一个 SQL 语句完…

深度学习基础知识整理

自动编码器 Auto-encoders是一种人工神经网络,用于学习未标记数据的有效编码。它由两个部分组成:编码器和解码器。编码器将输入数据转换为一种更紧凑的表示形式,而解码器则将该表示形式转换回原始数据。这种方法可以用于降维,去噪…

【图形学】直线光栅化算法(DDA算法和Bresenham算法)

在数学上,直线就是由无穷多个点组成的, 在计算机屏幕显示的话, 需要做一些处理,对于光栅显示器,就是用有限多个点去逼近直线, 我们需要知道每一个像素点的坐标(都是整数) 数学上直线的方程如下 y k x b ykxb ykxb,给定直线的起点坐标 P 0 ( x 0 , y…

开源 UI 组件库和开发工具库概览 | 开源专题 No.59

ant-design/ant-design Stars: 87.9k License: MIT Ant Design 是一个企业级 UI 设计语言和 React UI 库。 为 Web 应用程序设计的企业级 UI。提供一套高质量的开箱即用的 React 组件。使用可预测静态类型编写 TypeScript 代码。包含完整的设计资源和开发工具包。支持数十种语…

QT上位机开发(软件的发布和部署)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 我们在读书的时候,如果程序写好了,这个时候一般直接把exe拷贝给老师就可以了。这就是最原始的软件发布。但是,这…

“核弹级“攻击队视角下的监管痛点解决方案

痛点分析及解决方案 一、辖区企业资产分散且不透明 - 传统的监管体系中,政府监管单位往往面临着辖区企业资产分散且不透明的问题。 - 企业无法梳理自身资产,上报的资产台账无法涵盖全部自身资产 - 监管单位精力有限,无法保证辖区企业资产台账…