首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏RTSP/RTMP直播相关

    Android平台实现RTSP拉流转发至轻量级RTSP服务

    ​技术背景我们在做Android平台RTSP转发模块的时候,有公司提出来这样的技术需求,他们希望拉取外部RTSP摄像头的流,然后提供个轻量级RTSP服务,让内网其他终端过来拉流。 回调上来的数据,可以作为轻量级RTSP服务的数据源(投递编码后数据),推送端,只要启动RTSP服务,然后发布RTSP流即可。 ;rtsp_handle_ = libPublisher.OpenRtspServer(0);if (rtsp_handle_ == 0) {Log.e(TAG, "创建rtsp server实例失败! = 0) {libPublisher.CloseRtspServer(rtsp_handle_);rtsp_handle_ = 0;Log.e(TAG, "创建rtsp server端口失败! ;} else {libPublisher.CloseRtspServer(rtsp_handle_);rtsp_handle_ = 0;Log.e(TAG, "启动rtsp server失败!

    37510编辑于 2024-07-08
  • 来自专栏RTSP/RTMP直播相关

    Android平台如何实现外部RTSP|RTMP流注入轻量级RTSP服务模块(内网RTSP网关)

    技术背景今天分享的是外部RTSP或RTMP流,拉取后注入到本地轻量级RTSP服务模块,供内网小并发场景下使用,这里我们叫做内网RTSP网关模块。 内网RTSP网关模块,系内置轻量级RTSP服务模块扩展,完成外部RTSP/RTMP数据拉取并注入到轻量级RTSP服务模块工作,多个内网客户端直接访问内网轻量级RTSP服务获取公网数据,无需部署单独的服务器 内置轻量级RTSP服务模块和内置RTSP网关模块共同点:内置轻量级RTSP服务模块和内置RTSP网关模块,核心痛点是避免用户或者开发者单独部署RTSP或者RTMP服务,数据汇聚到内置RTSP服务,对外提供可供拉流的 内置RTSP网关模块,实际上是RTSP/RTMP拉流模块+内置轻量级RTSP服务模块组合出来的。 网关,在小并发的环境下,不需要单独部署RTSP或RTMP服务,配合我们RTSP播放器,延迟毫秒级,优势非常明显,感兴趣的开发者可参考,如果需要测试,可测试看看,不止Android平台,Windows也有类似的实现

    1.2K20编辑于 2023-05-17
  • 来自专栏RTSP/RTMP直播相关

    Android平台内网RTSP网关和轻量级RTSP服务的区别和联系

    除了安卓自带摄像头的数据,还有车载RTSP摄像头,由于系统部署在安卓端,我们初步设计的方案,是走轻量级RTSP服务+内网RTSP网关模块+RTSP直播播放模块,不走RTMP,因为RTMP的话,需单独部署 好多开发者可能对轻量级RTSP服务和内置RTSP网关模块分不清楚。 实际上,内网RTSP网关模块,算是内置轻量级RTSP服务模块扩展,实现外部RTSP/RTMP数据拉取并注入到轻量级RTSP服务模块工作,多个内网客户端直接访问内网轻量级RTSP服务获取公网数据,无需部署单独的服务器 内置轻量级RTSP服务模块和内置RTSP网关模块共同点:内置轻量级RTSP服务模块和内置RTSP网关模块,核心痛点是避免用户或者开发者单独部署RTSP或者RTMP服务,数据汇聚到内置RTSP服务,对外提供可供拉流的 内置RTSP网关模块,实际上是RTSP/RTMP拉流模块+内置轻量级RTSP服务模块组合出来的。

    49700编辑于 2023-08-15
  • 来自专栏RTSP/RTMP直播相关

    Android平台RTSP流如何添加动态水印后转推RTMP或轻量级RTSP服务

    技术实现废话不多说,下图先通过Android平台拉取RTSP流,然后把解码后的yuv或rgb数据回上来,以图层的形式投递到推送端,需要加水印的话,添加文字水印或图片水印(系动态水印)图层,底层做动态叠加后二次编码打包 ,通过启动轻量级RTSP服务,发布RTSP流,生成二次处理后的RTSP新的拉流url,如果需要推送至RTMP,只要调用推送RTMP的接口即可,本地录制,可以设置录制目录等信息,保存二次编码后的MP4文件到本地 = 0) {libPublisher.CloseRtspServer(rtsp_handle_);rtsp_handle_ = 0;Log.e(TAG, "创建rtsp server端口失败! ;} else {libPublisher.CloseRtspServer(rtsp_handle_);rtsp_handle_ = 0;Log.e(TAG, "启动rtsp server失败! ;return;}startLayerPostThread();btnRTMPPusher.setText("停止推送");}});总结以上是Android平台拉取RTSP数据,然后添加动态水印后,二次输出到轻量级

    72310编辑于 2023-12-25
  • 来自专栏GB28181技术

    Android平台如何实现RTSP转GB28181

    实际上,在做Android平台GB28181设备接入模块的时候,我们已经有了非常好的技术积累,比如RTMP推送、轻量级RTSP服务、一对一互动模块、业内几乎最好的RTMP|RTSP低延迟播放器。 Android平台GB28181接入SDK(SmartGBD),主要实现不具备国标音视频能力的 Android终端,通过平台注册接入到现有的GB/T28181—2016(包括后续的GB/T28181—2022 264/HEVC数据,或者本地解析的MP4音视频数据);拉取RTSP或RTMP流并接入至GB28181平台(比如其他IPC的RTSP流,可通过Android平台GB28181接入到国标平台)。 目前,我们支持到的功能如下: [视频格式]H.264/H.265(Android H.265硬编码); [音频格式]G.711 A律、AAC; [音量调节]Android平台采集端支持实时音量调节; [ 技术实现由于我们已经有非常成熟的RTSP直播播放模块和RTSP转RTMP推送模块,实际上,RTSP转GB28181这块,和转RTMP原理类似,把拉流过来的RTSP音视频数据,回调上来,然后通过推送接口,

    55910编辑于 2024-01-31
  • 来自专栏RTSP/RTMP直播相关

    Android平台轻量级RTSP服务模块如何实现一个服务发布多路RTSP流?

    我们在做Android平台轻量级RTSP服务和内网RTSP网关的时候,遇到过这样的问题,如何同时发布多路RTSP流出去? ()会返回rtsp_handle_,这个句柄对应一个RTSP Service。 ;rtsp_handle_ = libPublisher.OpenRtspServer(0);if (rtsp_handle_ == 0) {Log.e(TAG, "创建rtsp server实例失败! = 0) {libPublisher.CloseRtspServer(rtsp_handle_);rtsp_handle_ = 0;Log.e(TAG, "创建rtsp server端口失败! (false);}}};如何启动一个服务,发布多个RTSP流(对应不同的数据源和RTSP拉流URL)?

    52720编辑于 2023-09-25
  • 来自专栏RTSP/RTMP直播相关

    Android平台轻量级RTSP服务模块技术接入说明

    :name="android.permission.CAMERA"/><uses-feature android:name="android.hardware.camera.autofocus" />< uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/><uses-permission android 清除设置的rtsp server启动rtsp流StartRtspStream启动rtsp流停止rtsp流StopRtspStream停止rtsp流功能支持 ​[视频格式]H.264/H.265(Android 支持RTSP端口设置;支持RTSP鉴权用户名、密码设置;支持获取当前RTSP服务会话连接数;支持Android 5.1及以上版本。 接口调用详解本文以大牛直播SDK Android平台Camera2Demo为例,启动RTSP服务、发布RTSP流之前,可以先选择视频分辨率、软编还是硬编码,音频是PCMA还是AAC编码等基础设置,其他参数的设置

    46510编辑于 2024-07-17
  • 来自专栏RTSP/RTMP直播相关

    Android平台RTSP|RTMP播放器(SmartPlayer)集成必读

    ​技术背景好多开发者拿到大牛直播SDK的Android平台RTSP、RTMP播放模块,基本上不看说明,测试后,就直接集成到自己系统了。 不得不说,我们的模块虽然接口很多,功能支持全面,但是上层的demo设计逻辑确实简单,稍微有些Android开发基础的,都可以轻松处理。 :name="android.permission.WRITE_EXTERNAL_STORAGE" ></uses-permission><uses-permission android:name="android.permission.INTERNET " ></uses-permission><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />< uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />Load相关so:static { System.loadLibrary

    1.2K10编辑于 2024-09-05
  • 来自专栏RTSP/RTMP直播相关

    Android平台轻量级RTSP服务之GStreamer还是SmartRtspServer

    ​技术背景Android上启动一个轻量级RTSP服务,让Android终端像网络摄像头一样提供个外部可供RTSP拉流的服务,在内网小并发又不希望部署单独流媒体服务的场景下非常适用,在Android终端实现这样的流媒体服务 GStreamer特点在Android平台上使用GStreamer来启动RTSP服务涉及几个关键步骤,包括配置GStreamer环境、编写GStreamer管道(pipeline)以及集成到Android 集成到Android应用有了GStreamer管道的代码,你需要将其集成到你的Android应用中:在Android的Activity或Service中调用JNI函数来初始化GStreamer并设置管道 功能设计 ​[视频格式]H.264/H.265(Android H.265硬编码); [音频格式]G.711 A律、AAC;协议:RTSP; [音量调节]Android平台采集端支持实时音量调节; [H 支持RTSP端口设置;支持RTSP鉴权用户名、密码设置;支持获取当前RTSP服务会话连接数;支持Android 5.1及以上版本。

    2.2K10编辑于 2024-09-08
  • 来自专栏RTSP/RTMP直播相关

    Android平台如何实现多路低延迟RTSP|RTMP播放?

    技术背景 实际上,我们在2015年做Android平台RTSP、RTMP播放模块的时候,第一版就支持了多实例播放,因为SDK设计比较灵活,做个简单的player实例封装即可实现多实例播放(Android 1 : 0); //设置RTSP超时时间 int rtsp_timeout = 10; lib_player_.SmartPlayerSetRTSPTimeout(handle, rtsp_timeout ); //设置RTSP TCP/UDP模式自动切换 int is_auto_switch_tcp_udp = 1; lib_player_.SmartPlayerSetRTSPAutoSwitchTcpUdp is_auto_switch_tcp_udp); lib_player_.SmartPlayerSaveImageFlag(handle, 1); // It only used when playback RTSP is_need_call) lib_player_.SmartPlayerStopRecorder(get()); return true; } 总结 上面只是简单的播放、录像的演示,除此之外,大牛直播SDK的RTSP

    40500编辑于 2024-07-16
  • 来自专栏RTSP/RTMP直播相关

    Android平台RTSP|RTMP直播播放器技术接入说明

    ​摘要本文详细介绍了在 Android 平台上集成 RTSP 和 RTMP 直播播放模块的技术背景、系统要求、准备工作、接口设计、功能支持以及接口调用流程。 权限配置在 AndroidManifest.xml 文件中添加以下权限:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE " /><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS " /><uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />3. 系统兼容:支持 Android 5.1 及以上版本。 六、接口调用详解1.

    96420编辑于 2025-03-02
  • 来自专栏海之滨云视频和流媒体技术

    Android流媒体开发之路三:基于NDK开发Android平台RTSP播放器

    基于NDK开发Android平台RTSP播放器 最近做了不少android端的开发,有推流、播放、直播、对讲等各种应用,做了RTMP、RTSP、HTTP-FLV、自定义等各种协议,还是有不少收获和心得的 这篇文章里,我打算描述一下我对于开发AndroidRTSP播放器的程序框架,和设计思路,有相关需求的,希望能借此扩展下思路。 逻辑思路首先,既然是RTSP播放器,那必然要做RTSP的解析,这部分对我来说已经是非常熟悉了。 我常用的RTSP解析代码,一般是基于Live555和FFMpeg的库,通过调用相关的接口,来实现RTSP客户端协议的数据接收,然后再做数据分析。 除非是整套都是自己做的RTSP服务器和RTSP客户端,否则我一般都是用他们两个,为的是最大程度的兼容第三方RTSP服务器,比如各种网络摄像头、各种设备、以及其他公司自己写的RTSP server等等,具体就不说了

    3.2K20编辑于 2023-04-06
  • 来自专栏RTSP/RTMP直播相关

    如何实现Android端获取RTSP或RTMP流转推RTMP

    技术背景 最近不少开发者找到我们,他们在做智能家居等传统行业时,希望实现在Android板件拉取本地的RTSP或RTMP流,然后对外推送RTMP出去,亦或内部启个轻量级RTSP服务,提供个对外对接的媒介 URL,简单来说,设计架构图如下: daniulive_relaysdk_20200130.png 基于上诉诉求,我们以大牛直播SDK (官方)Android端的 SmartRelayDemoV2 工程为例 数据注入轻量级RTSP服务:拉流的数据,注入轻量级RTSP服务,对外提供RTSP URL。 先上图 android_relay.jpg Demo主要实现了以下几个功能点展示: 1. 拉取的流数据,注入轻量级RTSP服务,启动服务后,发布RTSP流,对外提供可访问的RTSP URL。 = 0) { libPublisher.CloseRtspServer(rtsp_handle_); rtsp_handle_ = 0; Log.e(TAG, "创建rtsp

    3.6K10发布于 2021-04-06
  • 来自专栏RTSP/RTMP直播相关

    Android平台RTSP|RTMP直播播放器技术接入说明

    无需赘述,全自研内核,行业内一致认可的跨平台RTSP、RTMP直播播放器。本文以Android平台为例,介绍下如何集成RTSP、RTMP播放模块。 :name="android.permission.WRITE_EXTERNAL_STORAGE" > </uses-permission> <uses-permission android:name= "android.permission.INTERNET" > </uses-permission> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS 接口调用详解 本文以大牛直播SDK Android平台SmartPlayerV2为例,播放之前,设置初始化参数配置(软解还是硬解、buffer time等)和需要播放的RTSP或RTMP URL,点开始播放即可 ; import android.util.Log; import android.view.Surface; import android.view.SurfaceView; import android.view.View

    93810编辑于 2024-07-25
  • 来自专栏python3

    python rtsp

    # -*- coding: utf-8 -*- """ A demo python code that .. 1) Connects to an IP cam with RTSP 2) Draws RTP ***************************************** ip="192.168.1.74" # IP address of your cam port=1616 adr="rtsp **************************************************************************** dest="DESCRIBE "+adr+" RTSP \r\nCSeq: 2\r\nUser-Agent: python\r\nAccept: application/sdp\r\n\r\n" setu="SETUP "+adr+"/trackID=1 RTSP .com/  https://github.com/odie5533/Python-RTSP

    2.2K20发布于 2020-01-06
  • 来自专栏RTSP/RTMP直播相关

    Android平台RTMP|RTSP直播播放器功能进阶探讨

    很多开发者在跟我聊天的时候,经常问我,为什么一个RTMP或RTSP播放器,你们需要设计那么多的接口,真的有必要吗? 带着这样的疑惑,我们今天聊聊Android平台RTMP、RTSP播放器常规功能,如软硬解码设置、实时音量调节、实时快照、实时录像、视频view翻转和旋转、画面填充模式设定、解码后YUV、RGB数据回调等 软硬解码设置Android平台特别是超过1080p的分辨率的流数据,如果设备性能一般,软解效率不一定高,这时候建议硬解码,硬解码我们分两种,一种是设置surface模式的硬解码,这种无法快照和回调yuv 模式设置针对RTSP的TCP、UDP模式设置,RTSP超时时间设置,大家可能遇到过这样的场景,有些RTSP服务或网络环境下,只支持TCP或UDP,这时候,就需要有TCP/UDP模式设置,还有自动切换TCP UDP模式选项,如果连上RTSP服务,但是收不到数据,通过RTSP timeout时间来设置重连尝试间隔:/** * 设置RTSP TCP/UDP模式(默认UDP模式) * * @param handle

    1.2K20编辑于 2023-08-26
  • 来自专栏RTSP/RTMP直播相关

    Android平台RTMP推送|轻量级RTSP服务能力封装代码实现

    ​好多开发者问我们,有没有针对Android平台RTMP直播推送、轻量级RTSP服务模块的进一步封装,可以更便捷的调用大牛直播SDK接口。 为此,我们分享下我们针对Android平台SmartPublisher做的二次封装代码:package com.daniulive.smartpublisher;import android.util.Log ()) { lib_publisher_.StopRtspStream(get()); this.is_rtsp_publishing is_rtsp_publishing()) { Log.w(TAG, "it's not publishing rtsp stream, native_handle:" + get _) { this.is_rtsp_publishing_ = false; is_need_call = true;

    54200编辑于 2023-12-22
  • 来自专栏RTSP/RTMP直播相关

    Android平台RTSP|RTMP播放器之视音频效果设置

    RTSP|RTMP播放器模块是大牛直播SDK的SmartMediaKit下非常优异的子产品,功能丰富、性能优异,毫秒级超低延迟,支持Windows、Linux(x86_64|aarch64架构)、Android if successful */public native int SmartPlayerSetAudioOutputType(long handle, int use_audiotrack);总结目前Android ;支持软解码,特定机型硬解码;支持RTSP TCP、UDP模式设置;支持RTSP TCP、UDP模式自动切换;支持RTSP超时时间设置,单位:秒;支持buffer时间设置,单位:毫秒;支持超低延迟模式; AudioTrack、OpenSL ES模式;支持jpeg、png实时截图;支持实时音量调节;支持解码前音视频数据回调;支持解码后YUV/RGB数据回调;支持Enhanced RTMP;支持扩展录像功能; 支持Android 一个好的RTMP或RTSP播放器,不仅是需要功能完善,还需要有非常优异的性能,特别是多实例播放,资源占有也是考量的一个重要因素,其次,直播特别是和操控相关的场景,都需要极致的低延迟才行,真是应了那句话,

    67410编辑于 2024-09-05
  • 来自专栏全栈程序员必看

    RTSP协议

    RTSP对流媒体提供诸如暂停、快进等控制,而它本身并不传输数据。RTSP的作用相当于流媒体服务器的远程控制。 2、RTSP与HTTP的区别与联系 联系:两者都用纯文本来发送消息,且RTSP协议语法也和HTTP类似。RTSP一开始这样设计,也是为了能够兼容使用以前写的HTTP协议分析代码。 区别:rstp有状态,不同的是RTSP的命令需要知道现在处于一个什么状态,也就是说RTSP的命令总是按照顺序来发送的,某个命令总在另外一个命令之前发送。RTSP不管处于什么状态都不会断掉连接。 RTSP版本 状态码 解释 CR LF 消息头 CR LF CR LF 消息体 CR LF 其中RTSP版本一般是RTSP/1.0,状态码是一个数值,200表示成功,解释是与状态码对应的文本解释,详细请见 交互流程 C表示rtsp客户端, S表示rtsp服务端。

    5.6K40编辑于 2022-09-06
  • 来自专栏RTSP/RTMP直播相关

    Android平台实现RTSP|RTMP转GB28181网关接入

    ​ 背景 在事先Android平台RTSP、RTMP转GB28181网关之前,我们已经实现了Android平台GB28181的接入,可实现Android平台采集到的音视频数据,编码后,打包按需发到GB28181 简单来说,Android平台RTSP、RTMP转GB28181网关平台,是GB28181设备接入模块的一个扩展,由拉流端、GB28181接入端两个模块组成。 轻量级RTSP服务模块、RTSP|RTMP转GB28181网关模块和内置RTSP网关模块的区别和联系: 内置轻量级RTSP服务模块和内置RTSP网关模块,核心痛点是避免用户或者开发者单独部署RTSP或者 内置RTSP网关模块,实际上是RTSP/RTMP拉流模块+内置轻量级RTSP服务模块组合出来的。 技术实现 rtsp2gb28181.jpg 本文以之前Android平台RTSP|RTMP转发demo为例,在这个基础上,加GB28181网关扩展。

    91730编辑于 2022-04-19
领券