Android RTSP 摄像头推流
程序员文章站
2022-07-07 11:18:49
...
前言
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
推荐阅读
-
Html5
-
Android 音视频深入 十六 FFmpeg 推流手机摄像头,实现直播 (附源码下载)
-
Android下RTMP推流h264和aac数据
-
EasyRTMP实现内网摄像头RTSP拉流转码RTMP推流到RTMP服务器EasyRTMP-Android视频采集流程是什么?
-
ffmpeg推流实现实时播放监控画面(rtsp to rtmp)
-
android 音频采集、FLTP重采样与AAC编码推流
-
在Android上使用FFmpeg将摄像头采集的YUV裸流编码为h264。
-
Android采集摄像头的视频流数据并使用MediaCodec编码为H264格式
-
DSS 代码分析【RTSP announce推流报文分析】
-
Android直播软件开发使用rtmp推流协议是如何实现的(二)