1、前言

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

2、使用技巧

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

ffplay [option] file
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

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

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总能带给你惊喜。难得有五一小三天假期,这里总结一下,已做备忘,原创不易,转载请说明出处。

ffplay工具命令使用技巧浅析相关推荐

  1. ai描边工具怎么打开_AI描边工具命令讲解,教你ai描边功能实用技巧

    AI描边工具命令讲解,教你ai描边功能实用技巧 在我们的ai设计工具里,描边工具组中,可以通过改工具组中的功能设置来改变我们的描边造型,Illustrator中经常使用描边工具,这也是比较基础的工具, ...

  2. 在此处打开命令窗口_这样操作方便多了!简单DOS命令实用技巧详解

    分享简单DOS命令实用技巧,让我们的工作.生活更加方便快捷.小编致力于分享分享智能数码.弱电组网.电脑软硬件资讯及实用技巧. 先跟着小编一起来了解一下DOS命令是一个什么样子的存在?技术大牛,请忽略, ...

  3. 100条Vista命令行技巧Tips,您知道几条?

    原文:[url]http://gnaw0725.blogbus.com/logs/5011924.html[/url] 100条Vista命令行技巧Tips,您知道几条? 自从去年装上Vista,也有 ...

  4. 20个超高效的Linux命令与技巧

    简介:这里有一些很有用的 Linux 命令,终端技巧和快捷方式,可以在使用Linux命令行时节省大量时间. 在本文中,我将向您演示一些专业的Linux命令技巧,这些技巧将使您节省大量时间,在某些情况下 ...

  5. 每个 Linux 用户都应该知道的命令行技巧

    每个 Linux 用户都应该知道的命令行技巧 原创 2015-09-11 伯乐在线 程序员的那些事 [伯乐在线导读]:有网友在问答网站Quora上提问:"有哪些省时小技巧,是每个Linux用 ...

  6. 抓取一台电脑linux,教程方法;用来获取Linux主机信息的5个常用命令电脑技巧-琪琪词资源网...

    琪琪词资源网-教程方法;用来获取Linux主机信息的5个常用命令电脑技巧,以下是给大家带来的教程方法;用来获取Linux主机信息的5个常用命令,大家可以了解一下哦! 有些时候Linux 系统管理员在接 ...

  7. linux生产上线工具,Linux 产能工具及其使用技巧

    由于生产力本身是一个主观术语,我不打算详细解释我这里要讲到的"生产力"是什么.我打算给你们展示一些工具及其使用技巧,希望这会帮助你在Linux中工作时能更专注.更高效,并且能节省时 ...

  8. Linux命令行技巧

    Linux命令行技巧 命令 描述 • apropos whatis 显示和word相关的命令. 参见线程安全 • man -t man | ps2pdf - > man.pdf 生成一个PDF格 ...

  9. Linux命令行技巧——使用目录栈进行导航

    Title: Linux命令行技巧--使用目录栈进行导航 Author: Charles Shih Create: 2017-08-31 17:03:28 目录栈导航 基本命令 目录栈结构 pushd ...

最新文章

  1. 计算节点宕机了怎么办?- 每天5分钟玩转 OpenStack(43)
  2. oracle函数 trunc(x[,y])
  3. 经典C语言程序100例之六三
  4. 他是绝世天才,却只开了半辈子的挂!死后惨遭封号200年,这就是和牛顿抬杠的下场.........
  5. 2021牛客暑期多校训练营3 G-Yu Ling(Ling YueZheng) and Colorful Tree(cdq分治)
  6. 用java二分法计算a的n次幂_用二分法计算a的n次幂算法分析
  7. 【linux C】C语言中常用的几个函数的总结【二】
  8. ubuntu kylin mysql_Ubuntu16.04下Kylin的安装与配置
  9. grub2配置原理分析
  10. Java线程状态分析/线程状态转换图
  11. python调用百度识图识取本地图片
  12. 基于树莓派语音控制—LED开关控制
  13. 搜索引擎整体结构图以及描述
  14. 计算机频率符号,波长、频率和波速
  15. 1205 Lock wait timeout exceeded; try restarting transaction处理
  16. 你问我答:听说你做订阅号挣了 100W ?
  17. springboo集成bboss-elasticsearch实现elasticsearch客户端
  18. Echarts 柱状图上方显示值
  19. 设计师计算机配置,超全面!写给设计师的电脑配置攻略之PS篇
  20. 数学建模——评价模型

热门文章

  1. Python之输入一个年份判断该年是否是闰年
  2. 万能角度尺做仪器校准有哪些步骤?校准机构常见流程规范
  3. IDEA在同一工作空间,显示多个项目
  4. 学校学生学籍的计算机管理属于什么领域,浅谈计算机管理学生学籍信息系统的重要性...
  5. 团队做项目该怎样分工
  6. 为什么团队分工越明确,工作效率越低?
  7. 顶刊TPAMI!目标检测中的不均衡问题综述!
  8. 老笔记整理二:网页小问题汇总
  9. 速看: 加解密、加签验签,你想要的都在这了
  10. 计算机图形学 实验二 三维模型读取与控制【OpenGL】