Ubuntu系统下,在指定的虚拟环境下Lintel安装向导

前言

随着深度学习研究的深入发展,对数据的需求越来越依赖。而计算机视觉的研究涉及图片、视频,频繁的从磁盘中读取图片数据相当耗时。基于视频的深度学习通常需要将视频裁剪成帧,继而送进网络训练。为了克服这种以往的模式,可以利用lintel接口来进行处理。该接口是用于解码视频的python模块,返回视频中所有帧的字节数组,其使用ffmpeg的c语言接口,从而实现让程序直接快速的读取视频。安装该接口,需要先安装FFmpeg。

1.下载FFmpeg

建议安装最新版本的,可以从http://ffmpeg.org/download.html#release下载源码;此处安装的版本是4.2.4

2. 编译、配置

编译

首先安装一个必须用到的库yasm ,再进行编译。执行     sudo apt-get install yasm

Ubuntu系统下,在指定的虚拟环境下Lintel安装向导

进入解压得到的文件夹

cd /home/xxx/xxx/ffmpeg-4.2.2       (xxx是我自己的文件名,安装时根据自己的路径就OK),再执行下列语句。其中prefix=/usr/local/ffmpeg是安装指定的路径,方便后面在bashrc中加入环境变量。

./configure --enable-shared --enable-gpl --enable-version3 --enable-pic --enable-runtime-cpudetect --cc="gcc -fPIC" --prefix=/usr/local/ffmpeg

执行

make -j$(xx)     (xx表示cpu的通道数,博主用的是32,一般根据自己电脑来,可以8,16都行,或者直接make,那么就是单通道编译,会很慢)

sudo make install

在安装成功之后,prefix所指定的文件夹下面会出现安装好的四个文件夹: bin / include / lib / share。因为lib库还未添加至环境中,导致即使在bin文件下的可执行文件,也无法找到lib库。下面进行配置:

配置执行sudo gedit /etc/ld.so.conf   加入路径 /usr/local/ffmepeg /lib,即添加

include /etc/ld.so.conf.d/*.conf

/usr/local/ffmepeg/lib 

/usr/local/lib

(按 i 可以输入,三行代码复制进去以后 esc 退出,再  WQ 保存退出)

然后执行:    sudo /sbin/ldconfig   使配置生效

环境变量的加入

在bashrc中加入环境变量   执行   sudo gedit ~/.bashrc  打开home下的.bashrc文件,在文件末尾添加

#ffmpeg

export ffmpegpath=/usr/local/ffmpeg

export PATH=${ffmpegpath}/bin${PATH:+:${PATH}}

export LD_LIBRARY_PATH=${ffmpegpath}/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

export CPATH=${ffmpegpath}/include${CPATH:+:${CPATH}}

export LIBRARY_PATH=${ffmpegpath}/lib${LIBRARY_PATH:+:${LIBRARY_PATH}}

Ubuntu系统下,在指定的虚拟环境下Lintel安装向导

最后, source ~/.bashrc  **

至此,可以在任意位置使用ffmpeg命令,测试:执行    ffmpeg –version 正常显示版本即可

Ubuntu系统下,在指定的虚拟环境下Lintel安装向导

3.安装Lintel

从官方下载lintel的源码,https://github.com/dukebw/lintel

因为是安装在虚拟环境下,虚拟环境名为 pytorch,所以将 lintel文件夹复制到虚拟环境下,即:

/home/dell/.conda/envs/pytorch/lib/python3.6/site-packages

进入虚拟环境   source activate pytorch 

进入到lintel文件夹

cd /home/dell/.conda/envs/pytorch/lib/python3.6/site-packages/lintel

执行    pip3 install -e ./

Ubuntu系统下,在指定的虚拟环境下Lintel安装向导

安装成功

特别感谢其他贡献者

参考1. https://blog.csdn.net/weixin_41558411/article/details/94323838

参考2. https://blog.csdn.net/gukedream/article/details/89602163?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task