基于鸿蒙API10的RTSP播放器(九:进度总结)

news/2025/1/15 1:58:23/
一、前言

基于鸿蒙API10和三方库ijkpalyer@2.0.4,实现RTSP流的流畅播放,支持H.264和H.265硬编码,既可以在基于X86的模拟机上运行,也可以在基于armabi-v7a的真机上运行。

二、已实现功能

  1. 视频画面尺寸调整(2:1比例)✔
  2. 视频的首次播放(网络好的话1s内)✔
  3. 视频的暂停后再播放(100ms内)、暂停、向前切换、向后切换✔
  4. 视频底部滑轨实时更新,包括当前播放时间,当前进度值✔
  5. 视频底部滑轨,拖动进度条实现跳转(1.5s内)✔
  6. 通过手势,实时调节视频音量✔
  7. 通过手势,实时调节画面亮度✔

三、预计实现功能

  1. 将真机屏幕均分为两个播放窗口,可单独播放,可同时播放 ✖
  2. 播放列表的显示和选择 ✖
  3. 屏幕旋转时,视频的自适应✖
  4. 保证后台也可以正常播放✖

四、其他播放RTSP流的方法

  1. 可以使用网页接受RTSP流,然后转码为WebRTC,在鸿蒙设备端使用Web组件打开网页即可播放视频(对视频的控制需要Web组件,工作将转变为Web前端了)
  2. 目前鸿蒙支持的媒体播放空间有Viedo和AVPlayer,都可以实现本地和网络的视频播放。可以修改鸿蒙的SDK媒体部分代码,使得AVPlayer可以支持RTSP协议。(此方法优点是可以复用AVPlayer的许多功能,缺点是对SDK的修改比较花费时间)

五、目前尚未解决的问题

  1. 对H.264编码的网络RTSP流测试通过,但没有H.265编码的视频流,如果目前有H.265监控视频流的话,可以进行测试。
  2. 目前使用了USB摄像头,输出视频流,可以通过VLC播放器捕获进行播放,但是使用FFmpeg转码为H.265后,不能通过VLC播放器进行播放(缓冲区溢出问题)。当前主要想使用这个摄像头获得H.265的RTSP流。

http://www.ppmy.cn/news/1526784.html

相关文章

小米,B站网络安全岗位笔试题目+答案

《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 《Java代码审…

redis基本数据结构-set

文章目录 1. set的基本介绍1.1. set底层结构之hash表的简单介绍1.2. 常用命令 2. 常见的业务场景2.1. 标签系统2.2. 社交网络好友关系 1. set的基本介绍 参考链接:https://mp.weixin.qq.com/s/srkd73bS2n3mjIADLVg72A redis 的 set 数据结构是一个无序的集合&#…

CSS 图片廊:打造精美视觉体验

CSS 图片廊:打造精美视觉体验 随着互联网技术的发展,网页设计越来越注重用户体验和视觉效果的呈现。CSS(层叠样式表)作为网页设计的重要工具,能够帮助开发者创建出既美观又实用的图片展示效果。本文将详细介绍如何使用…

html+css+js网页设计 旅游 龙门石窟4个页面

htmlcssjs网页设计 旅游 龙门石窟4个页面 网页作品代码简单,可使用任意HTML辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取源码 1&#…

学习笔记(一)

前言 一、对象 1、由类建模而成,是消息、数据和行为的组合 2、可以接收和发送消息,并利用消息进行彼此的交互。消息要包含传送给对象接收的信息 3、类的实例化:把类转换为对象的过程叫类的实例化。 4、对象的特性 (1) 对象有状态&#…

关于HarmonyOS的学习

day33 一、模块化 1.node模块化 let listMode require(./modules/list)let {index, tab} require(./modules/tab) ​// console.log(listMode)// console.log(tabMode) ​// console.log(listMode.index)// console.log(tabMode.index) ​// listMode.list() ​// console.…

istio中如何使用serviceentry引入外部服务

假设需要引入一个外部服务,外部服务ip为10.10.102.90,端口为32033. 引入到istio中后,我想通过域名gindemo.test.ch:9090来访问这个服务。 serviceentry yaml内容如下: apiVersion: networking.istio.io/v1beta1 kind: ServiceEn…

面向对象程序设计之模板进阶(C++)

在之前我出过一篇博客介绍了模版的初阶:面向对象程序设计(C)模版初阶,接下来我们将进行模版的进阶学习,介绍关于更多模版的知识 1.非类型模版参数 模板参数分类类型形参与非类型形参 类型形参即:出现在模板参数列表中,跟在class或…