Android RTSP 摄像头推流

简介: Android RTSP 摄像头推流

前言


Android的摄像头的功能扩展越来越丰富, 近段时间因为涉及到RTSP推送的需求, 稍微了解记录踩过的坑.


服务端


纯JAVA开发的服务端项目, 几年前用过, 时至今日, 依然好用.


spydroid-ipcamera

使用高阶说明

如: 使用音频和视频->rtsp://xxx.xxx.xxx.xxx:8086?aac&h264


客户端


客户端, PC上建议用VLC, 在调试很方便, 功能也强大.

手机端, 这个重点说说, 毕竟, 在几年前, 踩过较深的坑就是它:


Awesome Open Source 从这里找到开源的项目

然后, 尝试后的结果是:


SmarterStreaming [x] 太大了, 下不下来, 没耐心…

EasyPlayer-RTSP-Android [v] 需要申请APPID, 国内开源SDK的套路

EasyPlayer-RTSP-Android-APK [v] 需要申请APPID, 国内开源SDK的套路

RTSP.Player.Android [v] 最终采用这个, 效果也不错, 但兼容性没测过.


延迟


这是个老生常谈的问题


手机端的VideoView/MeidaPlayer控件, 在播放后, 经常会发现有5秒的延迟

在PC上使用VLC测试, 默认设置的情况下, 会在2秒左右

最开始, 怀疑是服务端的问题, 折腾了不少时间, 只能说, 还是太年轻了


VLC中连接的设置:


缓存适当降低, 如, 把1000ms 改为200ms

手机端, 就要找到好用的播放控件或工具

RTSPPlayer: 这个项目, 曾经效果还不错, 只是最近测试发现, 经常连不上或连上后没图像或花屏, 接口中, 延时可以支持100ms左右.

vlc-android: 怎么说呢, 强大, 但要很能折腾, 曾经下载并编译过, 最终出来的效果却不尽如人意(跟官方发布的APK表现不同)


扩展


图像格式转换

Android YUV图像转换算法和检测工具

YUV420P、YUV420SP、NV12、NV21和RGB互相转换并存储为JPEG以及PNG图片


GIT clone失败


$ git clone https://github.com/tsingsee/EasyPlayer-RTSP-Android.git
正克隆到 'EasyPlayer-RTSP-Android'...
remote: Enumerating objects: 50, done.
remote: Counting objects: 100% (50/50), done.
remote: Compressing objects: 100% (29/29), done.
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: The remote end hung up unexpectedly
fatal: 过早的文件结束符(EOF)
fatal: index-pack failed


git clone时RPC failed; curl 18 transfer closed with outstanding read data remaining


相关文章
|
4月前
|
Android开发
安卓虚拟摄像头替换摄像头, 微信虚拟相机替换拍照,安卓免root虚拟摄像头
虚拟摄像头系统包含多个组件:主摄像头类、预览面板、驱动接口、DirectShow实现和管理类
|
4月前
|
Android开发 数据安全/隐私保护
手机微信虚拟视频聊天,安卓免root虚拟摄像头,免root虚拟hook相机
以上代码实现了一个完整的免root虚拟摄像头方案,通过Hook系统摄像头服务和微信视频通话接口
|
4月前
|
编解码 Java Android开发
安卓虚拟摄像头免root版,虚拟摄像头替换真实摄像头,jar代码开源分享
通过动态替换摄像头输入流的方式实现虚拟摄像头功能,代码经过简化展示核心逻辑。实际开发中还需要考虑视频编解码优化
|
4月前
|
Java Android开发
安卓虚拟摄像头过人脸,免root虚拟hook相机,虚拟相机hook版【jar】
两种Hook Android相机的方法:Xposed模块和Frida脚本。Xposed模块需要安装在已root的设备
|
4月前
|
API Android开发 数据安全/隐私保护
|
4月前
|
API 开发工具 Android开发
qq虚拟视频插件下载安装手机版, 安卓虚拟视频插件,替换摄像头工具
Xposed入口模块:拦截目标应用的相机调用‌23 Camera1 API处理:通过PreviewCallback替换视频流‌1 Camera2 API适
|
开发工具 Android开发 开发者
Android平台如何不推RTMP|不发布RTSP流|不实时录像|不回传GB28181数据时实时快照?
本文介绍了一种在Android平台上实现实时截图快照的方法,尤其适用于无需依赖系统接口的情况,如在RTMP推送、RTSP服务或GB28181设备接入等场景下进行截图。通过底层模块(libSmartPublisher.so)实现了截图功能,封装了`SnapShotImpl.java`类来管理截图流程。此外,提供了关键代码片段展示初始化SDK实例、执行截图、以及在Activity销毁时释放资源的过程。此方案还考虑到了快照数据的灵活处理需求,符合GB/T28181-2022的技术规范。对于寻求更灵活快照机制的开发者来说,这是一个值得参考的设计思路。
281 1
|
程序员 开发工具 Android开发
Android|使用阿里云推流 SDK 实现双路推流不同画面
本文记录了一种使用没有原生支持多路推流的阿里云推流 Android SDK,实现同时推送两路不同画面的流的方法。
243 7
|
安全 API 开发工具
Android平台RTMP推送|轻量级RTSP服务如何实现麦克风|扬声器声音采集切换
Android平台扬声器播放声音的采集,在无纸化同屏等场景下,意义很大,早期低版本的Android设备,是没法直接采集扬声器audio的(从Android 10开始支持),所以,如果需要采集扬声器audio,需要先做系统版本判断,添加相应的权限。
327 0
|
编解码 开发工具 Android开发
Android平台实现屏幕录制(屏幕投影)|音频播放采集|麦克风采集并推送RTMP或轻量级RTSP服务
Android平台屏幕采集、音频播放声音采集、麦克风采集编码打包推送到RTMP和轻量级RTSP服务的相关技术实现,做成高稳定低延迟的同屏系统,还需要有配套好的RTMP、RTSP直播播放器
275 1

热门文章

最新文章