基于鸿蒙API10的RTSP播放器(九:进度总结)
一、前言
基于鸿蒙API10和三方库ijkpalyer@2.0.4,实现RTSP流的流畅播放,支持H.264和H.265硬编码,既可以在基于X86的模拟机上运行,也可以在基于armabi-v7a的真机上运行。
二、已实现功能
- 视频画面尺寸调整(2:1比例)✔
- 视频的首次播放(网络好的话1s内)✔
- 视频的暂停后再播放(100ms内)、暂停、向前切换、向后切换✔
- 视频底部滑轨实时更新,包括当前播放时间,当前进度值✔
- 视频底部滑轨,拖动进度条实现跳转(1.5s内)✔
- 通过手势,实时调节视频音量✔
- 通过手势,实时调节画面亮度✔
三、预计实现功能
- 将真机屏幕均分为两个播放窗口,可单独播放,可同时播放 ✖
- 播放列表的显示和选择 ✖
- 屏幕旋转时,视频的自适应✖
- 保证后台也可以正常播放✖
四、其他播放RTSP流的方法
- 可以使用网页接受RTSP流,然后转码为WebRTC,在鸿蒙设备端使用Web组件打开网页即可播放视频(对视频的控制需要Web组件,工作将转变为Web前端了)
- 目前鸿蒙支持的媒体播放空间有Viedo和AVPlayer,都可以实现本地和网络的视频播放。可以修改鸿蒙的SDK媒体部分代码,使得AVPlayer可以支持RTSP协议。(此方法优点是可以复用AVPlayer的许多功能,缺点是对SDK的修改比较花费时间)
五、目前尚未解决的问题
- 对H.264编码的网络RTSP流测试通过,但没有H.265编码的视频流,如果目前有H.265监控视频流的话,可以进行测试。
- 目前使用了USB摄像头,输出视频流,可以通过VLC播放器捕获进行播放,但是使用FFmpeg转码为H.265后,不能通过VLC播放器进行播放(缓冲区溢出问题)。当前主要想使用这个摄像头获得H.265的RTSP流。