Android屏幕共享与直播-初识流媒体服务器

这是我参与8月更文挑战的第10天,活动详情查看:8月更文挑战git

Android屏幕共享与直播-初识流媒体服务器

随着短视频的火爆,手机端的直播也愈来愈流行,某音某手的催生下,不少app中也加入了直播功能。按产品经理的话来讲:有没有人看是一方面,可是你的有。 因而乎苦逼的程序员在威逼利诱下苦苦的啃着流媒体等从未接触过的字眼。程序员

1、效果gif

1.gif

2、屏幕共享与直播模型

graph LR

PC[PC] -- 推流 --> server[流媒体服务器]

Android[Android] -- 推流 --> server[流媒体服务器]

IOS[IOS] -- 推流 --> server[流媒体服务器]

server -- 播放 --> web[web]

server -- 播放 --> Android1[Android]

server -- 播放 --> IOS1[IOS]

3、流媒体的组成

流媒体并非单独的一门技术,而是一套网络传输和音视频编解码的解决方案。github

若是再详细一些,它能够分为如下部分:web

  • 网络传输 socket技术浏览器

  • 协议层 rtmp服务器

  • 封装层 flvmarkdown

  • 编解码 h264 aac网络

能够说上面随便提到的技术对开发者来讲都是难点!app

那么咱们应该怎么办?socket

随着直播愈来愈火,相应的直播解决方案也应运而生。

若是app上不是专门作直播,只是须要有直播功能,建议使用第三方平台的解决方案,不少大厂都有了一整套的解决方案,为了不广告嫌疑,这里我就不推荐了,有兴趣你们自行搜索看看。

接着一款开源的流媒体的搭建 - Red5

4、应用场景

我研究过一个现象,使用某远程软件,局域网中使用Android手机控制Windows,画面不复杂时,居然能够达到20ms以内,可把我惊呆了。毕竟编解码速度加上网络的速度传输,可能到达了极限。

我后来尝试过Android设置之间进行屏幕共享,使用硬编码硬解码能够达到100ms,并以为没有思路能够再优化了。

因此某软件确实牛啊牛啊!

这样再思考一下。

若是对稳定性高实时性要求不那么高的场景,可使用流媒体,好比直播。

若是对实时性要求高,可使用点对点技术,好比无纸化会议、远程控制、远程测试平台。

5、Red5流媒体的搭建

5.1 下载

官方地址:github.com/Red5/red5-s…

5.2 安装并配置环境变量

  1. 安装以前须要配置jdk的环境变量。

  2. 下载后移动red5文件夹到某个目录

  3. 配置red5的环境变量。

添加变量名:red5_home

变量值:E:\red5-server

添加变量名:ClassPath

变量值:.(不配置此变量,或者此变动的值不是“.”,red5启动的过程会抛异常)

5.3 启动与验证

  1. 到red5目录下,双击“red5.bat”文件,启动red5

  2. 在浏览器中输入http://localhost:5080/,可成功打开,表示red5部署成功。如图

2.png

5.4 更改端口

  1. 找到red5-server\conf\red5.properties文件,进行编辑

  2. http.host、http.port 对应 可访问的地址和端口(无需求可不更改)

  3. rtmp.host、rtmp.port 对应推送流的地址和端口

如图:

3.png

此时,一个简单的流媒体服务器已经搭建完成。咱们再使用Android的app进行推流或者播放就能够了。

相关文章
相关标签/搜索