首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏用户1692782的专栏

    手撕RTSP协议系列(11)——RTSP_SET_PARAMETER

    上一篇介绍了RTSP的GET_PARAMETER消息,看到这个消息类型,我们很容易习惯性的想到应该还要有一个RTSP_SET_PARAMETER消息,如我我们所愿,RTSP确实有这样一条消息,本篇我们来看一看 如果请求中包含多个参数值,则服务器只有在所有的参数被成功设置的情况下,才会生效。 服务器允许某个参数被重复设置成相同的值,但不允许改变参数的值! URI表示rtsp的地址; Rtsp Version表示版本号; CSeq表示序列号; Content-length表示内容长度 Content-type表示内容类型; 之后跟着1个或多个参数及对应的值 RtspVersion表示Rtsp的版本号; 状态码和状态描述给出了对于设置某个参数的请求的回复状态,如状态码451,表示无效参数(Invalid Parameter)! 到这里,关于RTSP的主要的一些请求,我们基本就都了解了,当然,RTSP还有一些其他更加细节的请求,在实际中应用较少,就不再做详细介绍了!

    2.3K31发布于 2020-10-30
  • 来自专栏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失败!

    40810编辑于 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
  • 来自专栏Android 开发者

    聚焦 Android 11: Android 11 应用兼容性

    作者 / Android 产品经理 Diana Wong 在往期 #11WeeksOfAndroid 系列文章中我们介绍了 联系人和身份 、 隐私和安全 ,本期将聚焦  Android 11 兼容性 。 Android 11 兼容性 本期我们将重点探讨 Android 11 兼容性这一对所有开发者都非常重要的主题。 更轻松实现应用与 Android 11 兼容 在每次版本更新中,我们都希望尽量减少应用适配 Android 所需的工作。 请继续阅读,详细了解我们如何简化 Android 11 中的应用测试和调试流程。 我们希望这些工具能帮助您更轻松地测试 Android 11 应用兼容情况。

    2K10发布于 2020-10-16
  • 来自专栏txp玩Linux

    rtsp服务器测试的“骚”操作!

    好了,今天给大家分享的是rtsp系列专题的第一个开篇:rtsp服务器搭建! rtsp服务器搭建: 今天我们搭建这个rtsp服务器的名称叫做:ZLMediaKit,它是一个基于C++11的高性能运营级流媒体服务框架,类似我之前给大家搭建的rtmp服务器(srs流媒体服务器),当然它两者肯定是有区别的 https://github.com/xia-chu/ZLMediaKit gitee网址: https://gitee.com/xia-chu/ZLMediaKit 官网上有介绍该项目的特点: 基于C++11 支持linux、macos、ios、android、windows全平台。 支持画面秒开、极低延时(500毫秒内,最低可达100毫秒)。 提供完善的标准C API,可以作SDK用,或供其他语言调用。 测试rtsp服务器: 我们现在来把本地媒体文件推流到这个服务器上,然后再进行拉流播放试试,你可以使用obs或者ffmpeg命令来进行,这里我使用了ffmpeg来进行推流,我电脑本地的媒体文件test.mp4

    3K41编辑于 2022-03-21
  • 来自专栏全栈程序员必看

    QT 实现 RTSP 视频流服务器

    uos操作系统中使用QT开发RTSP 视频流服务器,以下的实现方式使用的是单播方式,除了单播模式还有多播模式。 可以通过自己开发的rtsp服务器将摄像头的数据时时推送到服务器中,其他用户可以通过访问视频流地址rtsp://127.0.1.1:8554/live,直接访问摄像头播放的内容,也就是通常说的摄像头直播。 本篇文章使用开源框架live555开发一个属于自己的视频流服务器。 安装环境依赖 live555的使用需要较多的环境依赖,一下安装都是编译依赖相关内容。 服务器 RTSPServer* rtspServer = RTSPServer::createNew(*env, port); if (rtspServer == nullptr) { /RTSPServer -i 0 播放视频: 使用播放工具mplayer 安装播放工具: sudo apt install mplayer 播放rtsp地址: mplayer rtsp://127.0.1.1

    4.5K20编辑于 2022-11-01
  • 来自专栏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服务模块组合出来的。

    52600编辑于 2023-08-15
  • 来自专栏program

    Android 11适配攻略

    是时候适配一波Android11了,为后面项目适配铺平道路。 介绍 2020年6月11日,Google正式推送了Android 11 Beta版本,同年年9月9日正式发布。 android:requestLegacyExternalStorage="true" 但是这个适配方法在Android 11中已经失效,必须按照存储机制来乖乖适配,不一样的是Android 11允许使用 的同时不能请求其它权限,否则系统会抛出异常(在没研究Android 11适配的时候,我就已经发现了这个bug,当时以为是系统的bug,还截了两张图,后面仔细查看,找资料才发现是Android 11的变更 11开始,仅通过v1签名的应用无法在Android 11的设备上安装或更新,必须使用v2或更高版本进行签名。 最后,展示一个Android 11小动画。

    4.9K11编辑于 2022-06-29
  • 来自专栏Android 开发者

    聚焦 Android 11: Jetpack

    作者 / Android Jetpack 产品经理 Diana Wong 在往期 #11WeeksOfAndroid 系列文章中我们介绍了 联系人和身份 、隐私和安全 、 Android 11 兼容性 我们将为大家陆续带来 #11WeeksOfAndroid 内容,深入探讨 Android 的各个关键技术点,您不会错过任何重要内容。 重要更新 2018 年,我们推出了 Android Jetpack,帮助开发者遵循最佳做法、减少样板代码,并编写可以在不同 Android 版本和设备中运行的代码。 要全面了解 Jetpack 的新功能,您可以查看我们在 #Android11 发布中的 相关演讲,我们简要介绍了 Jetpack 库的许多更新,并提供了相应的入门指南。 聚焦权限 在 Android 11 中,我们一直致力于让用户对敏感权限有更多控制。同时,让各位开发者尽可能轻松地构建 Android 应用也是我们工作的一大重点。

    1.1K40发布于 2020-10-16
  • 来自专栏Android程序Shape使用总结!

    Android 10 和Android 11的适配

    背景 最近在项目中着手做Android10和Android11 适配时候,期间遇到了不少的坑。之前有专门写过qq、微信分享的适配。但是此次在针对偏业务侧适配工作的时候还是碰到了一些新的问题。 但是,这里有个坑: 在Android10上不行,在Android11上又可以!!为什么? 因为Google改回来了,让Android11支持file://格式了。。。。 (wtf? 我谢谢你啊~~) **我这里说的 Android10 和 android 11 是指 targetSdkVersion 哦 ** 2.1 往公共目录插入一张图片 只能通过mediaStore方式: ContentValues 在Android11上 以上标志会自动失效。因此,应用存储的东西还在放在App-specific目录下。分享私有目录可以通过fileprovider 方式适配。 2. targetSdk=30,android:requestLegacyExternalStorage="false"运行在Android11的设备上 会咋么样?

    1.9K41编辑于 2021-12-20
  • 来自专栏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数据,然后添加动态水印后,二次输出到轻量级

    77110编辑于 2023-12-25
  • 来自专栏全栈程序员必看

    Android11 无Root 访问data目录实现、Android11访问data目录、Android11解除data目录限制、Android11 data空白解决

    Android11 无Root 访问data目录 实现 正文开始 关于Android11权限变化 作为普通安卓用户该如何方便快速地访问Android/data目录 开发者该如何实现无ROOT访问Data 解决方案 SAF方案缺点 放大招,ROOT权限直接解锁后带权访问Data目录 结语 封装好的工具类 正文开始 关于Android11权限变化 谷歌在Android11及以上系统中采用了文件沙盒存储模式, 我实现的文件管理(Android11上直接免root管理data目录) 重要的坑:为什么不直接使用路径Path来实现文件浏览呢? 我也这样觉得的,在我当时在对Android11进行适配的时候为了改动小,肯定是想用这个方法来进行适配,但是根本行不通! 我们不是获取了Android/data目录的权限了吗? 这个Android11Android/data受限后,我觉得这个是很好的解决方案了,毕竟可以实现无Root访问并实现管理。

    18.8K31编辑于 2022-09-14
  • 来自专栏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平台采集端支持实时音量调节; [ return;}if (gb28181_agent_.isRunning()) {gb28181_agent_.terminateAllPlays(true);// 目前测试下来,发送BYE之后,有些服务器会立即发送

    58810编辑于 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)?

    55720编辑于 2023-09-25
  • 来自专栏技术杂记

    日志服务器11

    数据库连接正常,并且准备创建相应表 Note: 这个过程中要确保 php-mysql 包存在,否则无法与mysql 连接,会出现如下的界面 Tip: 遇到这种情况,先检查一下 php-mysql ,然后重新加载环境变量,重启一下 httpd 服务 安装 php-mysql 的过程 [root@h105 loganalyzer-3.6.6]# yum clean all Loaded plugins: fastestmirror, refresh-packagekit, security Repos

    78320发布于 2021-10-20
  • 来自专栏Android 开发者

    聚焦 Android 11: Android 开发者工具

    作者 / Android 产品经理 Jamal Eason 在往期 #11WeeksOfAndroid 系列文章中我们介绍了 联系人和身份 、隐私和安全 、 Android 11 兼容性 、 开发语言 我们将为大家陆续带来 #11WeeksOfAndroid 内容,深入探讨 Android 的各个关键技术点,您不会错过任何重要内容。 重要更新 11 Weeks of Android 期间,我们在 Android Studio 中推出了一系列开发者工具更新。 视频与文档资源 如要查看 Android Studio 近期版本中有关 Android 开发者工具新增功能的概况,请观看 #Android11 发布会中精彩而又深入的演示。 Android 模拟器 您还可以参阅下方技术内容,了解更多关于使用 Android 模拟器的最佳实践和实用建议: 利用 Android 模拟器针对 Android 11 开发: 概述 Android 模拟器的新增功能

    3.1K21发布于 2020-10-16
  • 来自专栏Android 开发者

    聚焦 Android 11: 开发语言

    作者 / 产品经理 David Winer 在往期 #11WeeksOfAndroid 系列文章中我们介绍了 联系人和身份、隐私和安全、 Android 11 兼容性 ,本期将 聚焦语言 。 我们将为大家陆续带来 #11WeeksOfAndroid 内容,深入探讨 Android 的各个关键技术点,您不会错过任何重要内容。 在 Android 11 测试版中,我们决定正式推荐使用协程 (coroutines) 在 Android 上执行异步操作,以此来进一步拥抱 Kotlin。 在 Android 11 中,我们力求不断改进对这两种语言的支持。在 Android 11 Beta 中,我们使用来自 OpenJDK 9、10 和 11 的许多新 API 升级了 Java 库支持。 对于 Android 11,我们还更新了 Android 运行时间 (Android runtime),以通过 I/O 预取 加快应用的启动速度。 C++ 开发者的体验也在不断改善。

    1.4K10发布于 2020-10-16
  • 来自专栏流媒体

    Android 11(Q)源码编译

    -11.0.0_r17 repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-11.0.0_r17 同步源码 bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig 3.2 驱动下载 参考https://source.android.google.cn 2021-06-27 16-54-57 的屏幕截图.png 下载地址:https://developers.google.cn/android/drivers ? 8. aosp_car_arm64-userdebug 9. aosp_car_x86-userdebug 10. aosp_car_x86_64-userdebug 11

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

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

    ​技术背景Android上启动一个轻量级RTSP服务,让Android终端像网络摄像头一样提供个外部可供RTSP拉流的服务,在内网小并发又不希望部署单独流媒体服务的场景下非常适用,在Android终端实现这样的流媒体服务 可以通过集成第三方库或编写自定义的RTSP服务器代码来实现这一功能。今天我们介绍两种方案,一种是GStreamer,另外一种,大牛直播SDK的SmartRtspServer。 对于RTSP服务,你需要创建一个能够捕获媒体(如摄像头视频)、编码它,并通过RTSP服务器发送的管道,GStreamer的特点。 服务器:自研实现轻量级RTSP服务逻辑,支持设置RTSP服务器的参数,如端口号、流名称等。 同时,配置服务器以从摄像头麦克风接收视音频流,并将其封装为RTSP流;启动服务器:启动RTSP服务器,使其开始监听并响应RTSP客户端的请求,发布RTSP流,对外提供RTSP拉流能力;查看RTSP会话数

    2.3K10编辑于 2024-09-08
  • 来自专栏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.3K10编辑于 2024-09-05
领券