简单整理FFmpeg相关命令集

news2025/2/28 17:42:19

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

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

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

相关文章

使用ffmpeg进行视频截取

1 原始视频信息 通过ffmpeg -i命令查看视频基本信息 ffmpeg version 6.1-essentials_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developersbuilt with gcc 12.2.0 (Rev10, Built by MSYS2 project)configuration: --enable-gpl --enable-version3 --enable-sta…

【Kotlin】协程的字节码原理

前言 协程是Koltin语言最重要的特性之一,也是最难理解的特性。网上关于kotlin协程的描述也是五花八门,有人说它是轻量级线程,有人说它是无阻塞式挂起,有人说它是一个异步框架等等,众说纷芸。甚至还有人出了书籍专门介…

[笔记]深度学习入门 基于Python的理论与实现(一)

代码仓库 gitee 1. python 入门 1.5之前是python安装和基础语法, 我直接跳过了 1.5 Numpy 深度学习中经常出现数组和矩阵运算,Numpy 的数组类 numpy.array 提供了很多便捷的方法 1.5.1 导入 Numpy import numpy as np1.5.2 生成 Numpy 数组 np.array()&#xf…

云计算概述(发展过程、定义、发展阶段、云计算榜单)(一)

云计算概述(一) (发展过程、定义、发展阶段、云计算榜单) 本文目录: 零、00时光宝盒 一、前言 二、云计算的发展过程 三、云计算的定义 四、云计算发展阶段 五、云计算公司榜单看云计算兴衰 六、参考资料 零、0…

数据结构与算法教程,数据结构C语言版教程!(第四部分、字符串,数据结构中的串存储结构)二

第四部分、字符串,数据结构中的串存储结构 串存储结构,也就是存储字符串的数据结构。 很明显,字符串之间的逻辑关系也是“一对一”,用线性表的思维不难想出,串存储结构也有顺序存储和链式存储。 提到字符串&#xff…

《SPSS统计学基础与实证研究应用精解》视频讲解:SPSS运行环境设置

《SPSS统计学基础与实证研究应用精解》1.8 视频讲解 视频为《SPSS统计学基础与实证研究应用精解》张甜 杨维忠著 清华大学出版社 一书的随书赠送视频讲解1.6节内容。本书已正式出版上市,当当、京东、淘宝等平台热销中,搜索书名即可。本书旨在手把手教会使…

【机器学习300问】8、为什么要设计代价函数(损失函数)?它有什么用?

一、先介绍一下线性回归模型 (1)基本概念理解 文字解释:线性回归模型顾名思义,他处理的回归问题,是监督学习的一种。线性回归模型是一种预测模型,其基础是假设目标值和输入值之间存在线性关系。通过一条最…

矩阵快速幂技巧练习(一)— 经典牛问题

上一篇文章简单介绍了斐波那契数列的矩阵乘法,并做了一个小推广,这篇文章来小试牛刀,做一个经典的练习题。 求斐波那契数列矩阵乘法的方法 题目 第一年农场有一只成熟的母牛A,往后的每年: 每一只成熟的母牛都会生一只…

websocket项目 聊天室

1.项目概述 这个项目是一个基本的实时聊天应用,适用于小型团队或群体。提供了多个聊天室供用户选择。可以通过该代码进行进一步的扩展和定制,例如添加聊天机器人、改进界面等。 2.技术栈 flask,boostrapt,websocket&#xff0c…

【Rust】get_local_info 0.2.4发布

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

[笔记]深度学习入门 基于Python的理论与实现(二)

2. 感知机 感知机(perceptron)是由美国学者 Frank Rosenblatt 在 1957 年提出的。它作为神经网络(深度学习)的起源的算法,是学习神经网络和深度学习的重要一环 严格地说,本章所说的感知机应该称为‘人工神经元’或‘朴素感知机’&…

排序算法8----归并排序(非递归)(C)

1、介绍 归并排序既可以是内排序(在内存上的数据排序),也可以是外排序(磁盘上)(硬盘)(在文件中的数据排序)。 其他排序一般都是内排序。 区别于快速排序的非递归&#xf…

uni-app的学习【第三节】

五 运行环境判断与跨端兼容 uniapp为开发者提供了一系列基础组件,类似HTML里的基础标签元素,但uni-app的组件与HTML不同,而是与小程序相同,更适合手机端使用。 虽然不推荐使用 HTML 标签,但实际上如果开发者写了`div`等标签,在编译到非H5平台时也会被编译器转换为 `view`…

爬虫-8-数据存储-mysql

#mysql占空间最小吧,数据存储没问题吧 (//∇//)

Flowable:BpmnModel API

之前都是使用工具在绘制流程图,但是还是很少去认真的去看这个xml,有时候我们要从xml中分析获取一些结果,这个时候就要对xml及对应的api有足够的认识。 一:重新认识bpmn definitions:根节点用于定义流程。 bpmndi:BPMND…

台式OLED透明屏的6大基本要素

台式 OLED 透明屏作为一种创新的显示技术,正逐渐走进人们的视野。本文将为您全面介绍台式 OLED 透明屏的各个方面,包括类别、尺寸、技术参数原理、应用、主要厂家(尼伽)以及价格因素。 一、类别台式 OLED 透明屏根据不同的需求和应…

Java 实现双链表

文章目录 双链表(Doubly Linked List)是一种常用的数据结构,它与单链表相似,但每个节点除了包含指向下一个节点的指针外,还包含一个指向前一个节点的指针。 双链表的节点由三部分组成:数据域(存…

帆软报表11.0.19增加postgres数据源方案

项目使用postgres数据库,帆软报表集成开发时需要手工增加该数据源。 https://help.fanruan.com/finereport/doc-view-2563.html 但增加数据源后测试报告无此驱动,经查看文档,现在是通过驱动管理来上传, 但新版又不允许上传驱动JAR…

威尔·库尔特《趣学贝叶斯统计:橡皮鸭、乐高和星球大战中的统计学》学习笔记(1):以A/B测试为例学习贝叶斯统计

主要是新学期的概率论的作业要求:Write a summary (no more than of a page) of your experience with an application of probability to a real-life situation (e.g., an engineering problem. –How was probability used to model the phenomena/situation?…

力扣刷题(无重复字符的最长子串)

3. 无重复字符的最长子串https://leetcode.cn/problems/longest-substring-without-repeating-characters/ 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是…