A-V同步

RK3588 C-PHY摄像头驱动升级踩坑记:从‘Only CSI2 supported’报错到成功取流 本文详细记录了在RK3588平台上调试C-PHY摄像头驱动的全过程,从‘Only CSI2 supported’报错分析到成功取流。内容涵盖C-PHY与CSI-2协议差异、SDK版本对比、V4L2框架下的bus-type解析机制,以及硬件排查与寄存器调优实战经验,为嵌入式Camera驱动工程师提供宝贵参考。 阅读详情

AV同步的一些问题:

先转载一份A'rpi的邮件:
I've "developed" a new a-v sync engine in g2 code, which produces A-V: 0.0000
for most mpeg1/vob streams i have.

The video part is relative easy, but a bit tricky: when a PS packet has a
PTS timestamp, that timestamp belongs to the next complete frame.
(not to the one which ends in that packet!)

The audio is however very tricky.
The old (used in mplayer-g1) audio pts calculation method assumed, that the
timestamps received from the demuxer belongs to the first byte of that packet.
So, after decoded an audio frame/block, it increased PTS by the compressed
frame size divided by compressed byterate.
It is very inaccurate for mpeg. Now i've found why: in mpeg containers, the
audio timestamps behave like the video: they belong to the _next_ complete
frame/block. As AC3 frames are big, they usually go accross multiple
packets, this error may be big.
But fixing this, I got stable A-V but non-zero ct (correction total).
After experimencng with several streams, i've found that ct: value is the
time length of an audio frame. Strange, isn't it?
It means, that the PTS doesn't even belongs to the next audio frame, but to
the next after the next. Or in other words: it's the timestamp for the last
byte/sample of the next frame, instead of the first one:

v-- the PTS belongs to the
PTS end of f2 (or start of f3)
v
frames: [.....f1......][......f2......][.....f3......]
packets: | p1 | p2 | p3 | p4 | p5 |
^PTS^
^- the PTS is coded in p2's header

Using this logic I got <5ms ct: times for all mpeg streams!

But quoting the mpeg-system.pdf:
"
In the T-STD in figure 2-6 on page 11 the display of a video presentation
unit (a picture) occurs instantaneously at its presentation time, tp n (k).

In the T_STD the output of an audio presentation unit starts at its presentation
time, tp n (k), when the decoder instantaneously presents the first sample.
Subsequent samples in the presentation unit are presented in sequence at the audio sampling rate.
"

It suggests that PTS if the beginning of that audio block, not the end!

Do anyone have accurate info about the meaning/calculation of audio PTS for
mpeg container?


A'rpi / Astral & ESP-team

OpenClaw 报错 TypeError: Cannot read properties of undefined (reading ‘prototype‘):Node.js 版本不兼容 国产化环境中部署OpenClaw云边协同平台时,出现"TypeError: Cannot read properties of undefined (reading 'prototype')"报错。经分析发现根本原因是Node.js版本与依赖生态不兼容,新版本Node(如v21)移除了旧依赖使用的内部API。解决方案包括:1)使用nvm切换至兼容的Node 16/18 LTS版本;2)容器化部署固定Node版本;3)遵循官方推荐的引擎版本范围。该问题揭示现代工程中版本管理的重要性, 阅读详情

相关推荐

零基础学习CANoe Panel(17)—— Panel CAPL Function

CANoe内置了几个CAPLFunction,允许我们在CAPL运行时动态的更改Panel控件的属性,比如打开某个panel,禁用某个控件,更改控件颜色等。

蚂蚁小兵 3439

SpringBoot】深度解析 Spring Boot 拦截器:实现统一功能处理的关键路径

**解释:**这里设置所有的后端请求,都包括这里的拦截器,但是我们的目的就是跳转至登录页面,所以这里的请求不必拦截,以及静态的前端请求不必拦截最后在前端的代码添加如下所示: error: function (error) { if (error!} }**解释:**addPathPatterns:这里就是指定要拦截的请求;那么废话不多说直接开整吧~~**

2601_96206444的博客 195

Misc-RAR隐写

题目来自于:XCTF的SimpleRAR,由于涉及到许多新知识,所以写篇小文子记录一下。 一、下载完后是一个压缩包。 里面就有一个flag.txt,打开之后发现有一串字符是flag is not here,而且我们查看他的文件大小,只要十六字节,绝对不可能再藏着什么信息了。 然后把压缩包拉到010editor里面,发现一下子出来好多新的内容,很明显是有夹杂着的附加文件。 二、rar文件头信息。 rar 是由一个一个 block 组成的,每个 block 有以下几个部分 ...

admin的博客 1335

Spring Boot 4 旅游主题实战教程 阶段一:Spring Boot 入门基础

本阶段为 Spring Boot 基础入门。第1章从零创建项目并编写首个 REST 接口,建立 starter 与自动装配的初步认知;第2章深入 IoC 与依赖注入,理解容器如何管理 Bean 及其作用域、生命周期;第3章学习配置文件与多环境,掌握 YAML 语法、@Value 与 @ConfigurationProperties 读配置,并用 profile 实现开发/生产环境一键切换,使参数与代码解耦。

桃李不言下自成蹊 388

Spring Boot 入门 与 无法解析符号 springframework 的解决

###3标签的作用标签中定义了项目需要的所有依赖。以下是图片中看到的两个关键依赖:#####1. Spring Boot Web 起步依赖作用: * 提供 Web 开发相关的所有功能,如 Spring MVC 和嵌入式 Tomcat。* 这是一个“起步依赖”,意味着它会自动引入所需的子依赖。

2601_96205623的博客 190

搭建GraalVM开发环境,配置Spring Boot原生镜像

graalvm搭建

XinhuaShuDiao的博客 191

Apache Cassandra 介绍与 Spring Boot 集成实战

Apache Cassandra 是一个开源、分布式、去中心化的 NoSQL 数据库,最早由 Facebook 开发,后捐赠给 Apache 基金会。它专为海量数据的高可用、高扩展场景而设计。Cassandra 是一款为"大规模、高写入、高可用"而生的分布式数据库,理解它的分区与主键设计思路是上手的关键。Spring Data Cassandra 提供了与 Spring Data JPA 相似的开发体验——配置连接、写实体、继承 Repository,业务代码几乎不需要接触原生 Driver。

wangchunyu114的博客 236

Spring Boot 4 + Thymeleaf 电商主题实战 阶段三:表单、布局与页面复用

本阶段聚焦完整 Web 页面的构建与复用。通过 th:field 实现表单双向绑定,结合后端校验规范处理用户输入;运用布局与片段进阶技巧提升页面模块化与可维护性;并掌握 #dates、#numbers 等内置工具对象,在模板中便捷完成日期格式化、数值处理等常见转换。学完即可独立开发结构清晰、交互完整的业务页面。

桃李不言下自成蹊 507

Spring Boot 集成 Spring Cloud Gateway 实现基于用户标签的路由策略

全链路灰度早就不是“锦上添花”的玩具,而是微服务架构的基建。用 Gateway 自己搭一套,代码量不大,但要把上下文透传、非阻塞、热更新、降级回滚这些细节抠死,线上才能稳。跟混沌工程绑一起:灰度流量里自动注入延迟、丢包、节点假死(Chaos Mesh)。发布即压测,把系统在真实异常下的自愈能力提前摸透,上线前心里就有底。策略代码化(Policy as Code):灰度规则、回滚阈值、监控指标全部 Git 管理,走 CI/CD 流水线。谁改了配置、什么时候推的、影响面多大,全留痕。

专注分享原创技术干货。大厂资深架构师,多年技术架构与技术管理经验,多年面试官经验。一对一技术指导培训,带你从小白到入门到架构设计到技术管理。关注我,免费领取学习资料。一对一免费面试指导,快速拿offer。 250

Spring Boot 接口协议设计实战:Entity-Param-DTO如何划边界

MetaLite 是面向企业生产环境的新一代 Java 微服务技术底座。系列文章重点分享代码背后的设计思路、技术取舍与工程实践。

MetaLite的博客 337

Spring Boot 集成 Spring Session:分布式会话管理与多端状态同步实战

把 Session 扔进 Redis 只是第一步,真正能上生产的会话中心,得把序列化体积、连接池水位、设备指纹绑定、并发踢人逻辑、降级预案全部跑通。Spring Session 提供的抽象足够好用,但别当黑盒用,底层 Key 怎么存的、过期怎么清的、集群事件怎么丢的,心里得有本账。架构选型从来不是非黑即白。高并发读走 JWT 无状态,强管控走 Session 有状态,网关层做路由收敛。把 TTL 卡准、内存控住、安全策略焊死,这套东西就能稳稳扛住线上流量。剩下的,就是日常盯监控、压瓶颈、修边角的活儿了。

专注分享原创技术干货。大厂资深架构师,多年技术架构与技术管理经验,多年面试官经验。一对一技术指导培训,带你从小白到入门到架构设计到技术管理。关注我,免费领取学习资料。一对一免费面试指导,快速拿offer。 287

Spring Boot 3 + Vue 3 全栈外卖系统:RabbitMQ异步解耦、MySQL/Neo4j双引擎推建

后端Spring Boot 3.2.5 + MyBatis-Plus + Redis + RabbitMQ + Neo4j + 支付宝沙箱前端核心业务覆盖:用户注册登录、菜品浏览、购物车管理、下单结算、支付宝支付、订单状态实时同步、支付成功邮件通知等完整闭环。系统实现了基于用户行为的个性化推荐、基于图数据库的购物车共现推荐、以及基于消息队列的全链路异步解耦。

2303_79635409的博客 671

Redis 介绍与 Spring Boot 实战入门

要点建议序列化生产环境一定要自定义 RedisTemplate 序列化,避免 JDK 默认乱码key 命名统一业务:类型:id风格,加业务前缀防止冲突TTL缓存数据务必设置过期时间,防止脏数据 + 内存膨胀缓存穿透空值也缓存 + 布隆过滤器缓存击穿热点 key 加互斥锁或逻辑过期缓存雪崩过期时间加随机抖动,避免同时大面积失效数据类型选择按场景选类型,如对象用 Hash、榜单用 ZSet、队列用 List分布式锁用原子组合,释放时校验 value 防止误删。

wangchunyu114的博客 600

Spring Boot + MongoDB 实战教程:从零构建 RESTful API

JDK: 8+: 2.7.18: MongoDB 官方数据访问层Lombok: 简化实体类代码编写Maven: 项目管理与依赖管理遵循应用场景设计数据结构,优先考虑查询模式适当冗余,避免频繁的 JOIN 操作保持文档扁平化,降低复杂度合理选择嵌套深度,一般不超过 3 层本教程通过一个完整的 RESTful API 项目,展示了如何在 Spring Boot 中集成和使用 MongoDB。从基础的 CRUD 操作到高级的数据分析、性能优化,都进行了详细讲解。

wangchunyu114的博客 510

【Redis入门到精通六】在Spring Boot中集成Redis(含配置和操作演示)

3.Set类型操作演示: @GetMapping(“/testSet”) @ResponseBody public String testSet() { redisTemplate.opsForSet().add(“key”, “aaa”, “bbb”, “ccc”);

2601_96217730的博客 199

Spring Boot】掌握 Spring 事务:隔离级别与传播机制解读与应用

LogService 中的事务已经回滚, 但是嵌套事务不会回滚嵌套之前的事务, 也就是说嵌套事务可以实 现部分事务回滚但是对于REQUIRED 如果回滚就是回滚所有事务, 不能实现部分事务的回滚. (因为属于同个事务)> 嵌套事务之所以能够实现部分事务的回滚, 是因为事务中有个保存点(savepoint)的概念, 嵌套事务进之后相当于新建了个保存点, 滚回时只回滚到当前保存点.以事务式运, 如果当前存在事务, 则把当前事务挂起(不).> 就是不管A有无事务,B都直接以非事务的方式进行运行。

2601_96206323的博客 189

Vibe Coding一人即团队系列35: 基于Claude Code的Spring Boot项目初始化实践

本文详细演示了通过从零初始化一个MyBatis项目的过程,涵盖了环境准备、技术选型、项目结构生成、核心依赖配置、首个Controller控制器编写以及项目启动验证。能够自动化完成Maven项目骨架构建、依赖引入和基础配置文件生成,显著降低项目搭建的门槛。在整个流程中,开发者仅需进行技术方案确认和少量代码补充,即可获得一个可运行的Java Web服务。后续开发可继续借助完成 API 接口迭代、数据库访问层生成以及业务逻辑实现

Wang的专栏 168

Spring Boot 掌握 Elasticsearch Search API

本文介绍 Spring Boot 使用 Elasticsearch Search API,演示查询全部、分页、term、match、range、exists 和 bool 组合条件,并讲解 SearchHits 结果读取与深分页注意事项。

1onetw的博客 221

Spring Boot 启动失败:端口被占用问题的完整排查与解决

Tomcat 初始化成功,但在绑定端口 8080 时发现端口已经被占用,导致启动失败。Tomcat 正常初始化,说明内嵌 Web 容器没有问题,问题只发生在端口绑定这一步。

weixin_51288065的博客 184

Spring Data JPA 入门:从实体映射到 CRUD(Spring Boot 4 实战)

JPA 是 Java 持久化标准,Spring Data JPA 则让数据库操作变得“几乎不用写 SQL”。本文将系统讲解 JPA 核心概念、实体映射、Repository 用法、方法命名查询和关联关系,帮你快速上手企业级 ORM 开发。

weixin_41997616的博客 270

创建一个简单的spring boot+vue前后端分离项目

二、nvm安装与配置----------### 1、NVM简介在项目开发过程中,使用到vue框架技术,需要安装node下载项目依赖,但经常会遇到node版本不匹配 而导致无法正常下载,重新安装node却又很麻烦。设置下载源,修改setting.txt 在安装根路径下编辑setting.txt添加以下两行镜像地址:node_mirror:https://npm.taobao.org/mirrors/node/npm_mirror: https://npm.taobao.org/mirrors/npm/

2601_96206649的博客 188

Spring Boot整合DeepSeek实现AI对话(API调用和本地部署)

本地部署调用------如果想要把 DeepSeek 部署在内网服务器,或者你想在本地跑个小模型,可以采用这种方式来在本地部署一个 DeepSeek R1 蒸馏版。从SpringBoot 3.x 开始依赖的JDK版本最低是JDK17,所以这里演示整合的代码都是基于spring boot 3.3.8 以及 JDK17整合DeepSeek API key------------------Spring版本选择----------根据。

2601_96217730的博客 231

广义s变换matlab程序一个以及带注释的matlab例子一个

广义s变换matlab程序一个以及带注释的matlab例子一个,可以直接运行

Delphi 12.3控件之从内存加载DLL 3.rar

Delphi 12.3控件之从内存加载DLL [3].rar

上一篇: [zz] 视频解码优化
下一篇: FFMpeg的解码流程
林伟
博客等级 码龄17年 602粉丝 249原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值