扩展 FLV 标准支持 H265
Adobe 的FLV 标准里面并不支持 H.265(HEVC)。
要用 FLV 封装 H.265 数据 ,就需要扩展 FLV 增加 CodecID 来支持 H.265 。
目前国内CDN厂商扩展的CodecID一般都为12,具体的FLV H265标准信息,可以参考 金山的video_file_format_spec_v10_1
FFmpeg patch 方法可以参考:金山云H.265 patch说明
当前主流H265解码方案性能对比
- 测试设备: iPhone X, iOS 11.4
- 测试视频: raw h265文件, 1280 x 720, 3600帧, 单线程解码
方案 | cost | fps | |
---|---|---|---|
ittiam | CPU | 11313ms | 316.27 |
安卓自带hevc解码方案libhevc | Real | 11.311s | 316.32 |
yyffmpeg | CPU | 13532ms | 264.32 |
yy的h265解码方案 | Real | 13.449s | 265.96 |
ffmpeg-3.4 | CPU | 53935ms | 66.32 |
未优化版本 | Real | 53.432s | 66.94 |
ffmpeg-3.4 | CPU | 13843ms | 258.47 |
aarch64 neon优化,idct,qpel,pel等方法 | Real | 13.839s | 258.54 |
ksc265 | CPU | 6749ms | 544.19 |
金山H265 | Real | 6.239s | 508.94 |
videotoolbox | CPU | 3749ms | 955.14 |
iOS11 硬件解码 | Real | 17.139s | 207.32 |
开源方案
ittiam的解码方案解码效率最高
iPhone 硬解需要 iPhone 6s 和 iOS11 以上的设备,cpu使用率很低,但是解码速度并不如一些软解方案快。
ffmpeg里的openhevc没有针对aarm64平台进行优化,解码效率最低
经过优化以后基本与yy的方案效率相近
商业非开源:
ksc265 金山的解码方案的解码效率最高,sdk需要授权,同时cpu使用率也很高。