Linux下JavaCv使用GPU加速(Nvidia显卡)
1.环境配置,安装显卡驱动,cuda,cudnn
linux上安装NVIDIA显卡驱动以及深度学习需要的cudn、cudnn、pytorch_宜城有少年的博客-CSDN博客_linux安装nvidia显卡驱动
2.安装FFmpeg视频转码所需要的包
(1)安装依赖
yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ git libtool make mercurial pkgconfig zlib-devel
(2)安装包
wget http://www.nasm.us/pub/nasm/releasebuilds/2.13.02/nasm-2.13.02.tar.bz2
tar xjvf nasm-2.13.02.tar.bz2
cd nasm-2.13.02
./autogen.sh
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make
make install
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar xzvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make
make install
git clone git clone https://code.videolan.org/videolan/x264.git
cd x264
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static
make
make install
git clone https://bitbucket.org/multicoreware/x265_git.git
cd x265/build/linux
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source
make
make install
git clone --depth 1 --branch v0.1.6 https://github.com/mstorsjo/fdk-aac.git
cd fdk-aac
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
wget http://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
tar xzvf lame-3.100.tar.gz
cd lame-3.100
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm
make
make install
wget https://archive.mozilla.org/pub/opus/opus-1.2.1.tar.gz
tar xzvf opus-1.2.1.tar.gz
cd opus-1.2.1
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
wget http://downloads.xiph.org/releases/ogg/libogg-1.3.3.tar.gz
tar xzvf libogg-1.3.3.tar.gz
cd libogg-1.3.3
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
wget http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.5.tar.gz
tar xzvf libvorbis-1.3.5.tar.gz
cd libvorbis-1.3.5
./configure --prefix="$HOME/ffmpeg_build" --with-ogg="$HOME/ffmpeg_build" --disable-shared
make
make install
git clone --depth 1 https://github.com/webmproject/libvpx.git
cd libvpx
./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm
make
make install
git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers
make PREFIX="$HOME/ffmpeg_build" BINDDIR="$HOME/bin"
make install PREFIX="$HOME/ffmpeg_build" BINDDIR="$HOME/bin"
安装ffmpeg
wget http://ffmpeg.org/releases/ffmpeg-4.4.tar.bz2
tar xjvf ffmpeg-4.4.tar.bz2
cd ffmpeg-4.4
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \--prefix="$HOME/ffmpeg_build" \--pkg-config-flags="--static" \--extra-cflags="-I$HOME/ffmpeg_build/include -I/usr/local/cuda/include" \--extra-ldflags="-L$HOME/ffmpeg_build/lib -L/usr/local/cuda/lib64" \--extra-libs=-lpthread \--extra-libs=-lm \--bindir="$HOME/bin" \--enable-gpl \--enable-libfdk_aac \--enable-libmp3lame \--enable-libopus \--enable-libvorbis \--enable-libvpx \--enable-libx264 \--enable-libx265 \--enable-nonfree \--enable-cuda \--enable-cuvid \--enable-nvenc \--enable-libnpp
make
make install
hash -r
查看版本ffmpeg -h
查看编码器 ffmpeg -hwaccels
查看编码视频是否成功
ffmpeg -hwaccel cuvid -c:v h264_cuvid -i /home/rtsp/test.mp4 -c:v h264_nvenc -b:v 2048k -vf scale_npp=1280:-1 -y /home/2.mp4
3.使用GPU加速JavaCV
//解析视频时public FFmpegFrameGrabber getGrabberByUrl(String url) throws Exception{FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(url);grabber.setFormat("rtsp");grabber.setVideoCodecName("hevc_nvenc");//上图安装的解码器,GPU加速的关键grabber.setPixelFormat(avutil.AV_PIX_FMT_NV12);//像素格式grabber.setImageMode(FrameGrabber.ImageMode.COLOR);String byte2Base64= RSAUtil.getMsgByRsa("****");grabber.setOption("rtsp_transport", "tcp");//tcp传输协议grabber.setOption("appkey", "****");//海康视频 appkeygrabber.setOption("secret", byte2Base64);//海康视频 secretgrabber.setOption("playMode", "0");//初始播放模式:0-预览,1-回放grabber.setOption("port", "446");//综合安防管理平台端口,若启用HTTPS协议,默认443grabber.setOption("enableHTTPS", "1"); //是否启用HTTPS协议与综合安防管理平台交互,这里总是填1grabber.setOption("rtsp_flags", "prefer_tcp");// 设置缓存大小,提高画质、减少卡顿花屏grabber.setOption("buffer_size", "1024000");grabber.setOption("stimeout", "3000000");grabber.start();return grabber;}
//推流时
FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(url,grabber.getImageWidth(),grabber.getImageHeight(),1);recorder.setVideoCodecName("h264_nvenc");//编码器,GPU加速关键recorder.setPixelFormat(avutil.AV_PIX_FMT_NV12);//像素格式recorder.setFrameRate(grabber.getFrameRate());recorder.setInterleaved(true);// 降低编码延时/* recorder.setVideoOption("tune", "zerolatency");// 提升编码速度recorder.setVideoOption("preset", "ultrafast");*/// 视频质量参数(详见 https://trac.ffmpeg.org/wiki/Encode/H.264)recorder.setVideoOption("crf", "28");// 分辨率recorder.setVideoBitrate(2000000);// 视频编码格式recorder.setVideoCodec(grabber.getVideoCodec());// 视频格式recorder.setFormat("flv");// 视频帧率recorder.setFrameRate(grabber.getFrameRate());recorder.setGopSize(60);//recorder.setAudioOption("crf", "0");recorder.setAudioQuality(0);recorder.setAudioBitrate(192000);recorder.setSampleRate(44100);// 建议从grabber获取AudioChannels// recorder.setAudioCodec(avcodec.AV_CODEC_ID_AAC);recorder.start();for(;(frame=grabber.grabImage())!=null;) {recorder.record(frame);}
使用nvidia-smi查看GPU使用情况
Linux下JavaCv使用GPU加速(Nvidia显卡)相关推荐
- Windows10下Tensorflow启用GPU加速,显卡GTX1060,踩坑记录
因为需要用到tensorflow学习深度学习,所以有N卡就想开启GPU加速,结果各种坑 1.安装VS和Python环境 (不用VS的可以不安装,使用其他工具也是一样的) 这里使用VS2019作为开发 ...
- Caffe2-windows下caffe的gpu加速
摘要:本篇日志承载上篇内容,在上篇基础上进行优化和添加.主要说明在正确cpu的caffe框架下如何添加gpu加速的过程. 正文: 上篇说明了如何安装cpu版本的caffe框架,其中我提到过,只有cpu ...
- 【Linux下Ubuntu查看电脑cpu和显卡型号信息】
Linux下Ubuntu查看电脑cpu和显卡型号信息 查看cpu型号终端命令 cat /proc/cpuinfo 输出的model name : 后边即为型号信息 查看显卡型号终端命令 lspci | ...
- ubuntu10.04.04在windows下采用WUBI安装(nvidia显卡GeForce 405),附带中文输入法安装
起因:在windwos下安装虚拟机,在运行linux,赶脚系统运行的特慢,还经常卡机:后想在机子上直接安装ubuntu系统,赶脚那个速度,那个体验还是不必win7差的,虽然是10.04的版本:以下是本 ...
- Ubuntu下的lammps GPU加速(真的香)
参考 Lammps实现GPU加速,博客界面很好看. 显卡驱动安装(本文默认为英伟达) - 检查自己的驱动是否安装成功 nvidia-smi 如果安装成功会有如下输出: 如果未安装会有如下结果: nvi ...
- Linux 下 N 卡 GPU 测试
在win系统下测试工具比较多,现在 N 卡多用于深度学习,有时候会在 Linux下进行 N 卡测试. 测试工具 gpu-burn: Multi-GPU CUDA stress test,github地 ...
- ubuntu16.04下安装TensorFlow(GPU加速)----详细图文教程【转】
本文转载自:https://blog.csdn.net/zhaoyu106/article/details/52793183 le/details/52793183 写在前面 一些废话 接触深度学习已 ...
- linux 软件超频,TuxClocker - Linux下又一个GPU超频GUI
Linux下第三方GPU超频实用工具列表中又增加了TuxClocker,这是一款基于Qt5的用户界面,目前支持NVIDIA显卡和AMD GPU实验支持. TuxClocker是一款Qt5超频工具,不仅 ...
- ubuntu16.04下安装TensorFlow(GPU加速)----详细图文教程
文章来源:http://www.datacups.com/post/1 软件: ubuntu16.04+cuda8.0+cudnn v5+tensorflow 0.11 1. 下载 1.1 系统镜像 ...
最新文章
- C语言-二维数组做函数的参数
- 并查集(Union-Find)算法介绍
- 狂潮微课表示-怎么做免费的百度爱采购推广
- IDEA-jetty热加载(类文件和静态资源)
- 04:输出保留3位小数的浮点数
- 使用账户和密码在FTP客户端连接FTP服务器,出现vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot
- C中使用汇编交换两个值
- 禅道项目管理软件配置及使用
- Bp算法公式推导推导-详解
- Spotfire 连接mysql数据库
- Element UI 之 Tabs 栏下拉菜单的实现
- 2022年黑客书籍推荐
- CSDN代码黑色背景设置
- [转] 一个女生写给男朋友的!!!~~有点现实、冷静的语言,却让人感觉很温暖!!!
- 计算机屏幕发蓝,电脑的颜色突然变成蓝色了,屏幕,什么颜色都和以
- 苹果电池显示维修_安装第三方电池的iPhone也可享受苹果官方维修
- 随机Tiled Map的生成
- ICM-42605 6轴MEMS加速度计陀螺仪运动传感器数据的读取
- 【JavaScript】input提示弹出框
- LAMP环境让php支持pdo_mysql
热门文章
- 我国老年相亲市场的现状分析:百亿级市场的难点与机遇
- vue集成activiti6.0 详细教程
- 拼多多看似简单,为什么很多的新手商家却亏钱了呢?
- 详解“==”和equals的区别
- 认真学习MySQL中的二进制日志(binlog)与中继日志(Relay log)
- 国产集中式数据库综合对比(达梦、人大金仓、海量)
- bom更改编号 sap_SAP ERP系统如何通过LSMW批量更改BOM
- java融云即时通开发流程,基于融云开发的 Android 版即时通讯(IM)应用程序
- 监听除某元素之外点击事件
- PHP实现添加到错题本,如何整理错题本?