ffmpeg rtsp转rtmp_rtsp流前端web页面播放

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值