Android 端实现无人机直播

简介: Android 端实现无人机直播

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

客户端推流


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


LiveStreamManager.java

DJISDKManager.getInstance().getLiveStreamManager()
复制代码


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


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

1、设置 rtmp 地址


Sets the URL address of the RTMP Server.


DJISDKManager.getInstance().getLiveStreamManager().setLiveUrl(liveShowUrl);
复制代码

2、启动直播


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、关闭直播

Stop the live streaming. The operation is asynchronous


DJISDKManager.getInstance().getLiveStreamManager().stopStream();
复制代码

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

服务端抓流


其实,只要服务端支持 rtmp 协议的都是可以直接解析播放的,如果为了能直观的看到效果,可以使用 B 站的直播间:


image.png

将 rtmp 地址与直播码拼接成 liveShowUrl ,直接 set 给 LiveStreamManager,然后 startStream 开启直播:


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

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


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

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

下载


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

安装


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


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

image.png

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

image.png

Publisher 页面解释(从上而下):

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


server 端设置步骤:


1、填写自己的 Name ,设置直播码

2、点击  servers 的 connect 按钮开启服务,开启成功时,按钮会变成 close

3、点击 Play 开始抓流播放,播放成功时,按钮会变成 Pause

client 端设置步骤:

1、将 Location 的 rtmp 地址与 Name 直播码拼接成直播地址 rtmp://Red5 IP地址/oflaDemo/codelang

2、setLiveUrl

3、startStream


目录
相关文章
|
Android开发
flutter中实现仿Android端的onResume和onPause方法
flutter中实现仿Android端的onResume和onPause方法
|
缓存 JSON Java
java 实现读取txt文件,反射创建对象,android 手机缓存文件目录
java 实现读取txt文件,反射创建对象,android 手机缓存文件目录
450 1
java 实现读取txt文件,反射创建对象,android 手机缓存文件目录
|
Android开发 容器
Android实现面包屑效果,支持Fragment联动
Android实现面包屑效果,支持Fragment联动
|
Android开发
Android实现连线题效果
Android实现连线题效果
|
移动开发 JavaScript Android开发
通过howler.js实现在Android下的微信浏览器自动播放音频
通过howler.js实现在Android下的微信浏览器自动播放音频
551 0
通过howler.js实现在Android下的微信浏览器自动播放音频
|
数据库 Android开发
android 多级下拉菜单实现教程 greendao使用
android 多级下拉菜单实现教程 greendao使用
250 0
android 多级下拉菜单实现教程 greendao使用
|
存储 API Android开发
深入剖析Android四大组件(四)——Messenger实现Android IPC
深入剖析Android四大组件(四)——Messenger实现Android IPC
150 2
|
监控 前端开发 Java
Android自定义控件(十)——SurfaceView实战实现天气APP背景移动效果
Android自定义控件(十)——SurfaceView实战实现天气APP背景移动效果
459 0
|
XML 开发工具 Android开发
Android自定义控件(十三)——实现CSDN搜索框文字提示容器
Android自定义控件(十三)——实现CSDN搜索框文字提示容器
310 0
Android自定义控件(十三)——实现CSDN搜索框文字提示容器
|
Android开发
Android自定义控件(七)——ShapeDrawable实现放大镜效果
Android自定义控件(七)——ShapeDrawable实现放大镜效果
507 0
Android自定义控件(七)——ShapeDrawable实现放大镜效果