现在深度学习火热,而其又是基于数据驱动的一种机器学习;做计算机视觉的免不了和图片、视频打交道,频繁的从磁盘中读取图片数据是比较耗时的,而且基于视频的深度学习更是麻烦,需要先将视频裁剪成帧,在送进网络训练,那么有没有现成的接口可以让程序直接快速的读取视频,并裁剪成帧!答案是:有的。即lintel。
lintel是能用于解码视频的python模块,返回视频中所有帧的字节数组,其使用的ffmpeg的c语言接口。
在正式安装lintel之前,我们需要安装合适的ffmpeg版本,建议安装最新版本的,可以从http://ffmpeg.org/download.html#release下载源码;
下载完后会在下载的目录下有个FFmpeg文件夹,执行:
cd FFmpeg
然后再执行:
./configure --enable-shared --enable-gpl --enable-pic --enable-runtime-cpudetect --cc="gcc -fPIC" --prefix=install_path
默认的路径为/usr/local/,当然也可以通过参数--prefix指定安装路径,后面配置环境变量的时候会用到。
然后:
make -j$(nproc) && make install 其中nproc为cpu核数,如果当前已有程序在占用cpu的话,可以设置一个合适的数。
接下,配置环境变量:
打开home目录下的.bashrc文件,在末尾添加:
export ffmpegpath=install_path/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}}
更新配置文件:
source ~/.bashrc
接下还要配置系统的环境变量:
sudo vi etc/ld.so.conf 如果没有这个文件,则新建一个
添加
include /etc/ld.so.conf.d/*.conf
install_path/lib
/usr/local/lib
然后执行:
sudo /sbin/ldconfig 使配置生效
完成上述预备工作后,就完成了一大半了。
接下来,从官方下载lintel的源码,https://github.com/dukebw/lintel
git clone https://github.com/dukebw/lintel.git
cd lintel
pip3 install -e ./
在终端打开python3,
import lintel
如果没报错,则证明安装成功。
更多信息可以参考该项目主页:https://github.com/dukebw/lintel
参考资料:
https://github.com/dukebw/lintel
https://blog.csdn.net/gukedream/article/details/89602163