Android Rtmp客户端搭建
来源:互联网 发布:Python如何使用 编辑:程序博客网 时间:2024/06/10 11:29
http://blog.csdn.net/hack__zsmj/article/details/50177669
@Author:明明不说话
@Statement:博客内容纯属个人观点,欢迎转载,转载请注明,谢谢RTMP介绍
RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括Adobe Media Server/Ultrant Media Server/red5等。
Android的RTMP方案
Android上常用的RTMP工程可以用juv-rtmp-client,这是一款收费的软件,但是可以在网上找破解版作为学习了解使用,可以参考该示例。使用起来就是调用API,底层基本上都不要处理接触,比较方便。
同时还有一个开源工程rmtpdump,完全开源C语言代码,我们可以自己根据需要编译和定制,例如要修改rtmp协议时(rtmp内容修改添加部分字段),则rtmpdump则体现出它的优势了。RtmpDump使用
下载RtmpDump
可以在RtmpDump网站上下载源码编译(编译方法可以网上搜索),或者使用官网已经编译好的rtmpdump-2.3-android.zip库
rtmp native实现
native代码添加
图1
按照Android jni代码方式实现添加,不清楚百度或者参考demo,可以看到代码结构里面包含了librtmp.a和librtmp.so两个文件,其实只是链接方式的不同而已,最后JNI结构如图1所示,Android.mk根据librtmp目标文件是否静态而选在PREBUILT_SHARED_LIBRARY还是PREBUILT_STATIC_LIBRARYAndroid.mk按如下编写
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
Application.mk编写
- 1
- 2
- 3
rtmpdump jni使用
编写nativeRtmp.c,分别编写初始化,销毁和发送函数,来测试使用librtmp.so
发送函数
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
初始化
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
销毁
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
jni动态加载
这里采用JNI_OnLoad函数来加载jni的方法,供给API调用
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
ps:这里需要定义ClassName变量,例如demo中
- 1
就是说,是org.src.rtmp_get.rtmpJNI类调用了该jni的接口,根据实际调用类的位置和名字来修改该ClassName的名字
rtmp 应用调用
java 类实现
添加需要的libray以及申明Native本地方法,这里需要和JNINativeMethod 中定义的一致,否则会报找不到该接口。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
应用实现
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
ps一定要记得申明权限,否则会不能正常访问网络
- 1
测试链接
可以用简易RED5流媒体服务器测试参考Windows环境搭建Red5流媒体服务器指南,执行red5.bat,然后执行上述应用,看是否能够链接上服务器。
总结
上面就是对rtmpDump的使用,可以参考如上操作,附上demo以及相关链接,Q&A。
Demo下载地址
red5流媒体服务器搭建下载地址
版权声明:本文为博主原创文章,未经博主允许不得转载。
- Android Rtmp客户端搭建
- Android Rtmp客户端搭建
- Android Rtmp客户端搭建
- 如何简单有效地搭建Android流播放RTMP
- nginx搭建rtmp服务器
- nginx搭建rtmp服务器
- nginx搭建rtmp服务器
- nginx rtmp 环境搭建
- MAC搭建RTMP服务器
- Nginx搭建rtmp流媒体服务器
- nginx hls rtmp 环境搭建
- ubuntu13搭建rtmp流媒体服务器
- 利用crtmpserver搭建rtmp服务器
- 使用Nginx搭建RTMP服务器
- nginx + rtmp 搭建流媒体服务器
- ubuntu 15.10 nginx rtmp 搭建
- Mac搭建nginx+rtmp服务器
- Mac搭建nginx+rtmp服务器
- 订阅号如何获取用户基本信息?
- WPS为公式编号
- 生成随机数
- 用例设计方法
- RAC grid卸载
- Android Rtmp客户端搭建
- java中HashMap实现细节1
- angular2 中使用第三方组件样式调整
- yii2框架初识
- 学习Axure RP原型设计
- HTML中为何p标签内不可包含div标签?那哪些块元素里面不能放哪些块元素呢?
- Deep Learning模型之:CNN卷积神经网络(一)深度解析CNN
- Android Studio的Instant Run工作原理及用法
- JS事件监听的添加方法