视频解码
wangzai6378
喜欢游戏;但却没有做游戏
展开
-
基于live555多路rtsp视频解码
对开源live555进行封装,采用线程池解码,分为硬解码和软解码,可动太加载.#pragma onceextern "C"{#include "libavcodec/avcodec.h"#include "libavformat/avformat.h"#include "libswscale/swscale.h"}#include "liveMedia.hh"#incl...原创 2019-12-08 16:42:18 · 5130 阅读 · 1 评论 -
使用ffmpeg、nvdia解码rtsp视频流,cuda做NV12-RGBA转换
本章是在nvidia_video_sdk_6.0.1的基础之上做封装的,我研究了其中的NvDecodeGL工程;由于自己工作会遇到显示多路rtsp视频流及解码的情况,所以进行了研究。 网上有其它的介绍ffmpeg和nvdia结合解码视频的文章,这里我将其实现了,并将官方的代码进行了精简和封装,封装后使用方法相当简单,示例如下#include "NvDecode.h"#include...原创 2018-04-05 21:54:56 · 9214 阅读 · 8 评论 -
qt 采用opengl渲染nv12视频到QSG并采用qml做显示
前面采用了离屏渲染,多线程的方式实现了nv12视频的播放,这次采用在QSG中渲染的方式实现,也就是在渲染线程中。原理同样是将图像纹理到一个FBO中,然后通过qt的接口带到QSG中进行显示。 采用opengl渲染并用qml显示的接口类为QQuickFramebufferObject,渲染线程会在刷新画面的时候调用其createRenderer()方法用于创建渲染,这里我留了一个设置视频...原创 2018-05-01 13:42:22 · 2136 阅读 · 0 评论 -
qml实现离屏渲染视频(多线程渲染) ----二
上次说完了在VideoThreadRender类中实现几个重要类之间的关系及通信,搭建好了一个初始化可以运行并调用的流程环境;这篇主要介绍后半分的子线程及解码 VideoThreadRender类中会实例TextureNode、RenderThread这两个类;TextueNode主要是将RenderThead类渲染好的视频帧的纹理id送到渲染线程中去(主要通过setTexture函...原创 2018-04-26 23:06:11 · 2968 阅读 · 7 评论 -
ffmpeg opengl 硬解视频并使用opengl在qt中显示nv12
之前做过用ffmpeg解码视频然后在qt中用opengl来显示yuv数据,这次介绍一下ffmpeg硬解的方法。在网上找的资料大多数是ffmpeg软解的,而且解码后的格式都是yuv;我们知道nvidia显示视频解码后的格式是NV12的,那么怎么在代码中实现呢? 在后来看见别人使用ffplay工具播放视频的时候发现可以指明decoder来解码视频,于是通过在360搜索中找到了ffmpeg中查...原创 2018-06-03 16:22:51 · 9557 阅读 · 12 评论 -
基于ffmpeg与nvidia-video-sdk-8.1.24视频硬解与软解多路rtsp,支持Qt的QOpenglWidget与qml接口显示
为了解决工程上的一个问题,我研究了nvidia较新的video-sdk-8.1.24,看完之后觉得这个sdk比较符合现代的编程规范,于是摒弃了以前的video-sdk-6.0,解决了工程上的问题。 我提供的封装支持软解和硬解,其中重要部分为做了视频复制,同一个视频源只解码一路;内存的细节管理;视频渲染;视频镜像等。 接口申明如下#ifndef...原创 2018-08-25 13:48:20 · 3853 阅读 · 34 评论