macos - VideoToolbox 的 VTCompressionSession 何时受益于硬件加速?

标签 macos gstreamer video-encoding hardware-acceleration core-video

我一直在研究 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 - 这表明它没有硬件加速。

VTCompressionSession 在哪些硬件配置上,或给定哪些压缩参数(例如,针对哪个 kVTCompressionPropertyKey_ProfileLevel)使用硬件加速编码?

最佳答案

根据 http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/tree/sys/applemedia/vtenc.c您将 NULL 传递给 encoderSpecification 参数的 VTCompressionSessionCreate()。创建一个编码器规范字典,将 kVTVideoEncoderSpecification_EnableHardwareAcceleratedVideoEncoder 设置为 kCFBooleanTrue。

关于macos - VideoToolbox 的 VTCompressionSession 何时受益于硬件加速?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19256897/

相关文章:

objective-c - NSTableViewDelegate 接收多个 NSNotifications

python - 通过 python 使用 maemo 相机

python - 带有 PyGTK 崩溃的多线程 Gstreamer (xcb_xlib_threads_sequence_lost)

video - 媒体基金会。使用自定义 IMFMediaSource 从位图编码视频

python - 如何使用OpenCV Python库更改视频的比特率

video - FFmpeg:省略 -filter_complex 会导致某些播放器中的视频丢失

macos - 用于 Mac OSX 的 JDBC ODBC 桥

macos - 如何设置 PrologScript

iphone - 将音频从 Mac 上的麦克风流式传输到 iPhone

c - gstreamer中如何设置element的sink pad属性?