rtmp推流服务器的搭建

rtmp推流服务器的搭建,第1张

我是看了这个教程进行安装的,但是实际过程中发现了不少问题
>

播推流端即主播端,主要通过手机摄像头采集视频数据和麦克风采集音频数据,经过一系列前处理、编码、封装,然后推流到CDN进行分发。趣拍直播SDK可以满足以下所有的功能和应用场景,帮助开发者解决各种直播难题。

采集

手机直播SDK通过手机摄像头和麦克风直接采集视频数据和音频数据。其中,视频采样数据一般采用RGB或YUV格式、音频采样数据一般采用PCM格式。对于采集到的原始音视频的体积是非常大的,因此需要经过压缩技术来处理,降低视频的大小来提示传输效率。 在手机视频采集方面,iOS系统在硬件的兼容性方面做得比较好,系统本身提供了比较完整的视频采集的接口,使用起来也比较简单。但是,Android系统就比较麻烦了,千奇百怪的机型都有,适配起来非常难。我们在初期做了一项调研,发现Android的适配率还不到50%。

    2前处理

在这个环节主要处理美颜、水印、模糊等效果。特别是美颜功能几乎是直播的标配功能,没有美颜的直播主播们根本提不起兴趣。我们见过太多case是因为没有美颜功能被抛弃使用的。另外国家明确提出了,所有直播都必须打有水印并回放留存15天以上。所以,在选择直播SDK时,没有美颜和水印功能基本就可以选择放弃了。

美颜实际上是通过算法去识别图像中的皮肤部分,再对皮肤区域进行色值调整。通常情况下人的肤色与周边环境色调存在较大差异,通过颜色对比,找到皮肤的基本轮廓,进一步进行肤色检查还可以确定人脸范围。找到了皮肤的区域,可以进行色值调整、添加白色图层或调整透明度等来等来达到美白效果。美颜除了美白效果还需要磨皮功能,磨皮实际上就是用模糊滤镜实现的。滤镜有很多种,如高斯滤波,双边滤波,导向滤波,到底选择什么样的模糊滤镜各家也有自己的喜好。

在美颜处理方面,最著名的GPUImage提供了丰富的效果,同时可以支持IOS和Android,还支持自己写算法实现自己最理性的效果。GPUImage本事内置了120多种常见滤镜效果,添加滤镜只需要简单调用几行代码就可以了,比如大家可以试试使用GPUImageBilateralFiter的双边滤波滤镜来处理基本的磨皮效果,想要实现更理想的效果还是要通过自定义算法去实现的,各家也都有自己一套算法。

3、编码

为了便于手机视频的推流、拉流以及存储,通常采用视频编码压缩技术来减少视频的体积。现在比较常用的视频编码是H264,但具有更高性能的H265编码技术正在飞速发展,并可能很快成为主流;在音频方面,通比较常用的是用AAC编码格式进行压缩,其它如MP3、WMA也是可选方案。视频经过编码压缩大大提高了视频的存储和传输效率,当然,经过压缩后的视频在播放时必须进行解码。通俗点讲就是编码器将多张图像进行编码后产生一段段GOP(Group of Pictures),播放时解码器读取一段段GOP进行解码后读取图像并进行渲染显示。 在编码方面的核心是在分辨率、码率、帧率等参数中找到最佳平衡点,达到体积最小画面最优的效果,这些参数各家也都有自己的一套核心参数。

2012年8月,爱立信公司推出了首款H265编解码器,六个月后,国际电联(ITU)就正式批准通过了HEVC/H265标准,称之为高效视频编码(High Efficiency Video Coding),相较于之前的H264标准有了相当大的改善,做到了仅需要原来一半带宽即可播放相同质量的视频,低于15Mbps的网络也能传输1080p的高清视频。国内,如阿里云、金山云都在推自己的H265编解码技术,随着直播的快速发展和对带宽的依赖,H265编解码技术已有全面取代H264的趋势。当然,全面推开应用还需要些时间。
另外,硬件编码已经成为手机直播的首选方案,软编码处理在720p以上的视频颓势非常明显。在IOS平台上硬件编码的兼容性比较好,可以直接采用,但在 Android 平台上,Android的MediaCodec 编码器,针对不同的芯片平台表现差异还是非常大的,要完全实现全平台兼容的

    4、推流

要想用于推流还必须把音视频数据使用传输协议进行封装,变成流数据。常用的流传输协议有RTSP、RTMP、HLS等,使用RTMP传输的延时通常在1–3秒,对于手机直播这种实时性要求非常高的场景,RTMP也成为手机直播中最常用的流传输协议。最后通过一定的Qos算法将音视频流数据推送到网络断,通过CDN进行分发。 在直播场景中,网络不稳定是非常常见的,这时就需要Qos来保证网络不稳情况下的用户观看直播的体验,通常是通过主播端和播放端设置缓存,让码率均匀。另外,针对实时变化的网络状况,动态码率和帧率也是最常用的策略。

当然,在网络传输方面全部自己来做基本不现实,找提供推流服务的CDN服务商提供解决方案是最好的选择,可参考文章开头介绍的云视频服务商。据了解,阿里云是国内唯一能自研CDN缓存服务器的厂商,性能还是非常有保障的。通常,大多数直播平台都会同时接入多个视频云服务提供商,这样可以做拉流线路互备,对推流后视频集群再进行优化也可提高直播的流畅性和稳定性。

hirenders3可以推流吗。它存在导播推流器。HirenderS3是应用于展演行业的全能型专业媒体服务器。凭借强大的时间线模式、窗口模式、灯库模式,HirenderS3可以方便地对节目的播控流程进行管理,轻松实现绚丽的视觉特效和灵活的创意显示。

在开发板上移植了live555MediaServer,可以实现正常的传输。但似乎性能很不高,当进行16路D1的数据传输时,系统从硬盘上读取视频文件,CPU的idle时间几乎为0,以下是我用top命令看到的系统性能: Live555MediaServer 进程占用CPU-- 50%

准备工作:
1、疯狂URL(抓取推流码时用)下载地址(百度云 提取:igbk)
2、b站直播助手(下载地址)
3、obs推流工具。
开始获取推流码:
1把以上必须的工具均安装好,然后登录b站直播助手。
2打开疯狂URL 并切换为web代理模式,确保当前状态是开启状态。
3选择b站直播助手添加窗口,随便选一个窗口,我这里选的是potplayer播放器随便播放的视频窗口。
4然后点击开始直播按钮,会出现下图这个框,设置好你的直播信息,包括标题和封面等等。设置完先不要着急开播!
5疯狂URL会自动出现推流地址,双击地址。
6复制服务器部分和串流部分分别粘贴到推流工具(这里演示obs)。
7设置好推流码信息,我们点击b站助手(上面第四步),开始直播。
8开播后,右键任务栏,打开任务管理器,在进程里把b站直播助手结束掉。
9结束掉b站助手后,obs这边设置好你要推流直播的画面内容,然后点击OBS开始推流按钮即可。这一步需要注意,有时候可能出现断开重连的提示,解决办法是可以先停止推流,等待5~10秒再重新点推流基本就可以解决。最后看推流状态,如果是绿色并且有网络传输速率显示,直播就成功了。这时候你可以拿另一个没有登录直播账号的手机查看电脑开播的画面。

流媒体的需求正好最近我也在做。
根据我所知道的情况,如果你使用的是将Windows Midea Player或者QuickTime或者Real Player嵌入网页,那么不用流媒体服务器也可以实现,这样做的缺点是,视频的地址直接在控件上点右键-->属性就能看到,很容易被下载
目前主流的,还是用FLASH播放器播放,后台用流媒体服务器的方式。
主流的流媒体服务器有:
Adobe Flash Midea Server,这个是收费的,有个免费的开发版本,只能支持10个并发,而且不允许商用
red5,这个是开源的,而且是java写的,对于JAVA应用来说,是个很好的选择,即便不是JAVA应用,也很不错
对于楼主的播放不了视频,我觉得可能是OJBECT标签中少了一些东西,我记得有很多类似网址样的东西的,貌似都没有。

obs推流是没有专用的服务器。它适用很多服务器并没有专用的的。专用型服务器专用型(或称功能型)服务器是专门为某一种或某几种功能专门设计的服务器。在某些方面与通用型服务器不同。如光盘镜像服务器主要是用来存放光盘镜像文件的,在服务器性能上也就需要具有相应的功能与之相适应。光盘镜像服务器需要配备大容量、高速的硬盘以及光盘镜像软件。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13213570.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-21
下一篇 2023-06-21

发表评论

登录后才能评论

评论列表(0条)

保存