知方号

知方号

从编解码角度看,iPhone拍摄的Live Photos实况照片究竟是什么?

支持拍摄实况照片的机型有:iPhone 6s及以上,iPad第5代,iPad Air第3代,iPad mini第5代及以上等。

苹果官方对实况照片的介绍如下:

https://support.apple.com/zh-cn/104966

拍摄实况照片时,iPhone 会录下拍照前后各 1.5 秒所发生的一切。然后,你可以选择不同的封面照片、添加有趣的效果、编辑实况照片,并与你的家人和朋友分享。

大家用iPhone手机拍摄一张实况照片,目前基本上只能在自己手机相册里面浏览观看,因为目前大多数应用软件不支持这种“照片”的分享。

如果想下载或导出你拍摄的实况照片,可以登录自己的iCloud进行下载。下载的一张live photo照片,对应着一张文件后缀为.HEIC的图片和一段使用H.265编码的MOV封装格式视频,且这个图片的名字和视频名字相同。如下图所示:

这里图片文件名后缀是.HEIC,但实际的图片编码格式不一定是HEIC,虽然苹果公司一直在不遗余力的推HEIC图片格式,HEIF静态图像压缩之它是什么?比如我的这个图片实际是一张JPEG格式的。

正如我们不要以貌取人一样,对于音视频文件,也不要根据后缀名去判断编码类型。

再来看看live photo对应的MOV视频,我使用mediainfo软件进行查看,如下图所示:

可以看到,这个视频使用了苹果自己的quick time(MOV)封装格式,且视频流编码格式是HEVC/H.265,视频的时长不到2秒,应该是按下快门前后的各1秒。

对iOS系统上视频编码熟悉的朋友可能注意到了,上图可以看到好几个苹果公司自己的技术,比如这里codec ID的hvc1,比如color primaries是Dispaly P3色域。

然后再使用FFmpeg工具从这个MOV视频中抽取H.265裸码流:

ffmpeg -i IMG_0105.MOV -c:v copy IMG_0105.h265

使用Elecard码流分析软件打开这个H.265裸码流,如下图所示:

可以看到,这段H265码流使用YUV420 8bit编码的SDR视频,码流一共58帧,其中同时有P帧和B帧,且连续B frames个数是3,编码使用的QP值比较低,整个视频平均码率比较高。

使用之前推荐的工具分享一个免费的H.265码流解析工具,分析一下码流高层语法。

我们知道,H.265视频编码标准是在2013年发布的,而iPhone 6s是2015年9月发布,在当时来说这个Live Photo功能在技术上确实挺领先的,不过到了2023年再来看这个功能,貌似除了装X之外也没啥别的意义,还很占内存。

所以,iPhone拍摄的live photo照片,其实是一张后缀名为HEIC实际是JPEG的图片,加上一段使用H265编码和MOV封装的SDR视频的组合,实况照片它不是一张像GIF和WebP动图那样的照片,但在显示效果上和动图差不多。

iOS系统出了这种live photo,我觉得安卓系统上可以搞一个WebP图片和AV1视频的组合实现类似的效果。WebP图片的压缩率完胜JPEG,AV1视频的压缩率优于H265,这样不就可以“遥遥领先”苹果了吗?

作者:手撕编解码原文:https://mp.weixin.qq.com/s/06RyJOjk88OPu53Dyj9lsw

版权

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。