【FFmpeg】ffplay 命令行参数 ⑤ ( 设置音频滤镜 -af 参数 | 设置统计信息 -stats 参数 | 设置同步时钟类型 -sync 参数 )

本文主要是介绍【FFmpeg】ffplay 命令行参数 ⑤ ( 设置音频滤镜 -af 参数 | 设置统计信息 -stats 参数 | 设置同步时钟类型 -sync 参数 ),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、ffplay 命令行参数 - 音频滤镜
    • 1、设置音频滤镜 -af 参数
    • 2、常用的 音频滤镜 参数
    • 3、音频滤镜链 示例
  • 二、ffplay 命令行参数 - 统计信息
    • 1、设置统计信息 -stats 参数
    • 2、关闭统计信息 -nostats 参数
  • 三、ffplay 命令行参数 - 同步时钟类型
    • 1、设置同步时钟类型 -sync 参数
    • 2、同步时钟类型参数选项列举





一、ffplay 命令行参数 - 音频滤镜



1、设置音频滤镜 -af 参数


ffplay 命令的 -af 参数用于 设置 音频滤镜 ( Audio Filter ) , 用于 对 音频流 应用 各种 处理 和 转换 效果 ;

多个 音频滤镜 可以组合在一起 , 形成一个 " 音频滤镜链 " , 音频滤镜 之间 使用 逗号 隔开 , 并按照指定的顺序 将 转换效果 应用于 正在播放的 音频 ;

" 音频滤镜链 " 是一个 描述 音频滤镜 及其 参数 的字符串 , 可以通过 该参数 来 设置 音效 , 调整音量 , 改变音频 采样率 , 进行 音频 重采样 ;

设置 " 音频滤镜链 " 会 降低 音频播放性能 , 尤其是 正在 处理高质量或高采样率的音频时 ;

使用 复杂的 " 音频滤镜链 " 时 , 建议关闭不必要的程序和功能 , 以确保流畅的播放体验 ;


单个 音频滤镜 示例 : 执行

ffplay -af "volume=0.5" fengjing.mp4

命令 , 将音量设置为 50% 音量 , 执行效果如下 :

在这里插入图片描述


2、常用的 音频滤镜 参数


ffplay 的 -af 参数 可以 设置 一个或多个 音频滤镜 , 这些 滤镜 可以改变音频的 音量 / 采样率 / 声道数 等效果 , 下面是 一些 常用的 -af 参数选项 :

  • volume=volume : 设置 音频音量 , volume 是一个 乘数 , 可以设置一个 小数 或 整数 ,

    • volume=0.5 就是将音量降低一半 ,
    • volume=2 是 将音量 提高为原来的 2 倍 ;
  • atempo=tempo : 设置 音频播放速度 , 参数值是一个浮点数 , tempo 参数值 > 1 时 音频播放速度加快 , 小于 1 时音频播放速度减慢 ;

    • atempo=0.5 设置 0.5 倍速度播放 ;
    • atempo=2.0 设置 2 倍速度播放 ;
  • aresample=resampler_options : 设置音频重采样 ; 该 音频滤镜 可以用来改变音频的 采样率 / 格式 / 声道布局 ;

    • aresample=44100 可以将 音频的采样率 从 原始值 改变为 44100 Hz ;
  • aformat=sample_fmts : 强制转换音频样本格式 , 如 : 修改 位深度 和 编码方式 ;

    • aformat=sample_fmts=s16 将 播放的音频 转为 16 位 有符号整数 编码 ;
    • ffplay 的 -af 参数主要用于实时应用音频效果 , 如调整音量 / 改变播放速度等 ;
    • 在 播放前 转换音频格式 , 建议使用 ffmpeg 命令 , 先转码 , 再使用 ffplay 播放 ;
  • achannelmap=channel_layout : 重新映射音频声道 ;

  • bass=gain : 调整低音增益 ;

  • treble=gain : 调整高音增益 ;


3、音频滤镜链 示例


多个 音频滤镜 示例 : 执行

ffplay -af "volume=0.25,atempo=2.0" fengjing.mp4

命令 , 将音量设置为 0.25 倍 , 播放速度设置为 2 倍 , 执行效果如下 :

在这里插入图片描述





二、ffplay 命令行参数 - 统计信息



1、设置统计信息 -stats 参数


ffplay 命令的 -stats 参数 用于 在 命令行 中 打印 统计信息 , 这些统计信息 包括

  • 显示流的持续时间
  • 编解码器参数
  • 流中的当前位置
  • 音频 / 视频同步差值 ;

该 参数 选项 在默认情况下 是 启用状态 , 在 默认的 视频播放 过程中 可以看到这些统计信息 ;


执行

ffplay fengjing.mp4

命令 , 下图中 红色矩形框 中的内容 , 就是 播放时的 统计信息 ;

在这里插入图片描述

统计信息内容如下 :

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'fengjing.mp4':  0B f=0/0Metadata:major_brand     : isomminor_version   : 512compatible_brands: mp41creation_time   : 2024-02-09T06:29:29.000000Zencoder         : Bandicam 4.5.0.1587 / GDI / Nvidia NVENCencoder-eng     : Bandicam 4.5.0.1587 / GDI / Nvidia NVENCDuration: 00:01:01.78, start: 0.000000, bitrate: 1783 kb/sStream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 752x420 [SAR 1:1 DAR 188:105], 1580 kb/s, 28.61 fps, 30 tbr, 30k tbn, 60 tbc (default)Metadata:creation_time   : 2024-02-09T06:29:29.000000Zhandler_name    : VideoHandlervendor_id       : [0][0][0][0]Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 195 kb/s (default)Metadata:creation_time   : 2024-02-09T06:29:29.000000Zhandler_name    : SoundHandlervendor_id       : [0][0][0][0]37.74 A-V: -0.030 fd=  67 aq=   30KB vq=  108KB sq=    0B f=0/0

部分内容解析 :

  • Duration: 00:01:01.78, start: 0.000000, bitrate: 1783 kb/s : 是 码流长度 1 分钟零 1 秒 , 开始时间 0 , 比特率是 1783 kb/s ;
  • 37.74 A-V: -0.030 : 当前播放到了 37.74 秒 , 音视频 差值 -0.030 秒 ;
  • creation_time : 2024-02-09T06:29:29.000000Z : 表示当前音频的创建时间是 2024 年 2 月 9 号 ;

2、关闭统计信息 -nostats 参数


ffplay 命令的 -nostats 参数 用于 关闭 统计信息 , 使用该参数后 , 不再显示 如下信息 :

  • 显示流的持续时间
  • 编解码器参数
  • 流中的当前位置
  • 音频 / 视频同步差值 ;

执行

ffplay -nostats fengjing.mp4

命令 , 可以关闭 统计信息 ;

在下图中 , 可以看到 下半部分 都是空白的 , 没有打印出 播放时 的 统计信息 ;

在这里插入图片描述





三、ffplay 命令行参数 - 同步时钟类型



1、设置同步时钟类型 -sync 参数


ffplay 命令的 -sync 参数 用于 设置 同步时钟类型 , 可以指定

  • 音频流时钟
  • 视频流时钟
  • 外部时钟

三种 时钟 选项 , 同步时钟类型 又称为 " 主时钟 " , 这是 ffplay 播放器 用于同步 音频流 和 视频流 的时钟 ;


执行

ffplay -sync audio fengjing.mp4

命令 , 将 音频流时钟 设置为 主时钟 ;

在这里插入图片描述


2、同步时钟类型参数选项列举


ffplay 命令 -sync 参数值 选项 :

  • audio : 将 音频流时钟 设置为 主时钟 , 该设置 是 默认设置 , ffplay 将 根据 音频流的播放速度 来 调整视频流 的播放速度 , 以确保 音频 和 视频 之间的同步 ;
  • video : 将 视频流时钟 设置为 主时钟 , ffplay 将 根据 视频流的播放速度 来调整 音频流的播放速度 ;
  • ext : 使用 外部时钟 ; 使用 外部设备 或 信号作为 主时钟 , 视频流的播放速度 和 音频流的播放速度 与 其他设备或信号 的 时钟 进行 同步 ;

执行

ffplay -sync video fengjing.mp4

命令 , 将 视频流时钟 设置为 主时钟 ;

在这里插入图片描述


执行

ffplay -sync ext fengjing.mp4

命令 , 将 外部电脑的时钟 设置为 主时钟 ;

在这里插入图片描述

这篇关于【FFmpeg】ffplay 命令行参数 ⑤ ( 设置音频滤镜 -af 参数 | 设置统计信息 -stats 参数 | 设置同步时钟类型 -sync 参数 )的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/695246

相关文章

linux hostname设置全过程

《linuxhostname设置全过程》:本文主要介绍linuxhostname设置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录查询hostname设置步骤其它相关点hostid/etc/hostsEDChina编程A工具license破解注意事项总结以RHE

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

sqlite3 命令行工具使用指南

《sqlite3命令行工具使用指南》本文系统介绍sqlite3CLI的启动、数据库操作、元数据查询、数据导入导出及输出格式化命令,涵盖文件管理、备份恢复、性能统计等实用功能,并说明命令分类、SQL语... 目录一、启动与退出二、数据库与文件操作三、元数据查询四、数据操作与导入导出五、查询输出格式化六、实用功

在Linux终端中统计非二进制文件行数的实现方法

《在Linux终端中统计非二进制文件行数的实现方法》在Linux系统中,有时需要统计非二进制文件(如CSV、TXT文件)的行数,而不希望手动打开文件进行查看,例如,在处理大型日志文件、数据文件时,了解... 目录在linux终端中统计非二进制文件的行数技术背景实现步骤1. 使用wc命令2. 使用grep命令

Qt 设置软件版本信息的实现

《Qt设置软件版本信息的实现》本文介绍了Qt项目中设置版本信息的三种常用方法,包括.pro文件和version.rc配置、CMakeLists.txt与version.h.in结合,具有一定的参考... 目录在运行程序期间设置版本信息可以参考VS在 QT 中设置软件版本信息的几种方法方法一:通过 .pro

Python中对FFmpeg封装开发库FFmpy详解

《Python中对FFmpeg封装开发库FFmpy详解》:本文主要介绍Python中对FFmpeg封装开发库FFmpy,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、FFmpy简介与安装1.1 FFmpy概述1.2 安装方法二、FFmpy核心类与方法2.1 FF

基于Linux的ffmpeg python的关键帧抽取

《基于Linux的ffmpegpython的关键帧抽取》本文主要介绍了基于Linux的ffmpegpython的关键帧抽取,实现以按帧或时间间隔抽取关键帧,文中通过示例代码介绍的非常详细,对大家的学... 目录1.FFmpeg的环境配置1) 创建一个虚拟环境envjavascript2) ffmpeg-py

SQLite3命令行工具最佳实践指南

《SQLite3命令行工具最佳实践指南》SQLite3是轻量级嵌入式数据库,无需服务器支持,具备ACID事务与跨平台特性,适用于小型项目和学习,sqlite3.exe作为命令行工具,支持SQL执行、数... 目录1. SQLite3简介和特点2. sqlite3.exe使用概述2.1 sqlite3.exe