音视频 ffmpeg ffplay ffprobe命令行

2023-11-10

ffmpeg工具

命令格式

ffmpeg [全局选项] {[输入选项] -i input_url} ... {[输出选项] output_url} ...

帮助命令

# 查看解封装帮助(dhav ffmpeg4.2才有)
ffmpeg -h demuxer=dhav
ffmpeg -h demuxer=dshow
# 查看流过滤器帮助
ffmpeg -h bsf=h264_mp4toannexb
# 查看mp4封装器的选项帮助,比如movflags设置
ffmpeg -h muxer=mp4 -hide_banner
#
ffmpeg -h protocol=rtmp -hide_banner

常用操作

摄像头

# windows 查看dshow设备 录制
ffmpeg.exe -hide_banner -list_devices true -f dshow -i dummy
ffmpeg -f dshow -i video="<device name>" -vcodec libx264 mycamera.mkv
# mac 查看设备 录制
ffmpeg -hide_banner -list_devices true -f avfoundation -i dummy
ffmpeg -f avfoundation -framerate 25 -i "<device name>" mycamera.mp4
ffmpeg -f avfoundation -framerate 25 -i 0 mycamera.mp4
./ffmpeg -hide_banner -f avfoundation -framerate 30 -pixel_format nv12 -i "FaceTime高清摄像头(内建)" -vcodec mpeg4 mycam.mp4

分离音视频

# 分离音频 -vn 表示禁用视频
ffmpeg -i 1.mp4 -vn -y -acodec copy 1.aac
# 分离视频 -an 表示禁用音频
ffmpeg -i 1.mp4 -an -y -vcodec copy 1.mp4
# 获取annexb格式h264裸流
ffmpeg -i 1.mp4 -c:v copy -bsf:v h264_mp4toannexb -an 1.h264

导出图片

ffmpeg -i input.mp4 -qscale:v 2 output_%03d.jpg

合并音视频

# 合并
ffmpeg -i 1.avi -i 1.mp3 -vcodec copy -acodec copy 2.avi

视频格式互转

# mp4 -> h264
ffmpeg -i 1.mp4 -vcodec copy -an -f h264 1.h264
# main/baseline/high - 无b帧,
ffmpeg -i 1.mp4 -vcodec libx264 -profile:v main -pix_fmt yuv420p -s 640x480 -an 2.mp4
ffmpeg -i 1.mp4 -vcodec libx264 -bf 0 -acodec copy 2.mp4
ffmpeg -i 1.mp4 -vcodec libx264 -x264opts "bframes=0" -an 2.mp4
#
ffmpeg -i 1.mp4 -c copy -f hls -hls_playlist_type vod -hls_time 6 -hls_flags single_file 2.m3u8

音频格式互转

# aac to pcm
ffmpeg -y -i 1.aac -acodec pcm_s16le -f s16le -ac 2 -ar 44100 1.pcm
ffmpeg -y -i 1.m4a -acodec pcm_f32le -f f32le -ac 2 -ar 44100 1.pcm
# pcm to aac
ffmpeg -y -acodec pcm_s16le -f s16le -ac 2 -ar 44100 -i 1.pcm 1.aac
# mp3 to aac
ffmpeg -hide_banner -i libai.mp3 -acodec aac libai.aac

视频操作

# 截图一段视频(从10s开始30s长的视频)
ffmpeg -i 1.mp4 -ss 10 -t 30 1_clip.mp4
# 添加字幕(未验证)
ffmpeg -i 1.avi -vf subtitles=titles.srt 1_srt.mp4

音频操作

图像缩放

ffmpeg -s 480x272  -pix_fmt yuv420p -i src01_480x272.yuv -sws_flags bilinear
       -s 1280x720 -pix_fmt yuv420p src01_bilinear_1280x720.yuv
ffmpeg -s 480x272  -pix_fmt yuv420p -i src01_480x272.yuv -sws_flags bicubic
       -s 1280x720 -pix_fmt yuv420p src01_bicubic_1280x720.yuv
ffmpeg -s 480x272  -pix_fmt yuv420p -i src01_480x272.yuv -sws_flags neighbor
       -s 1280x720 -pix_fmt yuv420p src01_neighbor_1280x720.yuv

滤镜

# 模糊
ffmpeg -i 1.mp4 -vf boxblur=1.5:1 2.mp4
ffmpeg -i 1.mp4 -vf -vf smartblur=5:0.8:0 2.mp4
# 降噪
ffmpeg -i 1.mp4 -vf mp=denoise3d  output.mp4
ffmpeg -i 1.mp4 -vf hqdn3d  output.mp4
# 色彩空间或色域
ffmpeg -i 1.mp4 -vf "scale=in_color_matrix=bt709:out_color_matrix=bt601" output.mp4

参数

-h full 显示所有帮助

-hide_banner 隐藏每次打印的banner

-devices                                         显示所有输入输出设备

-formats   -demuxers   -muxers     列表出所有demuxer和muxer、demuxer、muxer

-codecs   -encoders   -decoders    列表出所有编解码器、编码器、解码器

-hwaccels                                       列表出所有支持硬件加速

-pix_fmts                                        显示所有像素格式

-sample_fmts                                显示所有采样格式

-bsfs (h264_mp4toannexb)        显示所有比特流过滤器

-protocols                                      显示所有支持的输入输出协议

-filters                                            显示所有音视频滤镜

-layouts                                         显示音频通道布局

主要参数

-f                   输入输出格式

-y/-n             覆盖/不覆盖输出文件

-c/-codec     常见-c:v、c:v:1 libx264

-ss               起点时间,单位秒,或者00:00:00

-t                 输入输出时间段

-to               读到写到的时间点

-metadata   添加元信息   -metadata title="mytitle"或 -metadata:s:a:0 language=ger

视频参数

  • -vcodec 编解码器 libx264
  • -vf         音频过滤器

音频参数

  • -acodec 编解码器 libfaac
  • -ac         通道数    2
  • -ar         采样率     44100
  • -ab        比特率    128k
  • -af         音频过滤器

ffplay工具

播放指定格式音视频(-loop 0表示一直循环)

# 播放pcm音频
ffplay -ar 16000 -channels 1 -f s16le -i xxx.pcm
ffplay -ar 16000 -ac 1 -f s16le -i xxx.pcm

播放带滤镜音视频

# 视频播放速度加快两倍(只加速视频,不加速音频)
ffplay -i input.mp4 -vf setpts=PTS/2
# 音频播放速度加快两倍
ffplay -i input.mp3 -af atempo=2
# 翻转
ffplay -i input.mp3 -vf hflip
ffplay -i input.mp3 -vf vflip
# 旋转
ffplay -i input.mp3 -vf transpose=1

摄像头和桌面

ffplay -f dshow -i video="<device name>"
ffplay -f gdigrab -i desktop
ffplay -f avfoundation -framerate 25 "FaceTime HD Camera"
ffplay -f avfoundation -framerate 25 "Capture screen 0"
# 指定索引 视频 音频
ffplay -f avfoundation -framerate 25 0
ffplay -f avfoundation -framerate 25 :0
# 视频和音频一起录制
ffplay -f avfoundation -framerate 25 -capture_cursor 1 "0:0"

播放网络地址

ffplay rtsp://yuan:Linux123@192.168.1.101

 ffprobe

# 显示流信息
ffprobe.exe -of xml -show_streams test.dav
# 查看是否含有B帧
ffprobe -v quiet -show_frames -select_streams v test.mp4 | find "pict_type=B"
#
ffprobe -show_format -show_streams libai.aac

 参考

ffmpeg文档

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

音视频 ffmpeg ffplay ffprobe命令行 的相关文章

  • 使用 MediaRecorder 录制屏幕特定视图

    我想录制特定的屏幕视频View链接只想记录里面执行的动作LinearLayout 现在 MediaRecorder正在录制整个屏幕 如何录制屏幕的特定部分 MediaRecorder 通过媒体投影API 记录整个屏幕 至少从 Android
  • 将 H264 视频转换为原始 YUV 格式

    是否可以使用 ffmpeg 从 H264 编码视频创建原始 YUV 视频 我想用 matlab 打开视频并逐帧访问 Luma Cb 和 Cr 分量 是的 您可以 您只需指定像素格式即可 要获取格式的完整列表 ffmpeg pix fmts
  • 如何使用android ndk r9b为Android编译FFMPEG

    我想设计一个Android应用程序 可以通过FFMPEG命令播放和编辑视频 但我不知道如何在Android上使用FFMPEG 我尝试过从Google搜索到的许多方法 但它们太旧了 无法实现 现在 FFMPEG的最新版本是2 1 1 Andr
  • ffmpeg:音频样本的字节顺序

    我使用 ffmpeg 的 avcodec 从我的 C 应用程序中的音乐文件中检索原始音频样本 对于我测试的文件 这些文件样本的字节序似乎是小字节序 但我想知道对于我尝试解码的所有文件是否总是如此 即来自 ffmpeg 的实现或至少它的体系结
  • 如何使用 ffmpeg 将两个视频/音频流混合为一个

    我有两个视频 v1 flv 和 v2 flv 想要创建 v3 flv 其中包含来自 v1 flv 的视频流以及来自 v1 flv 和 v2 flv 的 混合 音频流 使用 ffmpeg 命令可以实现类似的操作吗 谢谢 我认为使用 ffmpe
  • 如何仅在使用 ffmpeg 添加相同速度的分离音频流时更改视频速度?

    我正在使用 ffmpeg 作为视频过滤器 但是 当我改变视频速度时 我遇到了问题 音频比视频长 ffmpeg i INPUT mp4 filter v setpts 0 5 PTS shortest y preset ultrafast O
  • 如何将 MP3 音频文件读入 numpy 数组/将 numpy 数组保存到 MP3?

    有没有办法从 MP3 音频文件中读取 写入 MP3 音频文件numpy具有类似 API 的数组scipy io wavfile read https docs scipy org doc scipy 0 14 0 reference gen
  • Ffmpeg 无法正确转换为 ogg [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在使用 ffmpeg 在我的网站上转换音频和视频 Ffmpeg 可以正确转换为其他格式 如 mp3 mp4 等 但无法正确转换为 ogg 虽然 f
  • 使用 Coldfusion 的 CFFILE 标签监控 FFMpeg 的进度日志

    我想学习如何使用 ColdFusion 中的 CFFILE 标签来读取文本文件的内容 就我而言 该文本文件是 FFMpeg 在对媒体文件进行转码时生成的进度日志 我想编写一个 ColdFusion 脚本 该脚本将定期轮询进度日志 直到日志表
  • 使用 FFMPEG 添加覆盖并最少重新编码

    FFMPEG 对于剪切视频的一部分非常有用 而无需重新编码视频 我知道也可以使用 FFMPEG 添加叠加图像到视频的某个部分 例如从 10 秒到 20 秒 我的问题是 如果我对图像进行叠加 整个视频是否会因此而重新编码 或者只对相关的持续时
  • FFMPEG波形透明,背景纯色

    我正在尝试使用 ffmpeg 生成波形 我希望背景为纯色 实际波形为透明 以下部分实现了我想要的 除了有黑色背景 我希望能够将其更改为任何颜色 但波形是透明的 我怎样才能用 ffmepg 实现这个目标 ffmpeg i input mp3
  • Python FFmpeg查询rtsp太慢

    目前 我正在尝试使用 python 和 FFmpeg 来查询原始格式为 h264 的 rtsp 数据 直播流视频的信息为 fps 29 分辨率 1280 720 我希望我可以以相同的格式 h264 查询数据并将其放入python队列中以便将
  • Android 中的 FFMpeg jni?

    我已经构建了 Bambuser http bambuser com opensource 提供的 FFMPEG 可执行文件和库 所以我设法构建了 Android 可执行文件和库 如何在 Eclipse 项目中链接这些库并从 Java 调用
  • 如何启用 FFMPEG 日志记录?

    我想调试 ffmpeg 我添加以下代码来打印日志 av log s AV LOG PANIC fmt or printf msg 但这行不通 没有任何调试信息 然后我启用调试构建选项 export COMMON FF CFG FLAGS C
  • FFMPEG:将 YUV 数据转储到 AVFrame 结构中

    我正在尝试转储YUV420数据进入AVFrameFFMPEG 的结构 从下面的链接 http ffmpeg org doxygen trunk structAVFrame html http ffmpeg org doxygen trunk
  • ffmpeg 配置复杂过滤器时出错

    ffmpeg 命令存在一些问题 也许有人可以指出我正确的方向 我使用此链接来构建我的命令 那么问题 https stackoverflow com questions 7333232 how to concatenate two mp4 f
  • 如何将AVFrame转换为glTexImage2D使用的纹理?

    如您所知 AVFrame 有 2 个属性 pFrame gt data pFrame gt linesize 当我从视频 sdcard test mp4 android平台 读取帧后 并将其转换为RGB AVFrame副 img conve
  • FFMPEG Seeking 带来音频伪影

    我正在使用 ffmpeg 实现音频解码器 在读取音频甚至搜索已经可以工作时 我无法找到一种在搜索后清除缓冲区的方法 因此当应用程序在搜索后立即开始读取音频时 我没有任何工件 avcodec flush buffers似乎对内部缓冲区没有任何
  • 有没有更有效的方法通过ffmpeg批量添加水印和加入视频?

    我有这个批处理文件 使用 ffmpeg 在我的视频中添加徽标 然后添加简介 但需要 10 小时到一天的时间 具体取决于我需要添加水印的数量 是否有更有效的方法来实现此目的 视频有时具有不同的分辨率 因此我无法删除到 1280 720 尺寸的
  • ffmpeg 将 m4s 转换为 mp4

    我正在研究 DASH 试图为最终用户优化 QoE 我有一个视频 并使用 ffmpeg 将其编码为不同的比特率 一切都很好 并且可以使用 dash 播放该视频 我想要的是将用户收到的片段合并为一个 m4 并将该 m4 转换为 mp4 我在 f

随机推荐

  • java 16进制与图片互转

    十六进制转成图片 十六进制转成图片 author Administrator public static void saveToImgFile String src String output if src null src length
  • 使用JMS进行消息传递

    你需要什么 大约 15 分钟 IntelliJ IDEA或其他编辑器 JDK 1 8或更高版本 Maven 3 2 你会建立什么 本指南将指导您完成使用 JMS 代理发布和订阅消息的过程 您将构建一个应用程序 该应用程序使用Spring的
  • 关于项目属性书写应该严重注意的问题

    这样马马虎虎不注意属性的书写细节 会导致属性查询或者注入失败 public class Goods private Integer goodsId private String goodsName private String goodsT
  • C#学习笔记 常用的集合

    列表List lt T gt 列表List lt T gt 实现了IList ICollection IEnumberable IList接口 可以向该列表中动态的添加 删除 查找元素 如果列表中的元素满了 会动态分配一个容量是原来两倍的列
  • Docker 的基本概念和优势

    Docker是一个开源的容器化平台 可以将应用程序和所有依赖项打包在一起 形成一个独立的 可移植的容器 以下是Docker的基本概念和优势 基本概念 Docker镜像 Docker镜像是一个包含应用程序和所有依赖项的文件系统 它可以用来创建
  • 服务器系统如何账务处理,云服务器费用账务处理

    云服务器费用账务处理 内容精选 换一换 用户支付订单后 如果收到云服务器开通失败的短信 请致电华为云客服中心电话4000 955 988 客服会协助用户排除故障 开通云服务器 如果故障无法及时排除 用户可以选择取消订单 客服会做退费处理 将
  • Maven项目,本地jar包导入手动导入到Maven库中

    当你的项目 由于网络或者环境这些问题 无法从maven中央仓库更新jar包到本地的时候 可以尝试下面方法 手动添加jar包到Maven仓库 方法一 推荐 1 需要先拿到你的jar包 copy到本地 例如我的就是hutool all 5 8
  • sql注入详细过程

    前提 mysql5 0以上版本包含内置的information schema数据库 它储存着mysql所有的数据库和表结构信息 利用该数据库可以查询到所有的数据库和表的内容 一 5 0 暴力破解的方式获取数据 1 原理 当我们的Web ap
  • 运维工程师绩效考核表_运维人员初步 度绩效考核表

    姓 名 部 门 岗 位 上级领导 时 间 考核分类 考核维 度 权重 指标 数据来源 考核评分 复核 10 计划合理 偏差范围可控 10 分 考评 30 按计划完成的时间 30分 考评 10 机房设备的是否正常运行 10 考评 10 网站的
  • 最大流算法 - 标号法

    标号法求最大流 图论中网络的相关概念见上篇博客 算法基本思想 从某个初始流开始 重复地增加流的值到不能再改进为止 则最后所得的流将是一个最大流 为此 不妨将每条边上的流量设置为0作为初始流量 为了增加给定流量的值 我们必须找出从发点到收点的
  • python3.11安装, 解决pip is configured with locations that require TLS/SSL问题

    系统 centos7 4 虚拟机 python版本 本机自带的2 7 5 以及参考python安装的python3 11 pip版本 本机自带的8 1 2 参考pip安装 升级升级到了20 3 4 pip3版本为22 3 1 openssl
  • FPGA实战小项目2

    基于FPGA的贪吃蛇游戏 基于FPGA的贪吃蛇游戏 基于fpga的数字密码锁ego1 基于fpga的数字密码锁ego1 基于fpga的数字时钟 basys3 基于fpga的数字时钟 basys3
  • 正点原子STM32(基于HAL库)4

    目录 ADC 实验 ADC 简介 单通道ADC 采集实验 ADC 寄存器 硬件设计 程序设计 下载验证 单通道ADC 采集 DMA 读取 实验 ADC DMA 寄存器 硬件设计 程序设计 下载验证 多通道ADC 采集 DMA 读取 实验 A
  • 图的邻接矩阵与邻接表的建立,c/c++描述

    图里数据节点是多对多的关系 一个节点有多个前驱 也有多个后继 甚至还有无向图 不区分前驱和后继 只需要节点之间有邻接关系即可 因此 描述这种数据关系 需要新的数据结构 图有顶点集和边集组成 顶点代表一个数据节点 边代表数据顶点间的邻接关系
  • impdp参数+impdp交互模式的命令列表

    impdp参数 1 help 是否显示用于导入的联机帮助 2 exclude 排除特定的对象豢型 3 directory 让转储文件 日志文件和sql文件使用的目录对象 4 dumpfile 需要导入的转储文件的列表 5 include 包
  • c语言如何定义标识符 常量 变量,标识符、常量和变量

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1 单选题 C语言主要是借助以下哪个功能来实现程序模块化 A 定义函数 B 定义常量和外部变量 C 三种基本结构语句 D 丰富的数据类型 参考答案 A 参考解析 C语言用函数实现软件的模块化设计
  • 小程序原理

    开发过一段时间小程序了 对于我们现在使用的业务来说 使用小程序开发上手很快 所以反思了一下 那么小程序的原理到底是怎么样的呢 我自己总结一下 小程序的架构 官网原话 当小程序基于 WebView 环境下时 WebView 的 JS 逻辑 D
  • deepfake教程

    https github com iperov DeepFaceLab 首先下载根据不同系统不同显卡分类下载对应版本 能在文件夹下看到以下命令 一 clear workspace 重置 一 提取帧 extract images from v
  • k8s占用的端口号用 kubectl get svc 和lsof -i、netstat 命令都查不到

    如果你使用了 kubectl get svc 和 lsof i 或 netstat 命令查看端口 却没有查到 Kubernetes 的服务 有可能是因为 Kubernetes 服务运行在容器内部 在这种情况下 你可以通过以下步骤来查看 Ku
  • 音视频 ffmpeg ffplay ffprobe命令行

    ffmpeg工具 命令格式 ffmpeg 全局选项 输入选项 i input url 输出选项 output url 帮助命令 查看解封装帮助 dhav ffmpeg4 2才有 ffmpeg h demuxer dhav ffmpeg h