1--前言
torchvision0.12推出了GPU Video Decoding的API,可通过以下代码读取视频流。
import torchvision
reader = torchvision.io.VideoReader(file_name, device='cuda:0')
for frame in reader:
print(frame)
需从源码编译torchvision,链接:torchvision0.12功能
2--编译安装过程
参考链接:编译安装过程
使用docker拉取Cuda11.3的镜像
docker run -it --gpus all -v /home/pc:/home --name test_ljf pytorch/pytorch:1.11.0-cuda11.3-cudnn8-devel
# 退出容器
# exit
# 启动容器
docker start test_ljf
# 进入容器 (先启动后进入)
docker attach test_ljf
conda uninstall ffmpeg
pip uninstall torchvision
export TORCHVISION_INCLUDE=/home/ljf/Video_Codec_SDK_11.1.5/Interface/
export TORCHVISION_LIBRARY=/home/ljf/Video_Codec_SDK_11.1.5/Lib/linux/stubs/x86_64/
conda install -c conda-forge ffmpeg
export CUDA_HOME=/usr/local/cuda-11.3
python setup.py install
3--问题记录
编译安装过程没有报错,但测试API出现以下问题:RuntimeError: Not compiled with GPU decoder support.
使用以下代码能顺利读取视频流,但无法使用Cuda,测试失败。
reader = torchvision.io.VideoReader('/home/ljf/vision/test4.mp4')
问题及版本详细信息:问题记录