FFMPEG 使用GPU加速轉(zhuǎn)碼
- 2023-03-24 15:53:00
- admin 轉(zhuǎn)貼
- 16781
前言
視頻轉(zhuǎn)碼時如果遇見視頻比較大、時長很長的時候,轉(zhuǎn)碼壓制需要等待很久且及占用cpu,所以就在想有沒有什么辦法可以加速轉(zhuǎn)碼進(jìn)度呢 ,故本篇文章記錄FFMPEG如何調(diào)用顯卡對轉(zhuǎn)換編碼格式或者壓制進(jìn)行加速。
軟硬編解碼的區(qū)分:
軟編碼:使用CPU進(jìn)行編碼 硬編碼:使用非CPU進(jìn)行編碼,如顯卡GPU、專用的DSP、FPGA、ASIC芯片等
軟硬編解碼的區(qū)別:
簡單來說硬解碼就是 內(nèi)存 - codec 電路 - 內(nèi)存/顯示 的過程所以速度會比軟件編解碼快
ffmpeg支持的硬件
ffmpeg -hwaccels
----------------------------------------------
cuda
dxva2
qsv
d3d11va
opencl
vulkan
硬編碼后綴解釋
qsv:intel顯卡的快速視頻同步技術(shù)(quick sync video)
nvenc:nvidia顯卡的硬件視頻編碼器(nvidia hardware video encoder)
cuvid:nvdec的舊稱,只有解碼端。
cuda: 同上
amf:amd顯卡的amf硬件編碼器(amd hardware encoder)
基本上所有的Intel 電腦都支持qsv方式。
編解碼器支持
ffmpeg -codecs
后面可以跟 sls命令查詢所需的編碼,例如: ffmpeg -codecs | sls nvenc
ffmpeg -codecs | sls nvenc
---------------------------------------------------------------
DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_qsv h264_cuvid ) (encoders: libx264 libx264 libx264rgb h264_amf h264_nvenc h264_qsv ) DEV.L. hevc H.265 / HEVC (High Efficiency Video Coding) (decoders: hevc hevc_qsv hevc_cuvid ) (encoder s: libx265 hevc_amf hevc_nvenc hevc_qsv )
查詢系統(tǒng)支持的編解碼格式,需要用到 ffmpeg -decoders 和 ffmpeg -encoders 兩個命令。
查詢編解碼器選項
查詢編碼器hevc_nvenc的選項:ffmpeg -h encoder=hevc_nvenc
查詢解碼器 h264_qsv 的詳細(xì)信息:ffmpeg -h decoder=h264_qsv
PS:h264_qsv ,h264_cuvid,h264 :就是支持的解碼方式
sls :作用相當(dāng)于linux中的grep
h264_qsv:英特爾硬解碼
h264_cuvid:英偉達(dá)硬解碼
ffmpeg -encoders
如以上有類似輸出則證明是支持硬解碼或者硬編碼的。sls :作用相當(dāng)于linux中的grep
硬件加速命令
ffmpeg -hwaccel cuvid -c:v h264_cuvid -i input.mp4 -c:v h264_nvenc -b:v 2048k -s 1920x1080 output.mp4
常用命令參數(shù)解釋
-hwaccel cuvid:使用cuvid進(jìn)行硬件加速
-c:v h264_cuvid:使用h264_cuvid進(jìn)行解碼
-c:v h264_nvenc:使用h264_nvenc進(jìn)行編碼(nvidia硬件加速x265)
-b:v 2000k:比特率,值越大約清晰。
-s 1920x1080:分辨率
-b:v 3500K:視頻平均比特率為 3500K
-bufsize 6000K:緩存區(qū)大小 6000K,建議設(shè)定為 當(dāng)前碼率幀率5,也許這里的2pass是針對緩沖區(qū)的,緩存未來5s
-maxrate 5000K:最大碼率為 5000K,每幀的最高碼率不超過這個數(shù)值
-preset slow:預(yù)設(shè)方案是 slow,slow已經(jīng)是最好的選項了
-pix_fmt p010le:輸出的像素格式是 p010le 也就10bit,只有新的硬件支持
聯(lián)系人: | 北極星通公司 |
---|---|
電話: | 010-56545416 |
傳真: | 010-82896426 |
Email: | support@bjsin.cn |
QQ: | 35338585 |
微信: | Aoku2017 | QQ群:241759321 |
地址: | 北京市中關(guān)村生命科學(xué)園創(chuàng)意園3-3-103 |