未分類

NVidia 顯卡的 CUVID decoder 與 ncenc encoder (ffmpeg)

如果確認了媒體的編碼方式為以下其一   可以利用 cuvid(nvdec)  進行硬體解碼後直接轉給顯卡進行編碼  可以幾乎免除CPU的 loading [https://itjo.jp/pc/nvenc-encode-part2/]

目前新一代的 Kepler 顯卡都內建了獨立的專屬編碼(nvenc)與解碼(nvdec, 早期稱為 cuvid) ASIC  類似於 QSV 與顯卡的加速功能獨立,並且解編碼加速效能不錯。隨著電路的改進  硬體壓縮的品質持續改善中(與QSV相同  會因為不同的IRIS有不同的壓縮品質)這對於高流量的藍光品質的H264檔案縮小體積相當有利,不會影響桌機的正常作業。

目前支援的解碼名稱可以放入 ffmpeg 的 -i 參數之前 搭配 “-hwaccel"參數 讓 ffmpeg 將圖像資料轉送顯卡而不要使用CPU進行軟解。目前官網預編版本已經預設打開GPU編碼的,需要的可以直接到 ffmpeg 官方網站下載 win32/64 預編版本 (https://ffmpeg.org/download.html) 挑選 static 體積大一點但可以減少麻煩

硬體加速解碼的部份 –

ffmpeg  -hwaccel cuvid  -c:v  decoder_name  -i  INPUT_FILE

  • h264_cuvid
  • hevc_cuvid
  • mpeg4_cuvid
  • vc1_cuvid
  • vp8_cuvid
  • vp9_cuvid
  • h263_cuvid
  • mjpeg_cuvid
  • mpeg1_cuvid
  • mpeg2_cuvid

將編碼的格式參數放在輸入檔名之後與輸出存檔的檔名之前

硬體加速編碼的部份 –

…  …  -c:v encoder_name  …  …

  • hevc_nvenc
  • h264_ncenc

 

Updated@2018-01-10

ffmpeg 官方 windows build 已經預設把 nvenc 打開  所以只 需要下載官方版本,

但官方版本沒有打包 cuda filter 的 ddl 所以如果需要顯卡的濾鏡或縮放功能 需要另外找

ref- https://www.reddit.com/r/PleX/comments/56v7s1/hevc_encoding_1080p_using_nvenc_for_devices_that/

目前試過比較適合用來打包高畫質影片的參數 for NVENC

ffmpeg -i <inputfile> -c:v hevc_nvenc -pix_fmt yuv444p16 -profile:v main10 -preset slow -rc -qp 25 -2pass 1 -rc-lookahead 32 -c:a:0 copy <outputfile>

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s