我一直在研究gstreamer applemedia encoder plugins并改进了基于VideoToolbox的视频编码。运行gstreamer管道,例如:
$ gst-launch-1.0 filesrc location=source.avi ! decodebin ! vtenc_h264 ! h264parse ! qtmux name=mux ! filesink location=sink.mp4
在Mac OS系统上使用
VTCompressionSession
编码h264视频时,我期望看到非常低的CPU使用率。但是,在我测试过的系统上:带有GeForce 9600M的2009年中期Macbook Pro和带有Radeon HD 6630M的2011年中期Mac mini的编码仍然消耗80%到130%的CPU,这表明它不是硬件加速的。kVTCompressionPropertyKey_ProfileLevel
在哪些硬件配置上,或者在给定哪些压缩参数(例如,哪些VTCompressionSession
)上使用硬件加速编码? 最佳答案
根据http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/tree/sys/applemedia/vtenc.c,您要将NULL传递给VTCompressionSessionCreate()的encoderSpecification参数。创建一个编码器规范字典,并将kVTVideoEncoderSpecification_EnableHardwareAcceleratedVideoEncoder设置为kCFBooleanTrue。
关于macos - VideoToolbox的VTCompressionSession何时从硬件加速中受益?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19256897/