我正在接收多个x264 RTSP流,我正在使用libVLC解码它们,我想使用硬件加速来完成任务.
如果我在Windows上使用VLC播放器本身,我可以在简单首选项 - >输入/编解码器 - >硬件加速解码中选择"DirectX视频加速(DXVA)2.0",与禁用相比,我可以看到CPU利用率显着下降那个选择.
在C++代码中,我尝试将选项"--avcodec-hw = dxva2"添加到libvlc_new()的参数中,但没有运气,硬件加速似乎没有被使用(我想说解码比50%慢)在dxva2上的播放器上)
找到了.该选项必须传递给libvlc_media_add_option(),而不是libvlc_new().请注意,该选项随库的不同版本而更改.使用VLC 2.2.1,它对我有用:
libvlc_media_add_option(m,":avcodec-hw = dxva2");
其中dxva2代表DirectX解码器.在UNIX系统中,参数的值会有所不同(我认为是vda或vaapi)