前言
因為某些原因需要在Windows上進行大量的視頻合并操作,最終選擇了ffmpeg進行。ffmpeg的二進制是在官網上下載的。
初步嘗試
最開始直接使用默認的編解碼器:ffmpeg -i xx -i xx xx
,結果發現ffmpeg根本就不調用GPU,純用CPU進行軟解,導致速度慢的出奇。因此想辦法調用GPU進行硬解
調用硬解碼器
百度后得到參數 -hwaccels dxva2
,這樣可以調用D3D進行硬解碼,對于Windows平臺應該是很合適的。
調用硬編碼器
這里要注意參數所處的位置。在輸出文件名前面加上 -c:v h264_amf
即可調用GPU進行硬編碼,如果GPU支持,也可把h264換成hevc等,注意不能寫成 -c h264_amf
,因為只有圖像流能夠硬編碼,音頻流仍然得軟編碼。
總結
最終調用形式如下:ffmpeg -hwaccels dxva2 -i xx -i xx -c:v h264_amf xx
。結果非常好,GPU雖然無法滿載,但利用率相當好,同時速度也快了不少。