其實圖形驅動程式回報的錯誤與「解碼」有關,而非編碼。它仍在使用硬體編碼器:
2019-05-15T07:11:59 MCEBuddy.AppWrapper.FFmpeg → Stream #0:0: Video: hevc (hevc_nvenc) (Main) (hev1 / 0x31766568), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=-1–1, 2000 kb/s, 29.97 fps, 30k tbn, 29.97 tbc
2019-05-15T07:11:59 MCEBuddy.AppWrapper.FFmpeg → Metadata:
2019-05-15T07:11:59 MCEBuddy.AppWrapper.FFmpeg → encoder : Lavc58.42.100 hevc_nvenc
ffmpeg 對硬體解碼器的請求被顯示卡拒絕,因此失敗。可能有幾個原因,也許它沒有正確識別該使用哪種解碼器,或是該特定串流組態的 mpeg2 影像解碼不受支援。
由於原始影片是 mpeg2,而 mpeg2 的軟體解碼已經相當高效,你可能看不到明顯效能提升;反而可能因為需要把影像資料複製到顯示記憶體、解碼後再傳回 ffmpeg,再送回顯示卡編碼,而花費更多時間。通常 h.264 與 h.265 在硬體解碼上才會有最大幅度的加速。
若你仍想嘗試,可在設定檔的 ffmpeg-general 行加入以下參數,強制使用特定的硬體解碼器:
-c:v mpeg2_cuvid
這應該是 ffmpeg-general 行的最後一個參數。