如何在FFmpeg中指定使用Intel Xe GPU而非NVIDIA RTX A1000进行AV1_QSV编码?
如何在FFmpeg中指定使用Intel Xe GPU而非NVIDIA RTX A1000进行AV1_QSV编码?
嘿,我来帮你搞定这个问题!你遇到的错误核心原因很明确:QSV是Intel专属的硬件加速技术,你的NVIDIA RTX A1000压根不支持AV1_QSV编码——FFmpeg默认自动选了NVIDIA设备,自然会报参数不兼容的错误。下面是具体的解决步骤:
第一步:先确认Intel Xe设备的标识
首先得找到Intel Xe GPU在系统里的设备索引或名称,运行这条命令列出所有可用的D3D11VA设备:
ffmpeg.exe -init_hw_device d3d11va -list_devices true
输出里会显示类似这样的条目,找到Intel Xe对应的那一项即可:
[d3d11va @ 0000012345678900] Device 0: Intel(R) Iris Xe Graphics [d3d11va @ 0000012345678900] Device 1: NVIDIA RTX A1000 6GB Laptop GPU
这里Intel设备的索引是0,名称是Intel(R) Iris Xe Graphics。
第二步:强制FFmpeg使用Intel Xe进行QSV编码
根据你找到的设备标识,用以下两种方法之一修改你的FFmpeg命令:
方法1:通过设备索引指定
这条命令先初始化Intel的D3D11VA设备,再绑定到QSV,最后指定用AV1_QSV编码:
ffmpeg.exe -init_hw_device d3d11va=intel:0 -init_hw_device qsv=qsvi@intel -hwaccel qsv -i "Recording.mkv" -c:v av1_qsv -c:a copy out.mkv
这里的0就是你刚才找到的Intel设备索引。
方法2:通过设备名称指定
如果你更习惯用设备名称,也可以这样写:
ffmpeg.exe -init_hw_device d3d11va=intel:"Intel(R) Iris Xe Graphics" -init_hw_device qsv=qsvi@intel -hwaccel qsv -i "Recording.mkv" -c:v av1_qsv -c:a copy out.mkv
验证是否生效
运行命令后,观察FFmpeg的初始化输出,如果看到类似下面的内容,就说明已经成功切换到Intel Xe了:
[AVHWDeviceContext @ 0000012345678900] Using device 8086:xxxx (Intel(R) Iris Xe Graphics).
这样就能解决你之前遇到的「Current codec type is unsupported」错误,顺利用Intel Xe的QSV进行AV1编码啦!
备注:内容来源于stack exchange,提问作者Ian Botham
相关产品推荐
相关产品推荐

