精选文章 ffmpeg自带的ffplay工具常用命令解析

ffmpeg自带的ffplay工具常用命令解析

作者:行思坐忆,志凌云 时间: 2019-11-05 03:20:54
行思坐忆,志凌云 2019-11-05 03:20:54

1、前言

  ffplay是ffmpeg的一个子工具,它具有强大的音视频解码播放能力,目前它广泛被各种流行播放器(QQ影音、暴风影音……)集成应用。作为一款开源软件,ffplay囊括Linux、Windows、Ios、Android等众多主流系统平台,十分适合进行二次开发。这里有必要介绍一下它常用的技巧。首先下载ffmpeg代码包,里面有免编译版、源代码百、静态库版、动态库版,具体怎么下载安装请参考我的博文《FFmpeg简介、功能入门、源码下载安装、常规应用》。接下来以Windows平台为例子讲述一下具体用法。

2、使用技巧

  Win+r组合键运行cmd进入Windows命令行控制界面,使用cd命令进入ffplay.exe的可执行目录(当然也可以使用环境变量等手段使ffplay.exe命令全局可用),其他平台如linux的操作也类似。ffplay的基本用法很简单,其一般形式如下:


  
  1. ffplay [option] file
  2. ffplay [option] URL

    总结起来ffplay的用法就是option项加上资源路径,option项是用来指定播放时的一些参数的,如指定连接的协议、视频画面的大小,音视频解码器选用、传输码率设定等,一般这些参数我们很少会设置,使用默认就OK,此时option项可以直接忽略,ffplay会帮我们选择,这也是它功能强大的体现,option的更多具体选项可以参考其官方文档;资源路径则包括文件资源路径和网络资源路径,文件资源路径是指定需要播放的音视频文件,如*.mp3、*.mp4、*,avi、*.mkv、*.rmvb等等类型的文件,网络资源路径根据协议可以分为RTSP、RTMP、HTTP流资源,心情好,来个直播,如:

ffplay rtmp://live.hkstv.hk.lxdns.com/live/hks

再或者,用http浏览一下视频,如:

ffplay http://live.hkstv.hk.lxdns.com/live/hks/playlist.m3u8

RTSP播放也了解一下(对于RTSP播放有个坑,请参考《ffplay播放rtsp网络串流失败问题》),如:

rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov

音视频文件指定分辨率播放

ffplay -vfscale=1920:1080 xxxx.avi

ffmpeg自带的ffplay工具常用命令解析1

下面是一些热心网友提供的测试连接,感谢他们的分享,如有侵权,请联系删除。

RTMP协议直播源

大熊兔(点播):rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov

香港卫视:rtmp://live.hkstv.hk.lxdns.com/live/hks

RTSP协议直播源

珠海过澳门大厅摄像头监控:rtsp://218.204.223.237:554/live/1/66251FC11353191F/e7ooqwcfbqjoo80j.sdp

HTTP协议直播源

香港卫视:http://live.hkstv.hk.lxdns.com/live/hks/playlist.m3u8

CCTV1高清:http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8

CCTV3高清:http://ivi.bupt.edu.cn/hls/cctv3hd.m3u8

CCTV5高清:http://ivi.bupt.edu.cn/hls/cctv5hd.m3u8

CCTV5+高清:http://ivi.bupt.edu.cn/hls/cctv5phd.m3u8

CCTV6高清:http://ivi.bupt.edu.cn/hls/cctv6hd.m3u8

3、番外篇

    在安防等视频流媒体数据处理领域,我们可能更关注的是用ffplay播放RTSP音视频流,其实国内各大厂商的VMS(video management system)平台也是基于此设计的。每每使用它们的IPC、NVR时都需要下载它们,但是有了ffplay神器,一个就够了,它可以播放诸如海康、大华、长视等厂商IPC、NVR的RTSP流,视频监控就变得如此简单。这里很有必要介绍一下RTSP链接的格式。

   RTSP链接格式与HTTP链接格式类似,也是由URL(Uniform Resource Locator)发展继承而来。URL由三部分组成:资源类型、存放资源的主机域名、资源文件名,一般语法格式为(带方括号[]的为可选项):

protocol :// hostname[:port] / path / [;parameters][?query]#fragment
  

   这里就不一一解释其各项的含义了,我们重点关注RTSP链接的格式,相比于URL,RTSP由于参数表列是嵌入RTSP报文中的,格式上会少了parameters等参数选项,其一般格式如下:

rtsp://[username]:[password]@[ip]:[port]/path
  

海康平台:
rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream
说明:
username: 用户名。例如admin。
password: 密码。例如12345。
ip: 为设备IP。例如 192.168.1.1。
port: 端口号默认为554,若为默认可不填写。
codec:有h264、MPEG-4、mpeg4这几种。
channel: 通道号,起始为1。例如通道1,则为ch1。
subtype: 码流类型,主码流为main,辅码流为sub。
例如,请求海康摄像机通道1的主码流,Url如下
主码流:
rtsp://admin:12345@192.168.1.1:554/h264/ch1/main/av_stream
rtsp://admin:12345@192.168.1.1:554/MPEG-4/ch1/main/av_stream
子码流:
rtsp://admin:12345@1192.168.1.1/mpeg4/ch1/sub/av_stream
rtsp://admin:12345@192.168.1.1/h264/ch1/sub/av_stream
大华平台:
rtsp://username:password@ip:port/cam/realmonitor?channel=1&subtype=0
说明:
username: 用户名。例如admin。
password: 密码。例如admin。
ip: 为设备IP。例如 192.168.1.1。
port: 端口号默认为554,若为默认可不填写。
channel: 通道号,起始为1。例如通道2,则为channel=2。
subtype: 码流类型,主码流为0(即subtype=0),辅码流为1(即subtype=1)。
例如,请求某设备的通道2的辅码流,Url如下

rtsp://admin:admin@192.168.1.1:554/cam/realmonitor?channel=2&subtype=1

长视平台:

rtsp://[username]:[password]@[ip]:[port]/[channel]/[subtype]

username: 用户名。例如admin。

password: 密码。例如12345。

ip: 为设备IP。例如 192.168.1.1。
port: 端口号默认为554,若为默认可不填写。
channel: 通道号,起始为0。例如通道1,则为channel项为0。
subtype: 码流类型,主码流为0(即subtype为0),子码流为1(即subtype为1)。

rtsp://admin:admin@192.168.1.1:554/00


4、总结

   运用ffplay播放小技巧可以轻松应对各种文件资源和网络资源的播放,特别是在安防监控领域,使用它播放个监控资源那简直太方便了,而且还可以用它来检查验证音视频格式封包是否异常,在调试优化过程ffplay总能带给你惊喜。





勿删,copyright占位
分享文章到微博
分享文章到朋友圈

上一篇:17.华清嵌入式--条件编译及结构体学习

下一篇:提高GitHub下载速度

您可能感兴趣

  • 适合新手练习的Python项目有哪些?

    适合新手练习的Python项目有哪些?简单易上手的Python项目汇总:Web 项目设计:内容聚合器、正则表达式查询工具、网址缩短、便利贴、功能、测验、GUI 项目设计:MP3 播放器、闹铃提醒工具、文件管理器、记账功能、命令行项目设计:通讯录、网站连接检查、批量文件重命名工具、目录树生成器。   一、Web 项目设计:内容聚合器(Content Aggregator)   该项目设计的主要...

  • 武田宣布2020财年第一季度业绩;确认管理层指引,并提高全年列报运营利润和列报净利润

    日本大阪--(美国商业资讯)--武田药品工业株式会社(Takeda Pharmaceutical Company Limited, TOKYO:4502/NYSE:TAK)(简称“武田”)今天宣布了2020财年第一季度(截至2020年6月30日)的财务业绩。基于第一季度的业绩,该公司确认了管理层指引,并提高了全年的列报运营利润和列报净利润。该公司还宣布了其研发产品线的最新消息,强调了其研发动...

  • 2020前端面试专题整理

    全是从网上整理的(狗头保命) vue3.0 与vue2.0的区别:https://juejin.im/post/6844904128628391944 目录结构发生变化: 移除了配置文件目录(config与build文件夹),但是多了env.production与env.development,除了文件位置,实际配置和2.0没有什么不同,没有config文件,跨域配置转移到vue.confi...

  • 【Python基础】如何编写简洁美观的Python代码

    作者 | ANIRUDDHA BHANDARI 编译 | VK 来源 | Analytics Vidhya 概述 Python风格教程将使你能够编写整洁漂亮的Python代码 在这个风格教程中学习不同的Python约定和Python编程的其他细微差别 介绍 你有没有遇到过一段写得很糟糕的Python代码?我知道你们很多人都会点头的。 编写代码是数据科学家或分析师角色的一部分。另一方面,编写漂...

  • 计算机必备专用英语词汇

    非常好的单词整理,转载一下当作笔记 1.单词说明:   command n. 命令,指令 [kə'mɑ:nd]   单词拼写 名词 单词含义 音标(发音)   提示:着重记忆单词对应的意思,有能力最好词性也记忆。 2.词性说明: n v vi vt conj prep pron adj adv 名词 动词 非及物动词 及物动词 连词 介词 代词 形容词 副词 3.单词列表: 1.file,n...

  • 2. XAML

    用ASP.NET Core编写Web应用程序时,除了需要知道C#之外,还需要了解HTML、CSS和JavaScript。创建Windows应用程序时,除了C#之外,还需要了解XAML。XAML不仅用于创建Windows应用程序,还用于Windows Presentation Foundation(WPF)、Windows WorkFlow Foundation(WCF)和Xamarin的跨平...

  • 中国耳机能否把AirPods拉下铁王座,全看一颗“芯”

    作者|茜茜 编辑|猛哥 1853年,犹太青年李维斯和当时的许多美国人一样,满怀梦想地踏上了西部淘金之旅。 很遗憾,他去晚了,到处都是人,还被抢地盘的恶棍们给揍了一顿。 李维斯很快从欺辱中恢复过来,他发现淘金人的衣服很容易磨破,而西部到处都是废弃的帐篷,如果把这些帐篷缝制成裤子,肯定抗穿耐磨。就这样,他缝制了世界上第一条牛仔裤。从此开创了他的牛仔裤王国。 世上的事情就是这么不可思议。 150年...

  • 如何基于 Electron 开发跨终端的应用

    自我介绍 欢迎大家来到今天的早早聊跨端跨栈专场,今天我分享的主题是《如何基于 Electron 开发跨终端的应用》。先做一下自我介绍,我叫逯子洋,17 年加入政采云,目前主要负责政采云前端工程化平台敦煌以及政采云电子招投标客户端的建设。这边是我们团队的微信公众号,大家如果想对我们团队有更多的了解,可以关注一下我们的公众号。 首先我们分享的第一块叫端的延展。不知道大家对这张图熟不熟悉,前段时间...

华为云40多款云服务产品0元试用活动

免费套餐,马上领取!
CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。