一。centos 7 cuda 驱动安装
查看是否支持
1.lspci | grep -i nvidia
2.yum install rpm
3.下载SDK
https://developer.nvidia.com/cuda-downloads
rpm -i cuda-repo-rhel7-8.0.61-1.x86_64.rpm
yum clean all`
yum install cuda
二。 ffmpeg 选择 3.3版本以上
1.下载 https://github.com/FFmpeg/FFmpeg/tree/n3.3
2. tar -xzvf FFmpeg-n3.3.zip
3.cd FFmpeg-n3.3
4.touch build_ffmpeg.sh
5.拷贝以下shell命令到 build_ffmpeg.sh
FFMPEG_CFG_FLAGS=
FFMPEG_CFLAGS=
FFMPEG_LDFLAGS=
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-ffmpeg"
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-shared"
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-gpl"
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-libx264"
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-libmp3lame"
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-nonfree"
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-libfdk-aac"
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-hwaccels"
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-cuda"
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-cuvid"
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-nvenc"
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-opencl"
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-libnpp"
FFMPEG_CFLAGS="$FFMPEG_CFLAGS -I/usr/local/cuda/include"
FFMPEG_CFLAGS="$FFMPEG_CFLAGS -I/usr/local/ffmpeg/ffmpeg_build/include"
FFMPEG_CFLAGS="$FFMPEG_CFLAGS -I../nv_sdk"
FFMPEG_LDFLAGS="$FFMPEG_LDFLAGS -L../nv_sdk"
FFMPEG_LDFLAGS="$FFMPEG_LDFLAGS -L/usr/local/cuda/lib64"
FFMPEG_LDFLAGS="$FFMPEG_LDFLAGS -L/usr/local/ffmpeg/ffmpeg_build/lib"
./configure \
$FFMPEG_CFG_FLAGS \
--extra-cflags="$FFMPEG_CFLAGS" \
--extra-ldflags="$FFMPEG_LDFLAGS" \
--prefix="/usr/local/ffmpeg/ffmpeg_build" \
--bindir="/usr/local/ffmpeg/bin"
6.sh build_ffmpeg.sh
7.make&&make install
8.拷贝一些连续jpg格式图片到文件夹内,执行以下命令
./ffmpeg -f image2 -i %d.jpg -c:v h264_nvenc -r 24 -s 848x480 -b:v 500000 -pixel_format yuv420p nvenc.mp4
9.code调用
codec = avcodec_find_encoder(codec_id);
替换
codec=avcodec_find_encoder_by_name("h264_nvenc");