当前位置: 首页 > 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,导致切换不流畅,同时需留意设备兼容性。

相关文章:

  • 线程的一些事(2)
  • 动态路由实现原理及前端控制与后端控制的核心差异
  • ‌中继器:网络中的“血包”与“加时器”‌
  • Ollama部署使用以及模型微调和本地部署
  • C++ stl中的set、multiset、map、multimap的相关函数用法
  • 计算机的三个根本性基础
  • Maven 公司内部私服中央仓库搭建 局域网仓库 资源共享 依赖包构建共享
  • 最长字符串 / STL+BFS
  • #微调重排序模型:Reranking从入门到实践
  • Dockerfile 完全指南:从入门到最佳实践
  • Linux 第七讲 --- 工具篇(二)gcc/g++与文件编译
  • 自然语言处理 (NLP) 入门:NLTK 与 SpaCy 的初体验
  • 北斗导航 | 深度学习与北斗导航定位算法结合思路、原理、公式、Python+matlab代码
  • 在 Java 中使用 org.json 和 JSON-B 解析与编写 JSON
  • Linux:44线程互斥lesson32
  • 【音视频工具】Hexinator安装、基本使用
  • 26考研——中央处理器_指令流水线_指令流水线的基本概念 流水线的基本实现(5)
  • IPLOOK超轻量核心网,助力5G专网和MEC边缘快速落地
  • Java 1.8(也称为Java 8)
  • m1 安装 Elasticsearch、ik、kibana
  • 宝通科技:与宇树合作已签约,四足机器人在工业场景落地是重点商业化项目
  • 国务院关税税则委员会关于调整对原产于美国的进口商品加征关税措施的公告
  • 梅花奖在上海丨陈丽俐“婺剧折戏专场”:文戏武做,武戏文唱
  • 男子发寻母视频被警方批评教育,律师:发寻亲信息是正当行为
  • 中国科学院院士徐春明不再担任山东石油化工学院校长
  • 在地球另一端的交流,架起2万公里间更多共赢的桥梁