以Video_Codec_SDK_10.0.26为例子
1、首先是nvidia的显卡驱动、cuda10.0的安装就不赘述了;
2、在ubuntu下需要安装vulkan,安装方式为:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt upgrade
sudo apt-get install vulkan-tools vulkan-utils libvulkan1 libvulkan-dev
(如果装不下来就一直装,会慢慢装成功的)
sudo add-apt-repository -r ppa:graphics-drivers/ppa
(最后移除这个新加的repository)
3、安装GL相关的东西:
//glut
sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev
//glew
sudo apt-cache search glew (先用这行查看libglew的可用版本,下面的libglew2.0改成你的可用版本)
sudo apt-get install libglew2.0 libglew-dev
4、编译ffmpeg-4.3
因为如果你直接以 sudo apt-get install ffmpeg 的方式安装,那么安装的库版本可能是libavcodec.so.57版本,但是这里后面的编译需要的版本是libavcodec.so.58,因此你需要自己编译
先删除版本不对的ffmpeg: sudo apt-get remove --purge ffmpeg (但是这样还是删不干净。。算了不用管)
可以参考 https://blog.csdn.net/luozhichengaichenlei/article/details/112693899 的编译方式,编译一个ffmpeg-release-4.3,这样就是像libavcodec.so.58一样的对的版本,这里注意 ./configure 时不要设置 --prefix 的目录,这样ffmpeg就会直接被设置到环境变量,Video_Codec_SDK_10.0.26的例子编译时就能够找到库。
5、特定例子
因为研究的不深,所以只看了个别例子,比如"/Video_Codec_SDK_10.0.26/Samples/AppDecode/AppDecGL"
修改该目录下的"AppDecGL.cpp"中main()的szInFilePath的值为你的某一个视频文件,比如"/home/lzc/Desktop/data/video/2K.mp4"
再编译运行
cd ./Video_Codec_SDK_10.0.26/Samples
mkdir build
cd build/
cmake ..
make -j20
sudo make install
./AppDecGL