当前位置: 首页 > news >正文

【音视频工具】ffplay介绍

文章目录

    • 使用 ffplay 播放视频的基本命令
    • 测试 TS 流循环切换 音频流/视频流/字幕流/节目

简介基于 ffmpeg 库开发的简单媒体播放器,可用于播放音频和视频文件。相比于常见播放器,它更侧重 命令行操作方式,对于开发者和需要特定播放控制的场景很有用。

应用场景:开发者调试音视频播放功能,或在无图形化界面的服务器环境下播放媒体文件来测试媒体流。

ffplay -h

使用 ffplay 播放视频的基本命令

播放方式

  1. 命令行输入 ffplay 视频路径 eg:ffplay yuanshen.mp4
  2. ffplay -showmode 0 input.aac
    1. -showmode 0:强制指定 FFplay 的显示模式为 audio(音频模式)image.png

    2. ffplay -showmode <模式值> input.aac

      1. 0 视频模式(显示黑屏,仅音频播放)1. 隐藏音频可视化2. 纯后台播放
      2. 1 波形模式(默认音频模式,显示实时声波)直观观察音频振幅
      3. 2 频谱模式(实时FFT频域分析,显示频率能量分布)分析音频频率特征(默认)
    3. 如果直接运行 ffplay input.aac,FFplay 会进入 音频模式,显示一个动态音频波形(频谱或波形图)。

  3. ffplay input.mp4 -vf "setpts=0.5*PTS" -an
      • -vf 设置2倍速,-an 禁用音频。

播放控制

  1. 退出:q 或 esc 键。

  2. 全屏切换:f 键。; 鼠标左键双击 也可以进行全屏切换

  3. 暂停 / 恢复:p 键或空格键。

  4. 静音切换:m 键。

  5. 音量调整:j 键减少音量,k 键增加音量。M 键可切换 静音 / 非静音 状态

  6. 流切换

  7. a 键切换音频流

  8. V 键切换视频流

  9. t 键切换字幕流。

  10. 时间拖动:左右箭头键,向前和向后小幅度拖动 10s;上下箭头键,向前和向后拖动 60 秒。

  11. 逐帧播放:s键。

  12. 循环切换 : 针对有多个音频流以及视频流 , 如电视节目 TS 流 , 多个电视台信号在一个流中 , 可以通过切换 音频流 / 视频流 / 节目 等选择不同的电视台信号进行观看 ;

  13. 循环切换音频流 : A ; ( Audio )

  14. 循环切换视频流 : V ; ( Vedio )

  15. 循环切换字幕流 : T ;

  16. 循环切换节目 : C ;

  17. 循环切换过滤器或显示模式 : W ;

测试 TS 流循环切换 音频流/视频流/字幕流/节目

TS 流即传送流(Transport Stream ) ,是依据 ITU-T Rec.H.222.0|ISO/IEC13818 - 2 和 ISO/IEC13818 - 3 等协议定义的数据流 ,用于音视频及数据的传输与存储,在数字电视广播、流媒体等领域应用广泛。

工作原理

  1. 经过视音频压缩形成基本流(ES) ,ES 流经打包形成打包基本码流(PES) ,在 PES 包中加入定时信息(PTS/DTS) ,再将 PES 包内容分配到固定长度传输包中 ,加入节目参考时钟(PCR)和节目特定信息(PSI) ,最终连续输出传输包形成 TS 流 。

TS 流文件 cctv.ts , 其包含的流信息如下 , 该文件中有 7 个视频流 , 7 个音频流 ;

容器及常规信息

  1. 格式MPEG-TS ,即 MPEG 传输流,常用于数字电视广播、流媒体等领域,能有效复用多个音视频流
  2. 码率133 Mb ,指该文件在单位时间内传输的数据量大小,反映数据传输的速率

流信息

  1. 视频流:有7 video streams ,编码格式均为MPEG Video ,说明该文件包含 7 个采用 MPEG 编码的视频流
  2. 音频流:存在7 audio streams ,编码格式是MPEG Audio ,即有 7 个采用 MPEG 编码的音频流

使用ffplay cctv.ts

命令播放包含多个视频流 / 音频流 ;

如果声音太大可以使用 -volume 选项控制声音 :ffplay -volume 3 cctv.ts

播放开始后 , 按下 A 可以切换音频流 , 按下 V 可以切换视频流 , 按下 T 可以切换字幕流 ,
按下 C 可以切换完整的节目 , 即同时切换 音频流 , 视频流 , 字幕流 ;

注意事项
在 ts 流中切换音频流和视频流时,可能出现声音和画面不同步等问题 ,ffplay 处理码流时或存在 bug,导致切换不流畅,同时需留意设备兼容性。

http://www.xdnf.cn/news/392401.html

相关文章:

  • Redis 分布式锁
  • iOS实名认证模块的具体实现过程(swift)
  • 串口通讯
  • Docker使用ClickHouse | ClickHouse 配置用户名密码 | ClickHouse 可视化 | windows系统 | 镜像
  • [强化学习的数学原理—赵世钰老师]学习笔记01-基本概念
  • lampiao靶场渗透
  • # KVstorageBaseRaft-cpp 项目 RPC 模块源码学习
  • TikTok 账号运营干货:AI 驱动优化
  • Python----神经网络(基于Alex Net的花卉分类项目)
  • 按钮样式统一
  • Kids A-Z安卓版:儿童英语启蒙的优质选择
  • 特励达力科LeCroy推出Xena Freya Z800 800GE高性能的800G以太网测试平台
  • LLM 论文精读(四)LLM Post-Training: A Deep Dive into Reasoning Large Language Models
  • 基于多层权重博弈与广播机制的仿生类脑 AI 决策框架
  • 组合模式(Composite Pattern)详解
  • FR2012A富芮坤ADC:频繁调用adc_get_data要延时
  • 使用lldb看看Rust的HashMap
  • 三、c语言练习四题
  • Linux网络编程实现FTP服务器
  • 探秘 Cursor 核心:解锁系统提示词的进阶之路
  • c++ 如何写类(不带指针版)
  • k8s 资源对比总结
  • 精讲C++四大核心特性:内联函数加速原理、auto智能推导、范围for循环与空指针进阶
  • vue数据可视化开发echarts等组件、插件的使用及建议-浅看一下就行
  • 什么是硬件中断请求号?什么是中断向量号?
  • 英语复习笔记 1
  • Nipype使用:从安装配置到sMRI处理
  • 基于OpenCV的人脸识别:LBPH算法
  • MySQL数据库的安全性防护
  • 【问题】Watt加速github访问速度:好用[特殊字符]