iOS 11上HEVC编码器的文件大小问题

有关此问题的原因,请参见下面的更新5!

iOS 11备受期待的功能之一是对HEVC(或H.265)编码视频的支持。 HEVC使文件大小从H.264减少了约50%,而不会降低质量。 新的编码器的初始印象在随附的相机应用程序中表现良好,但将视频编解码器设置为HEVC时,AVASsetWriter使用的编码器似乎存在问题。

要查看该问题,请在此处克隆或下载我的Git存储库。 另外,如果您有一个已经使用其他编解码器将帧写入视频的项目,只需将使用的AVVideoCodecKey替换为AVVideoCodecType.hevc(在较早版本的Swift上为AVVideoCodecHEVC),如下所示:

在比较使用HEVC编解码器与H.264进行输出的文件时,我已经看到,使用HEVC进行输出的文件的大小大约是使用H.264进行编码的文件的三倍,而质量似乎是相同的。 我已经向Apple提交了错误,并且在收到他们的来信后会更新此帖子,但是与此同时,如果您需要使用AVFoundation逐帧编写,我建议不要跳入使用HEVC。

更新:此问题在iOS 11.0.1中仍然存在-HEVC编码文件的文件大小仅是H.264编码文件的三倍多。

更新2:在iOS 11.0.2中仍未修复

更新3:在iOS 11.0.3中仍未修复

更新4:在iOS 11.2中仍未修复

更新5:根据Brad Ford的说法,问题是HEVC编码器的默认比特率(30兆位)比H.264编码器的默认高得多(5mit)。 尚不清楚这是为什么,并且从文档中看不出来,但是需要更多细节才能了解哪种比特率可以提供两种不同编码器可比的质量。