Android 端实现无人机直播

在 MSDK-4.9 版本就已支持了直播的功能,只需提供 rtmp 地址就可以实现无人机直播。

<a name="gZ1RP"></a>

客户端推流

MSDK-4.9 提供了 LiveStreamManager 来管理图传的推流:

LiveStreamManager.java

 DJISDKManager.getInstance().getLiveStreamManager()

LiveStreamManager 实现直播功能非常简单,只需要实现三个步骤:

  1. 设置 rtmp 抓流地址
  2. 启动推流
  3. 关闭推流

1、设置 rtmp 地址<br />Sets the URL address of the RTMP Server.

DJISDKManager.getInstance().getLiveStreamManager().setLiveUrl(liveShowUrl);

2、启动直播<br />Starts the live streaming.The encoder will start to encoding the video frame if it is needed. The video will be streamed to the RTMP server if the server is available

 int result = DJISDKManager.getInstance().getLiveStreamManager().startStream();

返回的 result 是一个 error code.

3、关闭直播<br />Stop the live streaming. The operation is asynchronous

 DJISDKManager.getInstance().getLiveStreamManager().stopStream();

当然,LiveStreamManager 也提供了其他功能的设置,具体参数设置可以查看 MSDK-LiveStreamManager Doc

<a name="p2S1E"></a>

服务端抓流

其实,只要服务端支持 rtmp 协议的都是可以直接解析播放的,如果为了能直观的看到效果,可以使用 B 站的直播间:<br />image.png<br />将 rtmp 地址与直播码拼接成 liveShowUrl ,直接 set 给 LiveStreamManager,然后 startStream 开启直播:

String liveShowUrl = rtmp 地址+直播码
DJISDKManager.getInstance().getLiveStreamManager().setLiveUrl(liveShowUrl);
DJISDKManager.getInstance().getLiveStreamManager().startStream();

等待一小段时间,就可以在直播间看到无人机传输过来的直播视频了。

我们也可以基于一些第三方的开源框架,搭建自己的抓流服务端.

<a name="fqCBK"></a>

Red5-Server

Red5 是一个用Java编写的开源Flash服务器,支持的功能有:

  • Streaming Video (FLV, F4V, MP4, 3GP)
  • Streaming Audio (MP3, F4A, M4A, AAC)
  • Recording Client Streams (FLV and AVC+AAC in FLV container)
  • Shared Objects
  • Live Stream Publishing
  • Remoting
  • Protocols: RTMP, RTMPT, RTMPS, and RTMPE

<a name="W7rcD"></a>

下载

当前最新版本是 Release-1.1.1 版本,下载最新的 red5-server-1.1.1.zip 即可

<a name="Mr1pQ"></a>

安装

如果嫌弃上面安装过于繁琐的话,这里推荐个简易安装:

  1.  JDK 环境必须安装
  2. 在 red5-server-1.1.1 文件夹下运行 ./red5.sh start 命令,启动 red5 服务

image.png
<a name="S6CAG"></a>

运行
  1. 在浏览器中输入本地的 red5 服务地址: http://localhost:5080/
  2. 选择  launch a demo
  3. 选择  Publisher demo

image.png<br />Publisher 页面解释(从上而下):

  • Monitor:  View(预览页面)/Publish(推送)切换
  • Log:  当前执行的日志
  • Name: 直播码,和 B 站的直播码类似
  • Stop: 停止直播
  • Play/Pause: 播放/暂停直播
  • Enable Aundio/Video :  勾选当前可用
  • servers:  直播地址
  • close/connect : 关闭/连接直播服务
  • Location: rtmp 推流地址

server 端设置步骤:<br />1、填写自己的 Name ,设置直播码<br />2、点击  servers 的 connect 按钮开启服务,开启成功时,按钮会变成 close<br />3、点击 Play 开始抓流播放,播放成功时,按钮会变成 Pause

client 端设置步骤:<br />1、将 Location 的 rtmp 地址与 Name 直播码拼接成直播地址 rtmp://Red5 IP地址/oflaDemo/codelang <br />2、setLiveUrl<br />3、startStream<br />image.png<br />我们在寻找志同道合的小伙伴,有兴趣的 Android 小伙伴可以 M 我哦,大量招人!!!

© 著作权归作者所有
这个作品真棒,我要支持一下!
奇志技术团队博客 http://meshtech.co/
0条评论
top Created with Sketch.