VPF:Python中的硬件加速视频处理框架

VPF(视频处理框架)的目的是在使用Python处理视频时利用NVIDIA GPU的简单而强大的工具。VPF利用NVIDIA Video Codec SDK来提高灵活性和性能,并为开发人员提供Python固有的易用性。


VPF是需要自己编译的python库,github也提供了编译步骤 https://github.com/NVIDIA/VideoProcessingFramework/wiki/Building-from-source

以下是我的编译过程及遇到的问题解决方法。


目录

 

1.环境

2.编译ffmpeg

3.下载Video Codec SDK

4.编译VPF

error1

error2


1.环境

系统:ubuntu18

nvcc: 10.2

ffmpeg:4.2

Video Codec SDK:11.0.10

2.编译ffmpeg

git clone https://github.com/FFmpeg/FFmpeg.git
cd FFmpeg

mkdir -p $(pwd)/build_x64_release_shared 
./configure \
 --prefix=$(pwd)/build_x64_release_shared \
 --disable-static \
 --disable-stripping \
 --disable-doc \
 --enable-shared
 
make -j -s -Wl,-Bsymbolic && make install

3.下载Video Codec SDK

https://developer.nvidia.com/nvidia-video-codec-sdk/download

4.编译VPF

cmake参数需要指定

git clone https://github.com/NVIDIA/VideoProcessingFramework.git
cd VideoProcessingFramework
export INSTALL_PREFIX=$(pwd)/install
mkdir -p install
mkdir -p build
cd build

# If you want to generate Pytorch extension, set up corresponding CMake value GENERATE_PYTORCH_EXTENSION
cmake .. \
  -DFFMPEG_DIR:PATH="$PATH_TO_FFMPEG" \
  -DVIDEO_CODEC_SDK_DIR:PATH="$PATH_TO_SDK" \
  -DGENERATE_PYTHON_BINDINGS:BOOL="1" \
  -DCMAKE_INSTALL_PREFIX:PATH="$INSTALL_PREFIX"
  
#  可选参数  
# -DGENERATE_PYTORCH_EXTENSION:BOOL="1" \
#  -DPYTHON_LIBRARY=/home/user/anaconda3/lib/libpython3.7m.so \

make && make install

Done!


error1

编译VPF时报错
libavcodec.a(vc1dsp_mmx.o):
> relocation R_X86_64_PC32 against symbol `ff_pw_9' can not be used when
> making a shared object; recompile with -fPIC
重新编译编译ffmpeg
./configure  --prefix=./build  --disable-static  --disable-stripping  --disable-doc   --enable-shared
make -j -s -Wl,-Bsymbolic && make install 

error2

如果报错:
nvDec = nvc.PyNvDecoder(encFilePath, gpuID)
ValueError: FFmpegDemuxer: no AVFormatContext provided.
// 在 VideoProcessingFramework/PyNvCodec/TC/src/FFmpegDemuxer.cpp 中的 avformat_open_input()前加上  'av_register_all();'
重新编译即可

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值