一步步教你写一个推流器,在浏览器进行摄像头播放(一)——包教包会版

什么是推流器呢?

    能看到这篇文章的人,能知道“推流器”这个词的人,想必已经知道什么是推流器了。但是还是有必要说一下。
    浏览器能够播放的流媒体类型大致有以下几种:MP4、FLV、HLS、RTMP、WebRTC、RTSP,而摄像头流媒体主要的格式之一就是“RTSP”,有人说“那浏览器支持RTSP,我们直接播放不就可以了吗?”,NO!NO!NO!。RTSP流是不可以直接在浏览器中直接播放的,需要使用vlc浏览器插件才可以,而且现在只有360浏览器才支持使用vlc插件。虽然我们做web需要适配所有浏览器,但是我们推荐用户使用的还是谷歌和火狐,总不能说,我们的系统只支持360浏览器使用吧!
    那什么流媒体格式在浏览器可以通用呢?个人觉得,MP4、FLV最佳,MP4不用说了吧,前端的朋友都知道怎么播放。FLV呢?其实FLV只需要flv.js就可以实现。但在直播领域,由于RTMP推流、HTTP-FLV播放的整套方案低延时的特性,以及服务端普遍提供HTTP Web服务,FLV仍然是大多数直播产品的首选流媒体格式。好,重点来啦!所以我们要做的就是,想办法把RTSP流转成FLV流。
    好的,上工具!——Nginx(rtmp版),这个工具通过配置之后可以将rtmp流自动转为flv流
    那么你不想配置怎么办?再上工具——SRS,github上一搜就有,安装完后,你拆解一下他的安装目录,会发现在objs里面有个nginx,看到这个nginx,你懂得了吧???请添加图片描述
    那么我们的工作就变成了将RTSP装换成RTMP推送跟SRS,实现自动化推流,这就是推流器。

准备工具

    语言:Pyhton
    数据库:MySQL 5.7,Redis-x64-3.0.504
    流媒体工具:FFmpeg
    流媒体转发:SRS 6.0
    Python、MySQL、Redis使用应该不用我说了吧,SRS只需要傻瓜式安装,FFmpeg有必要说一下,你不需要配置什么环境变量,只需要将你下载好的FFmpeg的bin文件夹下的ffmpeg.exe、ffplay.exe、ffprobe.exe复制到C:\Windows\System32中就可以了,然后打开CMD,输入“ffmpeg”回车,看到下面内容就大功告成!请添加图片描述

FFmpeg推流

    首先打开你们的SRS。浏览器输入:127.0.0.1:8080回车,进去之后,点击“SRS控制台”,点击顶部面包屑的“视频流”,一会要看这里。
    接下来就可以推流了。朋友们,为了让你们少走弯路,直接上FFmpeg推流指令:

ffmpeg -loglevel panic -thread_queue_size 512 -rtsp_transport tcp -i rtsp://admin:xiaotudou@192.168.3.201:554/h265/ch1/main/av_stream -vf "setdar=r=16/9,scale=1280/720" -qscale:v 1 -vcodec libx265 -tune zerolatency -b:v 500k -r 25 -b:a 1280k -bufsize 10000k -f flv -an rtmp://127.0.0.1/live/1921683201

    你只需要将上面指令“rtsp://admin:xiaotudou@192.168.3.201:554/h265/ch1/main/av_stream”换成你的RTSP流,“libx265”换成摄像头的编码格式,“rtmp://127.0.0.1/live/1921683201”换成推送到SRS的RTMP流地址就行了。
    拿海康摄像头举个例子:假如你的摄像头IP是192.168.1.11,账号是admin,密码是123456,再进入摄像头,点击“配置>音视频”,看这里,请添加图片描述

    那他的RTSP流地址就是:rtsp://admin:123456@192.168.1.11:554/h265/ch1/main/av_stream,编码格式就是:libx265。至于推送地址,前面的“rtmp://127.0.0.1/live/”不要动,后面加后缀就可以(你加的后缀决定你之后FLV流的播放地址)
    打开CMD,输入你的FFmpeg命令,回车请添加图片描述
    当你看到如上输出,再去看你的“SRS控制台请添加图片描述
点击预览请添加图片描述
能够播放,ok,推流成功!本篇文章到此为止,下一篇,开始将介绍使用python的具体实现步骤,散会!

  • 21
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值