跳转至

Blog

安卓 杜比视界 格式支持开始超越苹果了?

Note

本文同步发布在公众号: 音视频开发进阶

https://mp.weixin.qq.com/s/Z1SMg4wa0wvQ3Af0UzZTJQ

最近入手了 小米 15 和 OPPO Finx X8 Ultra 两台高端机做测试,比现在用的 iPhone13 流畅太多了,而且在影像能力上也强不少。

现在不少安卓高端机都支持 HDR 视频录制了,有一些还支持杜比视界格式的录制。

关于杜比视界(Dolby Vision)格式的简单介绍

杜比视界格式首先肯定是 HDR 视频,简单理解就是那种播放起来屏幕很亮的视频,但相比普通的 HDR 视频,杜比视界格式在视频的亮度、对比度以及色彩方面提供了更加精确和动态的控制。

核心就在于杜比视界使用了动态元数据,在播放每一帧时都可以独立动态调整亮度、对比度和色彩,而不是从头到尾都一个亮度播放。

想要获得更好的杜比视界观看体验,这就对屏幕提出了更高要求,比如支持 10bit 色深,支持最大亮度范围、支持更大的色域范围等。

但是以我们普通人的肉眼凡胎以及多年的视频观看质量来讲,就算有 HDR 视频和杜比视界视频放在眼前,大概率也区分不出来哪个是杜比视界格式的,有时候还需要依赖专业工具来看码流信息才行。

比如杜比官网提供的这个工具 Dolby Vision Professional Verification Toolkit ,地址如下:

https://customer.dolby.com/content-creation-and-delivery/dolby-vision-professional-verification-toolkit-lite-v580

可以用这个工具来查看码流是不是有动态元数据,但好在手机厂商的系统相册会给我们区分哪个是 HDR 视频,哪个是杜比视界视频。

在 iOS 系统相册上,HDR 视频在左上角会显示 HDR 三个字。

如果是杜比视界格式,详细信息那里可以看到 杜比视界 四个字。

在安卓机上,如果是杜比视界格式,会在播放页左上角显示出来。

普通 HDR 视频没看到有显示,但是屏幕亮度会提高。

如果是小米手机的话,可以在开发者选项中打开 显示 HDR/SDR 比率 的开关,手机右上角会显示一个数字,当这个数字大于 1 并且逐渐变大的时候,说明屏幕正在提高亮度。

接下来就是个人认为 安卓高端机的杜比视界格式支持要比苹果更好的地方了。

众所周知,杜比视界格式是有 Profile 4、5、7、8、9 多种标准的,如下图所示:

其中 Profile 8 的兼容性最好,比如 Profile 8.4 就向下兼容支持 HLG 格式,一般安卓和iOS录制支持杜比视界的话,就都是 Profile 8.4 的格式。

而 Profile 5 的兼容性最差,因为它用到了一种叫做 IPTPQc2 的独家色彩编码技术,设备如果没有杜比视界的认证,播放就会出现色差问题。

比如,找到了一个 Profile 5 的杜比格式视频,在 iOS 和 Mac 上播放显示画面:

这就有很明显的色彩问题了,天空☁️都变成绿色了,椰子树🌴也变成红色了。

而在小米上就能正常显示,没有明显色彩问题。

从这一点可以看出,安卓的高端机杜比视界格式支持范围比苹果更好了。

另外,前面提到杜比公司出了一个专业工具来查看视频码流是否为杜比视界格式,但在我们日常开发中可没有那么专业的工具来判断视频是否为杜比视界格式。

一般来说都是判断视频的是否有如下的 Side Data 数据:

这个数据一般是在视频容器的 dvvc box 中,在视频封装时可以写入这个 dvvc box 数据,有兴趣的可以看看 FFmpeg 源码中 movenc.c 文件的 mov_write_dvcc_dvvc_tag 函数调用链。

如果我们把一个普通的 HDR 视频在封装的时候写入 dvvc box 数据,但实际上并没有任何的杜比视界元数据,那么会不会被系统认为是杜比视界格式呢?

经过一番操作后发现,构造出的杜比视界格式视频在 iOS 上会被识别成杜比视界格式,尽管没有任何元数据,只是普通的 HDR 视频,也可以欺骗系统当做杜比视界格式。

而在小米上,也会被识别成杜比视界格式,可确实无法播放的。

Image title

可以说 iOS 对杜比视界的兼容性更好,但反过来也体现安卓对杜比视界格式的要求更严格,除了有 Side Data 数据来标识,还是要有对应的元数据的,否则无法播放。

从上面两点来看,反而觉得安卓的杜比视界格式支持要好于 iOS 了。

但是,为什么大家一般都会觉得 iOS 的 HDR 视频体验会比安卓更好呢? 我想可能有如下几个原因:

iOS 从 iPhone12 开始就支持录制杜比视界格式了,到现在的 iPhone16 ,经历了好几代机型迭代,装机量支持率明显会高于安卓高端机的普及,iOS 录制的 HDR 视频明显比安卓多很多。

另外,上面只是对比了系统相册的支持力度,作为开发者从应用开发的角度上来讲,iOS 的整个 HDR 能力的相关 API 对开发者更友好,在官网以及相关的论坛资料上都可以参考实现,并且要处理的兼容性问题比较少。

而安卓生态在这一点上来讲反而更加封闭,按理说 Google 也会给出 API 的调用接口去实现 HDR 的相关能力,但是厂商可不一定吃你那套,会把这些更高级的能力当做机型卖点来单项提供,比如搞一个黑白名单,在名单内的才可以实现相关能力,或者干脆就没有提供相关底层实现,能够按照接口好好实现能力的厂商那都是良心厂商了。

另外 Google 对于 HDR 相关能力的推广以及国内的相关资料也比较少,这也是导致用户从许多应用体验上感觉 iOS 的 HDR 能力支持更丰富的原因吧。

但是,不管怎么样,这不妨碍我认为安卓的杜比视界格式开始超越苹果了~

充值 Cursor 之后,工作有了哪些变化?🤔

Note

本文同步发布在公众号: 音视频开发进阶

https://mp.weixin.qq.com/s/0o0ndJ5Z8_niQZuQ9wiDZQ

前言

前段时间充值了 Cursor 的年度大会员,在深度使用之后,不得不说 AI 对工作效率的提升那是相当给力。

Tab 键成了小甜甜

最明显的变化就是 Tab 键,使用频率大大提升,已经远超 Ctrl+CV 的使用,同样也加剧了键盘的磨损 😐。

日志打印方法生成NDK调用 等场景下已经是重度依赖了,Cursor 根据上下文可以提供智能的代码建议,靠 Tab 键就能大大减少重复性工作。

尤其是做客户端开发的时候,主要的代码编辑工具从 Android Studio 、XCode 切换到了 Cursor ,在要编译运行时才会切到 AS 和 XCode 上检查编译问题。

Cursor 的 Tab 键响应有时候会有些延迟,在延迟等待的时候就能体会到那种怕它不来,又怕它乱来的感觉了~

Prompt 工程师真香

这个需求怎么搞,哪个框架怎么写,遇事不决问 AI 。

但要是这 Prompt 关键词没写好,那得到的答案要么完全不在频道上,要么泛泛地讲一堆空话,起不到任何帮助。

即使 Cursor 可以支持指定多个文件和代码片段来作为上下文,但是业务逻辑过于复杂,相关的文件和引用超出了 Cursor 的上下文 Token 数量,也是白搭。

这时候就必须讲讲 Prompt 工程师的自我修养了。

不要让 AI 来考虑整体的方案和框架,而且自己有了整体的方案和框架后,把框架进行概念上的抽象,再在交给 AI 进行补全和完善。

因为实际业务需求过于复杂,尤其是涉及到具体业务上的专有名词(并非业界通用名词),这时候是很难写好一个 Prompt 关键词的。

真想要写好的话,会发现自己成了无情的汉字输入机器人,每天都忙着打汉字写作文一样来调教 AI ,要是最后得到的结果不满意,那真是事倍功半,惨兮兮。

最好就是自己有了整体的方案和框架后,再把框架和概念进行抽象,比如说业务中有个需求名词叫做运动贴纸,你把这个告诉 AI ,那肯定会理解不到位,然后还要写一串内容来给 AI 解释什么是运动贴纸,但如果把这个简化成贴纸,按照贴纸的逻辑来实现,在这基础上再实现运动那部分的需求,就能靠谱多了。

另外,假设让 AI 写一个生产者消费者模型的框架,那都能写出好几种花样来。因为这都是业界非常普遍和基础的框架,AI 很好理解的。

当我们的需求有了方案后,最好也把它抽象成这种基础的框架,可以是整体框架的也可以是局部拆分的,比如说生产消费模型、多线程模型、设计模式、线程池模型、消息队列模式等等。然后让 AI 来完成这样的框架,把输入和输出也抽象成通用的概念,确定框架可行后,在贴合具体的业务逻辑进行完善。

如果是让 AI 来完成需求方案框架,没有自己的思考就采纳了,那后续开发中如果这个方案有问题,就得去解 AI 方案的 Bug ,用 AI 去解 AI 的 Bug ,可能最后得到的还是 Bug 。

总之,用 AI 来搞个大需求,别想着一口吃成个胖子。

源码分析还有市场吗?

深入一段时间 Cursor 之后,除了被它的能力震惊之外,还在思考以前看过的技术文章和教学视频,放到 AI 时代,那些文章和视频还有市场吗?

尤其是源码分析类的文章,相信很多人都看过,基本上都是讲解具体的 API 调用流程、然后画流程图之类的、。

这些工作现在交给 AI 来做,真是分分钟就能分析清楚了,而且遇到的一些简单问题不用 Google 靠 AI 也能给解决掉,自己写的文章还不如用 AI 写的好呢。

如此一来,如果说我们的能力仅停留到源码分析的地步上,那么这一点完全是可以被 AI 替代的

那么在 AI 时代,什么样的能力才是不会被 AI 给替代呢?我想,除了具体的业务内容,可能还有在基础流程背后更深度的技能,比如性能优化的技巧、疑难杂症的解决等等,另外还有人与人之间沟通交流合作的软实力

要是哪天这些也能被 AI 替代,希望那时候我已经领上退休金了吧~~