热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ffmpegrtsp转rtmp_rtsp流前端web页面播放

rtsp作为实时流传输的一种协议,经常用于视频监控业务,摄像头实时产生的流就是rtsp流。一般视频监控业务厂商会提供专门的客户端供客户浏览实时视频流。视

rtsp作为实时流传输的一种协议,经常用于视频监控业务,摄像头实时产生的流就是rtsp流。一般视频监控业务厂商会提供专门的客户端供客户浏览实时视频流。视频分析业务兴起后,很多业务系统(特别是GA行业),都以B/S方式提供给用户,毕竟在GA的PC中每一台上安装一个client比较麻烦。在很多应用中,GA工作人员希望通过浏览器直接查看摄像头的实时视频流,但是浏览器在无插件情况下不支持实时视频流的播放。

为实现rtsp流在前端实时播放,我们先用live555模拟一路rtsp流,然后用ffmpeg将rtsp流转化为供web播放的.m3u8格式的视频格式,最后在前端用videojs在前端html页面中播放出来。

基础环境安装

#live555安装

wget http://www.live555.com/liveMedia/public/live555-latest.tar.gz

tar xzf live555-latest.tar.gz

cd live

./genMakefiles linux-64bit

make

#live555测试

cd mediaServer

./live555MediaServer

输出如下信息说明live555安装成功。

65a68765ba42f7fe664e60054c2c59ff.png

#ffmpeg安装

yum install -y epel-release

rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

yum repolist

rpm –import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm

yum repolist

yum install -y ffmpeg

#ffmpeg测试,输出如下信息说明安装成功

ffmpeg -version

443316645a8f4fd6aa0c2d0f44483c70.png

live555模拟rtsp流

将视频文件复制到和上面live555MediaServer可执行文件的同一个目录,可用vlc在打开网络中输入地址 rtsp://IP/videoname就可以播放视频流了,rtsp流模拟完成(本例中用test.mkv视频模拟是rtsp流,生成的rtsp流地址为rtsp://IP/test.mkv,vlc中的播放效果如下)。

b505051d97b811ed35405740d7f5d210.png

ffmpeg将rtsp流转为m3u8

#本例中用如下命令将rtsp流转化为m3u8

ffmpeg -i rtsp://192.168.226.130/test.mkv -strict -2 -y ./video.m3u8

-i参数表示rtsp流地址,-y表示转化完成的m3u8格式的播放文件,具体的ffmpeg可用的参数比较多,可用用ffmpeg –help查看(参数真的很多,不信你试试)。输出如下信息,表示视频流正在实时转化。

02374a9d9a20bdd537c7aca4e829d588.png

相应会在命令启动的当前目录生成一个video.m3u8文件和大量的.ts文件(如下)。

1d76910a252092e2ffd37effa2bb0ca2.png

rtsp流为m3u8格式的过程其实是对流进行实时切片的过程,随着时间的推移,ts文件会在相应的文件夹下越积越多,并且这个过程特别消耗cpu,本例中ffmpeg的cpu占用如下。

2fbb2df8d5601b14beea7274ae7dc3a8.png

html视频流播放

#videojs播放m3u8实时视频流

d0c560ed1f1c3d19d8ca48618e3ac84e.png

#html与video.m3u8放置于同一级目录,用浏览器打开html页面测试如下(视频流播放成功)

a3e60883b061493b6709641f046e2438.png

视频流在这里有点卡顿,主要还是ffmpeg比较耗cpu,调整ffmpeg的参数或换好一点的cpu或许会好点。

本篇内容在本人个人公众号上也已发布,欢迎关注本人微信公众号“勤菜鸟”。

Ref

https://blog.csdn.net/qq_34627459/article/details/74956569

http://www.cnblogs.com/dpf-10/p/5623101.html

https://blog.csdn.net/cuishiying/article/details/78562703



推荐阅读
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • 操作系统RetHat9.0,存储设备华为3comEX1000在linux上建立能够识别盘阵的方法有三种1、HBA卡;2、TOE卡;3、is ... [详细]
  • 201720181 20155315 《信息安全系统设计基础》实验四 外设驱动程序设计
    实验内容学习资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章在Ubuntu完成资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.p ... [详细]
  • 直接从网上下载redis当然你也可以直接从别的地方拿过来直接放在redis中[root@iZ2zedckzf8nczp6xshv4mZ]#wgethttp:download ... [详细]
  • Makefile基本用法
    来源https:www.gnu.orgsoftwaremakemanualmake.pdf简单的例子其中的cc通过链接,间接指向usrbingcc。Makefile文件中列出了依赖 ... [详细]
  • buildroot构建项目(一)buildroot介绍【转】
    转自:https:www.cnblogs.comkele-dadp8231434.html1.1什么是buildrootBuildroot是Linux平台上一个构建嵌入式Linux ... [详细]
  • 1. Makesureyouhaveimake.(SeetheBUILDNOTESfileifyouwanttotrybuildingwi ... [详细]
  • http:blog.sina.com.cnsblog_491529d60100061h.html安装完SLED10后发现仍然有“热启动网络不通”的问题,原因是内核版本 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼binsh:1:usrlocalcuda-9.1:PermissiondeniedMakefile:88:recipefortargeto ... [详细]
  • nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • CPAN(ComprehensivePerlArchiveNetwork)是internet上Perl模块最大的集散地,包含了现今公布的几 ... [详细]
author-avatar
雅俊建安义琬
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有