Ubuntu20配置ffmpeg进行gpu硬件加速视频编码记录

Ubuntu20配置ffmpeg进行gpu硬件加速视频编码记录

https://blog.csdn.net/qq_36383272/article/details/116304060?spm=1001.2014.3001.5501
https://blog.csdn.net/qq_36383272/article/details/118569908

现有环境

1.Ubuntu:20
2.显卡驱动:470
3.Cuda:11.1+cudnn

1.获取ffmpeg源码

git clone https://git.ffmpeg.org/ffmpeg.git

注:这个是最新的源码,对于较老的驱动需要自行去官网匹配。

2.安装aac、h264、h265库

sudo apt-get install libfdk-aac-dev libx264-dev libx265-dev

注:这个要在编译ffmpeg之前安装

3.安装ffnvcodec

git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers
make
sudo make install

4.编译ffmpeg

终端进入ffmpeg文件夹,输入如下指令进行配置
静态配置:

./configure --prefix="/usr/local" --pkg-config-flags="--static"  --disable-asm --enable-gpl --enable-libx264 --enable-libx265 --enable-nonfree --enable-libfdk-aac --enable-ffplay

动态配置的指令:

./configure --prefix="/usr/local" --enable-shared --disable-static --disable-asm --enable-gpl --enable-libx264 --enable-libx265 --enable-nonfree --enable-libfdk-aac --enable-ffplay

选一个就可以。
在config后会输出
在这里插入图片描述
遇到:License: nonfree and unredistributable以及后面的东西,可以直接下一步。
接下来编译安装

make -j16
sudo make install

5.验证

ffmpeg -codecs | grep nv

在这里插入图片描述
这样就成功了,接下来进行测试。

6.测试

1.下载测试视频
本次使用原win7中的自带视频,Wildlife.wmv和Wildlife.yuv
链接: https://pan.baidu.com/s/1cmZy0sfyklJgBIcxQLkxmg 提取码: bw6k
2.测试
cpu测试指令

./ffmpeg -s 1280x720 -i Wildlife.yuv -c:v libx265 -c:a aac output.mp4

效果
在这里插入图片描述
Gpu测试指令

./ffmpeg -s 1280x720 -i Wildlife.yuv -c:v h264_nvenc -c:a aac output.mp4

在这里插入图片描述
cpu帧率fps=64.5
gpu帧率fps=806

7.python调用代码

import threading
import os
import time
from datetime import datetime

def thread_func(num): 
 os.system('/home/cj/work/gpu_ffmpeg/ffmpeg/ffmpeg -i /home/cj/work/video_gpu/test.avi -c:v h264_nvenc -b:v 5M ml%s.mp4 >>video_output.log 2>&1' % num)
 print('num=', num)

def many_thread(num):
 threads = []
 for i in range(num):
     t = threading.Thread(target=thread_func, args=(i,))
     threads.append(t)
 for t in threads:
     t.start()


if __name__ == '__main__':
 many_thread(1)

最后一行是并发数设置,这个需要和显卡性能匹配,查看网址为:
https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new

猜你喜欢

转载自blog.csdn.net/weixin_41868104/article/details/124420500