如何使用ffmpeg使用硬件加速解码文件?
我写了一个使用ffmpeg的工作视频播放器.我已经检查了支持使用"av_hwaccel_next"并找到了mpeg2_dxva.
但是,当我加载mpeg2文件(像往常一样)时,我没有得到任何硬件加速.AVCodecContext->hwaccel并且AVCodecContext->hwaccelcontext都是null.
我是否必须在某处传递一些标志才能启用hw-acceleration?
我无法找到任何关于此的信息,任何人都知道一个好的来源?
关于 ffmpeg 硬件加速的几个问题(我认为这与这个问题不是同一个问题):
如何判断我的 ffmpeg 版本是否支持硬件加速,以及它支持哪些加速功能?
从转码过程的输出中,我可以判断 ffmpeg 是否使用硬件加速吗?
我正在使用 ffmpeg 从摄像机中提取 H265 视频,并将其转换为 H264 HLS 块。现在的问题是转码过程过于占用CPU。我希望使用硬件加速。由于应用程序的原因,我无法使用昂贵的GPU,例如NVidia cuda平台。如果仅使用 CPU 自带的 Intel HD 显卡,转码 H265 => H264 时是否可以显着降低 CPU 使用率?预计性能增益是多少(%)?
谢谢。
我希望在RGB上获得相机屏幕上指定点的颜色值(不捕获).
我有以下代码片段,但它给出了视图背景颜色的值而不是相机屏幕上的图片.
CGPoint point=CGPointMake(100,200);
unsigned char pixel[4] = {0};
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(pixel, 1, 1, 8, 4, colorSpace, kCGImageAlphaPremultipliedLast);
CGContextTranslateCTM(context, -point.x, -point.y);
[self.view.layer renderInContext:context];
CGContextRelease(context);
CGColorSpaceRelease(colorSpace);
NSLog(@"pixel: R=%d G=%d B=%d Alpha=%d", pixel[0], pixel[1], pixel[2], pixel[3]);
Run Code Online (Sandbox Code Playgroud)