Closed debugly closed 5 years ago
进展:
我发现 homebrew 编译的 ffmepg 是支持 videotoolbox 的:
ffmpeg -hwaccels
ffmpeg version 3.4.1 Copyright (c) 2000-2017 the FFmpeg developers
built with Apple LLVM version 9.0.0 (clang-900.0.39.2)
configuration:
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100 / 57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100 / 6.107.100
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
Hardware acceleration methods:
videotoolbox
但是使用项目里的 build 脚本config出来的头文件里找到 CONFIG_H264_VIDEOTOOLBOX_HWACCEL 为 0 ,所以在确定 pix fmt 的代码里,就没有把 AV_PIX_FMT_VIDEOTOOLBOX 加进去,导致最终没走硬解。
config 选项里可以看出,videotoolbox 是自动选择的,至于为啥选择不使用,还没查出原因,不知道跟我使用 mac 10.15 beta 版有没有关系! --disable-videotoolbox disable VideoToolbox code [autodetect]
降级到 10.14 编译后 CONFIG_H264_VIDEOTOOLBOX_HWACCEL 变成 1 了,支持硬解了!看来是 mac 10.15 beta 的问题....
设置了也没用, [[[SGOptions sharedOptions] decoder] setHardwareDecodeH264:YES]; self.player = [[SGPlayer alloc] init];
播放时 CPU 占用高达70% 左右。