如何在Android推流端内置轻量级RTSP服务

为满足内网无纸化/电子教室等内网超低延迟需求,避免让用户配置单独的服务器,大牛直播SDK在推送端发布了轻量级RTSP服务SDK。

内置轻量级RTSP服务后,延迟更低,体验更好(内网环境下,200-400毫秒)。

  1. 涉及相关库:libSmartPublisher.so

  2. 头文件:SmartPlayerJniV2.java SmartPublisherJniV2.java

  3. Jar:smartavengine.jar

以下是接口详解:

Android内置轻量级RTSP服务SDK接口详解

  1. 以下是接口详解:

    Android内置轻量级RTSP服务SDK接口详解

    调用描述

    接口

    接口描述

    常规功能

    Android RTMP推送端所有功能依然有效,亦可同时推送RTMP

    SmartRTSPServerSDK

    初始化RTSP Server

    InitRtspServer

    Init rtsp server(和UnInitRtspServer配对使用,即便是启动多个RTSP服务,也只需调用一次InitRtspServer,请确保在OpenRtspServer之前调用)

    创建一个rtsp server

    OpenRtspServer

    创建一个rtsp server,返回rtsp server句柄

    设置端口

    SetRtspServerPort

    设置rtsp server 监听端口, 在StartRtspServer之前必须要设置端口

    设置鉴权用户名、密码

    SetRtspServerUserNamePassword

    设置rtsp server 鉴权用户名和密码, 这个可以不设置,只有需要鉴权的再设置

    获取rtsp server当前会话数

    GetRtspServerClientSessionNumbers

    获取rtsp server当前的客户会话数, 这个接口必须在StartRtspServer之后再调用

    启动rtsp server

    StartRtspServer

    启动rtsp server

    停止rtsp server

    StopRtspServer

    停止rtsp server

    关闭rtsp server

    CloseRtspServer

    关闭rtsp server

    UnInit rtsp server

    UnInitRtspServer

    UnInit rtsp server(和InitRtspServer配对使用,即便是启动多个RTSP服务,也只需调用一次UnInitRtspServer)

    SmartRTSPServerSDK供Publisher调用的接口

    设置rtsp的流名称

    SetRtspStreamName

    设置rtsp的流名称

    给要发布的rtsp流设置rtsp server

    AddRtspStreamServer

    给要发布的rtsp流设置rtsp server, 一个流可以发布到多个rtsp server上,rtsp server的创建启动请参考OpenRtspServer和StartRtspServer接口

    清除设置的rtsp server

    ClearRtspStreamServer

    清除设置的rtsp server

    启动rtsp流

    StartRtspStream

    启动rtsp流

    停止rtsp流

    StopRtspStream

    停止rtsp流

2. Android对应接口:

/*+++++++++++++++内置轻量级RTSP服务SDK+++++++++++++++*//*+++++++++++++++SmartRTSPServerSDK+++++++++++++++*//** Init rtsp server(和UnInitRtspServer配对使用,即便是启动多个RTSP服务,也只需调用一次InitRtspServer,请确保在OpenRtspServer之前调用)** @param ctx: get by this.getApplicationContext()** @return {0} if successful*/public native int InitRtspServer(Object ctx);/** 创建一个rtsp server** @param reserve:保留参数传0** @return rtsp server 句柄*/public native long OpenRtspServer(int reserve);/** 设置rtsp server 监听端口, 在StartRtspServer之前必须要设置端口** @param rtsp_server_handle: rtsp server 句柄** @param port: 端口号,可以设置为554,或者是1024到65535之间,其他值返回失败** @return {0} if successful*/public native int SetRtspServerPort(long rtsp_server_handle, int port);/** 设置rtsp server 鉴权用户名和密码, 这个可以不设置,只有需要鉴权的再设置** @param rtsp_server_handle: rtsp server 句柄** @param user_name: 用户名(必须是英文)* * @param password:密码(必须是英文)** @return {0} if successful*/public native int SetRtspServerUserNamePassword(long rtsp_server_handle, String user_name, String password);/** 获取rtsp server当前的客户会话数, 这个接口必须在StartRtspServer之后再调用** @param rtsp_server_handle: rtsp server 句柄** @return {当前rtsp server会话数}*/public native int GetRtspServerClientSessionNumbers(long rtsp_server_handle);/** 启动rtsp server** @param rtsp_server_handle: rtsp server 句柄** @param reserve: 保留参数传0** @return {0} if successful*/public native int StartRtspServer(long rtsp_server_handle, int reserve);/** 停止rtsp server** @param rtsp_server_handle: rtsp server 句柄** @return {0} if successful*/public native int StopRtspServer(long rtsp_server_handle);/** 关闭rtsp server** @param rtsp_server_handle: rtsp server 句柄** NOTE: 调用这个接口之后rtsp_server_handle失效,** @return {0} if successful*/public native int CloseRtspServer(long rtsp_server_handle);/** UnInit rtsp server(和InitRtspServer配对使用,即便是启动多个RTSP服务,也只需调用一次UnInitRtspServer)** @return {0} if successful*/public native int UnInitRtspServer();/*---------------SmartRTSPServerSDK---------------*//*+++++++++++++++SmartRTSPServerSDK供Publisher调用的接口+++++++++++++++*//** 设置rtsp的流名称** @param handle: 推送实例句柄** @param stream_name: 流程名称,不能为空字符串,必须是英文** 这个作用是: 比如rtsp的url是:rtsp://192.168.0.111/test, test就是设置下去的stream_name** @return {0} if successful*/public native int SetRtspStreamName(long handle, String stream_name);/** 给要发布的rtsp流设置rtsp server, 一个流可以发布到多个rtsp server上,rtsp server的创建启动请参考OpenRtspServer和StartRtspServer接口** @param handle: 推送实例句柄** @param rtsp_server_handle:rtsp server句柄** @param reserve:保留参数,传0** @return {0} if successful*/public native int AddRtspStreamServer(long handle, long rtsp_server_handle, int reserve);/** 清除设置的rtsp server** @param handle: 推送实例句柄** @return {0} if successful*/public native int ClearRtspStreamServer(long handle);/** 启动rtsp流** @param handle: 推送实例句柄** @param reserve: 保留参数,传0** @return {0} if successful*/public native int StartRtspStream(long handle, int reserve);/** 停止rtsp流** @param handle: 推送实例句柄** @return {0} if successful*/public native int StopRtspStream(long handle);/*---------------SmartRTSPServerSDK供Publisher调用的接口---------------*//*---------------内置轻量级RTSP服务SDK---------------*/

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/553180.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何优雅的实现一个靠谱的RTSP播放器?

二话不说,NO 图 NO BB(以大牛直播SDK播放海康摄像机RTSP H.265流为例): 行业的浮躁,好多开发者甚至连rtsp、rtp细节不了解,依葫芦画瓢调用了ffmpeg的一些接口,就实现了个简单版的播放器&#xf…

电脑自带的画图工具怎么使用笔刷

电脑自带的画图工具中有笔刷功能,该怎么使用这个功能涂鸦图片呢?下面我们就来看看详细的教程。 一、书法笔刷1号的方法 电脑自带的画图工具怎么使用笔刷? 1、打开软件。 电脑自带的画图工具怎么使用笔刷? 2、打开图片。 电脑自带的画图工具怎么使用笔刷? …

MQTT代理服务器特性对比

ServerQoS 0QoS 1QoS 2authbridge$SYSSSLdynamic topicsclusterwebsocketsplugin system2lemetry✔✔✔✔✔✔✔✔✔✘Apache ActiveMQ✔✔✔✔✘✘✔✔✔✔✔Apache ActiveMQ Artemis✔✔✔✔✘✘✔✔✔✔✔Bevywise IoT Platform✔✔✔✔rm✔✔✔✔✔rmemitter✔✘✔✘✘✔✔…

foxmail邮箱日历怎么新建事务

我们在日程使用foxmail的时候,很少有邮箱用户知道foxmail是可以创建事务的,该怎么新建事务呢?下面我们就来看看详细的教程。 foxmail邮箱日历怎么新建事务? 1、我们在计算机的桌面内,点击选择foxmail,然后进入到foxmail的主页…

如何对RTSP播放器做功能和性能评估

好多开发者在做产品竞品分析的时候,不知道如何界定一个RTSP播放器,大牛直播SDK认为,一个RTSP播放器,不是说有几个类似于Open/Close接口就够了,好的RTSP播放器需要具备以下功能和性能属性: 1. 低延迟&#…

如何实现RTSP/RTMP流接入到RTSP网关

好多企业或开发者给我们反映,他们期望能把外网的rtsp或rtmp流,直接拉取注入到内网流媒体服务器,保证内网用户,无需访问,直接链接到内网服务器就可以观看到公网rtmp/rtsp流。 优势如下: 1. 内网用户无需访…

TIM怎么设置禁止窗口抖动 TIM防抖设置技巧

我们使用TIM的时候,有时别人给自己发窗口抖动很烦人,想要禁止自己抖动窗口,该怎么设置呢?下面我们就来看看详细的教程。 1、首先点击右上角的三个横线 TIM怎么设置禁止窗口抖动? TIM防抖设置技巧 2、然后选择下拉界面中的设置 TIM怎么设…

利用RTMP或RTSP实现跨平台一对一互动功能

目前市面上大多一对一互动都是基于WebRTC,缺点如下: 服务器部署非常复杂,不利于私有部署,在一些私密性高的场景下,无法使用,如公安、市政等体系;传输基于UDP,很难保证传输质量&…

RTSP流怎么录制

大牛直播录像SDK可作为单独功能模块使用(如同时多路录像存档),亦分布于以下模块,和其他模块组合调用: windows/android/iOS推送端SDK Demo;windows/android/iOS播放端SDK Demo; 大牛直播录像SD…

京东极速版如何取消订单 京东极速版怎样取消订单

京东极速版中,可能有一些取消的订单想要删除掉,或者有些完成的订单想要删除,要怎么删除呢? 打开京东极速版APP 京东极速版如何取消订单 京东极速版怎样取消订单 点击右下角“我的” 京东极速版如何取消订单 京东极速版怎样取消订单 点击…

RTSP摄像机为什么还保留MJPEG编码格式

细心的开发者会发现,海康大华之类摄像机厂商,除了常规的H.264、H.265(HEVC)编码外,主码流或子码流依然会有MJPEG编码选项。 相对来说,MJPEG编码有以下特点: MJPEG(MotionJPEG)是以JPEG技术为基…

rtmp/rtsp直播播放器选择

相信大家在做rtmp、rtsp直播的时候,最大的困惑就是选个靠谱的播放器,直播的延迟,一定意义上说,90%的取决于播放器的好坏。 以下是推荐的大牛直播跨平台播放器SDK(windows/android/iOS),大家可以…

QQ浏览器怎么把文件添加到私密空间 怎么使用私密空间

一些很重要的文件是需要被保护的,那么在用户需要保护一些文件的时候要如何操作呢,今天小编就会与大家一起来分享一下自己的使用方法,让用户在使用的时候可以更加的方便,通过qq浏览器的私密空间为用户的文件多加一个保证&#xff0…

如何在IE浏览器播放RTSP或RTMP流

好多开发者一直苦恼于如何在IE浏览器环境下,构建低延迟的RTSP或RTMP播放,对于RTSP流来说,好多公司通常的做法是把RTSP转RTMP,然后分发到RTMP服务器,然后服务器转http-flv出来,浏览器直接播放http-flv流&…

如何解决Win11系统蓝牙鼠标经常掉线

相比2.4GHz无线鼠标,蓝牙鼠标基本上不用配备信号接收装置,因为很多笔记本装载了蓝牙模块,因此很多人开始用上蓝牙鼠标。不过在Win11上蓝牙鼠标并不稳定,会频繁出现断连卡顿。出现这样的问题该如何解决呢?下面小编就来教大家Win11…

跨平台RTSP/RTMP转RTMP转发SDK

一个好的转发模块,首先要低延迟!其次足够稳定、灵活、有状态反馈机制、资源占用低,如果可以跨平台,还能以SDK形式提供,会给开发者提供更大的便利! 大牛直播SDK(Github: https://github.com/daniulive/Smar…

GitHub上排名前100的Android开源库介绍

GitHub上排名前100的Android开源库介绍 文章来源: http://www.open-open.com/news/view/1587067#6734290-qzone-1-31660-bf8335a56eb142042e6dc893bd988125 摘要: 本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍&#xff0c…

Win11系统获取管理员权限的方法

由于微软最近推出了Win11的操作系统,所有有很多小伙伴都进行安装体验,在使用Win11时,如果没有获取管理员权限,很多操作可能会无法进行,这时我们就需要获取管理员权限了,那么Win11系统该如何获取管理员权限?…

一张图了解大牛直播SDK

来源:https://github.com/daniulive/SmarterStreaming

RTSP、RTMP、HTTP协议区别

HTTP将数据作为文件处理,所以HTTP不是流媒体协议,RTMP和RTSP是流媒体协议。 RTMP是Adobe的私有协议,未完全公开,RTSP和HTTP是共有协议。 RTMP一般传输flv,f4v格式流,RTSP传输ts,MP4格式流,HTTP没…