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

一、前言

基于鸿蒙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.mzph.cn/web/52988.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【前后端】大文件切片上传

Ruoyi框架上传文件_若依微服务框架 文件上传-CSDN博客 原理介绍 大文件上传时,如果直接上传整个文件,可能会因为文件过大导致上传失败、服务器超时或内存溢出等问题。因此,通常采用文件切片(Chunking)的方式来解决这些…

React 中的事件绑定与参数传递

React 中的事件绑定与参数传递 语法&#xff1a;on 事件类型 { 事件处理程序 }&#xff0c;整体上遵循驼峰命名法 function App() {const handleClick () > {console.log(点击了按钮);}return (<div><button onClick{handleClick}>点击我</button><…

DB-GPT部署和试用

前言 DB-GPT是一个开源的AI原生数据应用开发框架(AI Native Data App Development framework with AWEL(Agentic Workflow Expression Language) and Agents)。 目的是构建大模型领域的基础设施&#xff0c;通过开发多模型管理(SMMF)、Text2SQL效果优化、RAG框架以及优化、Mu…

Element UI入门笔记(个人向)

Element UI入门笔记 将页面分割为一级菜单、二级菜单、导航栏三个部分&#xff1b;使用npm下载安装&#xff0c;使用语句npm i element-ui -s; 布局组件 el-form 用于创建和管理表单&#xff1b;从属性上看&#xff1a; :model&#xff1a;用于双向数据绑定&#xff0c;将表单…

打造古风炫酷个人网页:用HTML和CSS3传递笔墨韵味

需要用到的背景大家可以自己找喜欢的风格!!! 当然俺把俺用的背景放到文章最后了哦&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 感谢关注和支持 长期更新哦~~~ 1. 简洁的页面布局&#xff1a;保持优雅和对称 在古风设计中&#xff0c;布局的对称性非常重要…

Linux - 探秘/proc/sys/net/ipv4/ip_local_port_range

文章目录 Pre概述默认值及其意义评估需求如何调整临时修改永久修改测试和验证 修改的潜在影响 Pre Linux - 探秘 Linux 的 /proc/sys/vm 常见核心配置 计划&#xff1a; 简要解释 /proc/sys/net/ipv4/ip_local_port_range 文件的功能和作用。介绍该文件的默认值及其影响。说明…

螺丝、螺母、垫片等紧固件常用类型详细介绍

螺钉、螺母、垫片等紧固件介绍 螺钉 杯头内六角 首先介绍一下杯头内六角&#xff0c;杯头内六角是我们用的最常见的一种螺钉&#xff0c;如果你对选择螺钉没有什么想法&#xff0c;可以直接无脑选杯头内六角去使用。 比如说我们有一个零件加工了通孔&#xff0c;另一个零件加…

QT信号槽原理是什么,如何去使用它?

QT的信号槽&#xff08;Signals and Slots&#xff09;机制是QT框架的核心特性之一&#xff0c;它提供了一种对象间通信的方式&#xff0c;使得QT的部件可以在不知道彼此详细实现的情况下相互通信。这种机制在图形用户界面编程中尤为重要&#xff0c;因为它有助于降低对象间的耦…

Vue3.0组合式API:setup()函数

1、什么是组合式API Vue 3.0 中新增了组合式 API 的功能&#xff0c;它是一组附加的、基于函数的 API&#xff0c;可以更加灵活地组织组件代码。通过组合式 API 可以使用函数而不是声明选项的方式来编写 Vue 组件。因此&#xff0c;使用组合式 API 可以将组件代码编写为多个函…

CPU 和 GPU:为什么GPU更适合深度学习?

目录 什么是 CPU &#xff1f; 什么是 GPU &#xff1f; GPU vs CPU 差异性对比分析 GPU 是如何工作的 &#xff1f; GPU 与 CPU 是如何协同工作的 &#xff1f; GPU vs CPU 类型解析 GPU 应用于深度学习 什么是 CPU &#xff1f; CPU&#xff08;中央处理器&#xff09;…

股票量化接口api,国内股票期权怎么交易

炒股自动化&#xff1a;申请官方API接口&#xff0c;散户也可以 python炒股自动化&#xff08;0&#xff09;&#xff0c;申请券商API接口 python炒股自动化&#xff08;1&#xff09;&#xff0c;量化交易接口区别 Python炒股自动化&#xff08;2&#xff09;&#xff1a;获取…

git push : RPC failed; HTTP 400 curl 22 The requested URL returned error: 400

git push 出现RPC failed; HTTP 400 curl 22 The requested URL returned error: 400 问题 git push Enumerating objects: 11, done. Counting objects: 100% (11/11), done. Delta compression using up to 8 threads Compressing objects: 100% (10/10), done. error: RPC …

vscode对python进行多卡调试

在 VSCode 中对 Python 进行多卡&#xff08;多GPU&#xff09;调试&#xff0c;尤其是对于深度学习任务&#xff08;例如使用 PyTorch 或 TensorFlow&#xff09;&#xff0c;你需要结合 VSCode 的调试功能与分布式训练框架来实现。多卡调试通常意味着你要调试并行的计算任务&…

对中文进行文本分类的常用方法

一&#xff1a;关键词分类和基于规则的分类 关键词分类和基于规则的分类是两种常见的文本分类方法&#xff0c;它们可以应用于中文文本的分类。下面我将详细介绍这两种方法&#xff1a; 关键词分类 原理&#xff1a;这种方法通过识别文本中出现的特定关键词或短语来确定文本的…

STM32常用数据采集滤波算法

例如&#xff0c;STM32进行滤波处理时&#xff0c;主要目的是处理数据采集过程中可能产生的噪声和尖刺信号。这些噪声可能来自电源干扰、传感器自身的不稳定性或其他外部因素。 1.一阶互补滤波 方法&#xff1a;取a0~1,本次滤波结果&#xff08;1-a&#xff09;本次采样值a上…

基于 jenkins 的持续集成、持续部署方案

工具介绍 python3.12 fastapi 0.92.0 uvicorn 开发部署web项目&#xff1b;git gitee 实现代码版本管理&#xff1b;jenkins docker 实现持续集成、持续部署&#xff1b;centos7 作为jenkins服务器 & 部署服务器&#xff1b;有条件的可以再启动一台服务器作为部署测试…

学习笔记(一)

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

RabbitMQ Spring客户端使用

注解声明式队列和交换机 java自带序列化工具类&#xff0c;将java对象序列化为字节数组&#xff0c;用于网络传输。 jdk序列号存在缺陷&#xff0c;&#xff08;不安全&#xff0c;占用空间大等&#xff09; 推荐使用JSON的序列化&#xff1a; springboot扫描包使配置生效&…

MaintenanceController

目录 1、 MaintenanceController 1.1、 维修项目设置 1.2、 /// 查询修理大类 1.3、 /// 修改 MaintenanceController using QXQPS.Models; using QXQPS.Vo; using System; using System.Collections.Generic; using System.Linq; using System.Web; using Sys…

8- 【JavaWeb】用HTML和CSS来创建一个简洁的登录界面

我们将使用HTML和CSS来创建一个简洁、现代的登录界面。 1. HTML结构 首先&#xff0c;我们需要一个基本的HTML结构来容纳登录表单。保存为 index.html 文件&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8&qu…