开发直播网站,想在手机浏览器播放,用rtmp推流,但是手机浏览器无法接收rtmp,请问有啥好的方法吗
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开发直播网站,想在手机浏览器播放,用rtmp推流,但是手机浏览器无法接收rtmp,请问有啥好的方法吗相关的知识,希望对你有一定的参考价值。
开发直播网站,想在手机浏览器播放,用rtmp推流,但是手机浏览器无法接收rtmp,请问有什么好的方法吗
参考技术A 播推流端即主播端,主要通过手机摄像头采集视频数据和麦克风采集音频数据,经过一系列前处理、编码、封装,然后推流到CDN进行分发趣拍直播SDK可以满足以下所有的功能和应用场景,帮助开发者解决各种直播难题采集手机直播SDK通过手机摄像头和麦克风直接采集视频数据和音频数据其中,视频采样数据一般采用RGB或YUV格式、音频采样数据一般采用PCM格式对于采集到的原始音视频的体积是非常大的,因此需要经过压缩技术来处理,降低视频的大小来提示传输效率在手机视频采集方面,ios系统在硬件的兼容性方面做得比较好,系统本身提供了比较完整的视频采集的接口,使用起来也比较简单但是,android系统就比较麻烦了,千奇百怪的机型都有,适配起来非常难我们在初期做了一项调研,发现Android的适配率还不到50%2.前处理在这个环节主要处理美颜、水印、模糊等效果特别是美颜功能几乎是直播的标配功能,没有美颜的直播主播们根本提不起兴趣我们见过太多case是因为没有美颜功能被抛弃使用的另外国家明确提出了,所有直播都必须打有水印并回放留存15天以上所以,在选择直播SDK时,没有美颜和水印功能基本就可以选择放弃了美颜实际上是通过算法去识别图像中的皮肤部分,再对皮肤区域进行色值调整通常情况下人的肤色与周边环境色调存在较大差异,通过颜色对比,找到皮肤的基本轮廓,进一步进行肤色检查还可以确定人脸范围找到了皮肤的区域,可以进行色值调整、添加白层或调整透明度等来等来达到美白效果美颜除了美白效果还需要磨皮功能,磨皮实际上就是用模糊滤镜实现的滤镜有很多种,如高斯滤波,双边滤波,导向滤波,到底选择什么样的模糊滤镜各家也有自己的喜好在美颜处理方面,最著名的GPUImage提供了丰富的效果,同时可以支持IOS和Android,还支持自己写算法实现自己最理性的效果GPUImage本事内置了120多种常见滤镜效果,添加滤镜只需要简单调用几行代码就可以了,比如大家可以试试使用GPUImageBilateralFiter的双边滤波滤镜来处理基本的磨皮效果,想要实现更理想的效果还是要通过自定义算法去实现的,各家也都有自己一套算法3、编码为了便于手机视频的推流、拉流以及存储,通常采用视频编码压缩技术来减少视频的体积现在比较常用的视频编码是H.264,但具有更高性能的H.265编码技术正在飞速发展,并可能很快成为主流;在音频方面,通比较常用的是用AAC编码格式进行压缩,其它如MP3、WMA也是可选方案视频经过编码压缩大大提高了视频的存储和传输效率,当然,经过压缩后的视频在播放时必须进行解码通俗点讲就是编码器将多张图像进行编码后产生一段段GOP(GroupofPictures),播放时解码器读取一段段GOP进行解码后读取图像并进行渲染显示在编码方面的核心是在分辨率、码率、帧率等参数中找到最佳平衡点,达到体积最小画面最优的效果,这些参数各家也都有自己的一套核心参数2012年8月,爱立信公司推出了首款H.265编解码器,六个月后,国际电联(ITU)就正式批准通过了HEVC/H.265标准,称之为高效视频编码(HighEfficiencyVideoCoding),相较于之前的H.264标准有了相当大的改善,做到了仅需要原来一半带宽即可播放相同质量的视频,低于1.5Mbps的网络也能传输1080p的高清视频国内,如阿里云、金山云都在推自己的H.265编解码技术,随着直播的快速发展和对带宽的依赖,H.265编解码技术已有全面取代H.264的趋势当然,全面推开应用还需要些时间另外,硬件编码已经成为手机直播的首选方案,软编码处理在720p以上的视频颓势非常明显在IOS平台上硬件编码的兼容性比较好,可以直接采用,但在Android平台上,Android的MediaCodec编码器,针对不同的芯片平台表现差异还是非常大的,要完全实现全平台兼容的4、推流要想用于推流还必须把音视频数据使用传输协议进行封装,变成流数据常用的流传输协议有RTSP、RTMP、HLS等,使用RTMP传输的延时通常在1–3秒,对于手机直播这种实时性要求非常高的场景,RTMP也成为手机直播中最常用的流传输协议最后通过一定的Qos算法将音视频流数据推送到网络断,通过CDN进行分发在直播场景中,网络不稳定是非常常见的,这时就需要Qos来保证网络不稳情况下的用户观看直播的体验,通常是通过主播端和播放端设置缓存,让码率均匀另外,针对实时变化的网络状况,动态码率和帧率也是最常用的策略当然,在网络传输方面全部自己来做基本不现实,找提供推流服务的CDN服务商提供解决方案是最好的选择,可参考文章开头介绍的云视频服务商据了解,阿里云是国内唯一能自研CDN缓存服务器的厂商,性能还是非常有保障的通常,大多数直播平台都会同时接入多个视频云服务提供商,这样可以做拉流线路互备,对推流后视频集群再进行优化也可提高直播的流畅性和稳定性支持OnVif协议的摄像头直播推流php
视频转流中用到的东西
- nginx nginx 已经支持rtmp转流
- ffmpeg ffmpeg
- php对应的引用库 ponvif
- php的控制器方法 Onvif.php
- hls播放页面 onvif.html
- rtmp播放页面 在 rtmp使用下的 video-rtmp.html
- 相关参考链接
链接1
链接2
链接3
rtmp参考文档
链接4
gitee地址
视频流协议参考图
用rtmp协议播放注意事项
会用到video.js 如果是局域网使用,需要下载video.js
具体能不能用我还没来得及测试
用的得辅助工具有
ONVIF Device Test Tool 和 VLC media player 我称它为小圆筒
二者网上自行下载即可
前者用来获取摄像头ip,后者用来验证rtsp 以及rtmp和hls是否可以正常播放
操作步骤上述链接中都有提到
注意一点是一定要在统一局域网内
欢迎小伙伴一起探讨
微信号 zw453640323
qq 453640323
以上是关于开发直播网站,想在手机浏览器播放,用rtmp推流,但是手机浏览器无法接收rtmp,请问有啥好的方法吗的主要内容,如果未能解决你的问题,请参考以下文章
实现手机直播推送屏幕推送及录像功能RTMP推流组件之EasyRTMP-Android设置授权Key介绍