前言

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

服务端

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

客户端

客户端, PC上建议用VLC, 在调试很方便, 功能也强大.
手机端, 这个重点说说, 毕竟, 在几年前, 踩过较深的坑就是它:

然后, 尝试后的结果是:

延迟

这是个老生常谈的问题

  • 手机端的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

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐