<!--
* @Author: your name
* @Date: 2020-08-01 20:04:24
* @LastEditTime: 2020-08-03 23:22:27
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \qt_project\VideoWidget\README.md
-->
# 视频播放器控件
一个基于FFmpeg的视频解码的Qt控件,支持cuda、cpu、qsv解码。视频采用opengl离屏渲染技术
## 编译环境
* windows 64bit
* ffmpeg-4.3 可到tag1.0下载
* Version 选择版本4.3
* Architecture 选择64bit
* Linking Dev下载一次,Shared和Static选一个下载;我的工程是使用的Shared
* release-v1.0下面有放好的该版本压缩包
* nvidia独立显卡
* 驱动版本436.15或以上[https://www.nvidia.cn/Download/index.aspx?lang=cn](https://www.nvidia.cn/Download/index.aspx?lang=cn)
* cpu
* 建议i5及以上,带核显
* `需要将显示器接到核显。本程序接到独显,qsv解码会失败。在任务管理器中windows系统1909能看到核显解码引擎;1709以上能看到gpu利用`
* 下载IntelMedia-SDK[https://github.com/gitHubwhl562916378/IntelCudaVideoDecodDetect/releases/tag/v1.0](https://github.com/gitHubwhl562916378/IntelCudaVideoDecodDetect/releases/tag/v1.0)
* 安装好后,需要将C:\Program Files (x86)\IntelSWTools\Intel(R) Media SDK 2020 R1\Software Development Kit\include里面`再建一个mfx目录,把所有头文件放进去`
* Qt
* 低版本注意配置qopenglwidget,高版本不用配置
## 编译
* 使用QtCreator打开,选择64bit。我用的是vs-2017编译器
## 其它
### 提醒
>* tag1.0下面有编译好的可运行包
>* 在其他使用ffmpeg4.3项目测试多路cuda解码会在av_send_packet崩溃,此项目还未测试
### 更新
#### 2020/8/1
>* 实现qsv、cuda、cpu解码
>* 实现opengl离屏渲染,视频播放
#### 2020/8/2
>* 使用glTextureSubImage2D优化渲染性能
#### 2020/8/3
>* 完成从cuda直接将nv12渲染到opnegl
>* 实现nvidia官方解码插件式加载,并运行成功
#### 2020/8/4
>* 将插件整合到工程,另一个渲染插件也整合到工程
>* 解决图像不能随窗口缩放问题
#### 2020/8/6
>* 解决视频重播放,或者一个视频窗口多次播放,在第二次之后的播放,视频y分量无法正常渲染的问题
>* 解决播放视频结束后opengl资源与cuda资源释放问题
没有合适的资源?快使用搜索试试~ 我知道了~
一个多路视频播放器,集合了qsv,cuda,cuda_plugin,cpu解码.zip
共89个文件
h:39个
cpp:24个
dll:7个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 98 浏览量
2024-01-02
15:15:17
上传
评论
收藏 1.22MB ZIP 举报
温馨提示
一个多路视频播放器,集合了qsv,cuda,cuda_plugin,cpu解码; 采用多线程渲染,cuda与opengl数据传递
资源推荐
资源详情
资源评论
收起资源包目录
一个多路视频播放器,集合了qsv,cuda,cuda_plugin,cpu解码; 采用多线程渲染,cuda与opengl数据传递.zip (89个子文件)
MulVideoDisplayer-master
windowtitlebar.h 372B
mainwindow.h 675B
Dao
cloudhttpdao.cpp 3KB
videoencode.cpp 5KB
dao.pri 157B
videoencode.h 1KB
core
httpexector.cpp 3KB
basenetexector.h 931B
tcpsocketexector.h 568B
tcpsocketexector.cpp 2KB
core.pri 170B
httpexector.h 844B
cloudhttpdao.h 529B
widgetinterface.h 2KB
player.h 471B
urls.txt 235B
mainwindow.cpp 3KB
config.ini 168B
3rd
curl
include
stdcheaders.h 1KB
typecheck-gcc.h 41KB
system.h 17KB
easy.h 3KB
multi.h 16KB
curl.h 99KB
mprintf.h 2KB
curlver.h 3KB
lib
android
armeabi-v7a
libcurl.so 173KB
armeabi
libcurl.so 181KB
x86
libcurl.so 281KB
windows
win64
libcurl-d_imp.lib 17KB
pkgconfig
libcurl.pc 2KB
win32
libcurl-d_imp.lib 17KB
pkgconfig
libcurl.pc 2KB
bin
win64
curl-config 5KB
curl-d.exe 273KB
libcurl-d.dll 742KB
win32
curl-config 5KB
curl-d.exe 223KB
libcurl-d.dll 578KB
main.cpp 917B
waitinglabel.cpp 1KB
windowtitlebar.cpp 937B
player.cpp 1KB
MulVideoDisplayer.pro 2KB
VideoWidget
videodecode
ffmpegqsvdecode.cpp 8KB
ffmpegcpudecode.h 746B
ffmpegcudadecode.cpp 9KB
nvidia_decoer_api.h 843B
ffmpegqsvdecode.h 832B
decodtask.h 630B
decodetaskmanagerimpl.h 943B
nvidiadecode.h 622B
nvidiadecode.cpp 2KB
decodtask.cpp 144B
ffmpegcpudecode.cpp 7KB
ffmpegcudadecode.h 801B
decodetaskmanagerimpl.cpp 4KB
render
factory.h 2KB
nv12render_gpu.cpp 11KB
videorender.h 1KB
yuvrender.h 781B
nv12render.cpp 6KB
nv12render_gpu.h 2KB
yuvrender.cpp 7KB
nv12render.h 786B
videowidget.cpp 4KB
renderthread.h 2KB
videowidget.pri 881B
videowidget.h 1KB
renderthread.cpp 4KB
realplaymanager.cpp 6KB
Service
restserviceconcurrent.h 490B
videoencodebyffmpeg.h 461B
videoencodebyffmpeg.cpp 12KB
restserviceconcurrent.cpp 1KB
servicefacetory.h 957B
servicei.h 2KB
service.pri 220B
m_plugins
debug
Nv12Render_Gpu.dll 64KB
NvidiaDecoderPlugin.dll 288KB
release
Nv12Render_Gpu.dll 26KB
NvidiaDecoderPlugin.dll 70KB
Nv2RGBRender_Gpu.dll 231KB
waitinglabel.h 460B
realplaymanager.h 1KB
errorlabel.h 304B
README.md 2KB
common_data.h 156B
errorlabel.cpp 1KB
共 89 条
- 1
资源评论
马coder
- 粉丝: 1203
- 资源: 6602
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功