草庐IT

基于opencv的RTSP(rtsp)流读取和保存(C++可cmake编译-附带py方法)

 因其工作需要使用C++读取rtsp流,本文将针对linux下c++版读取视频流保存视频,凌乱且各种错误。现将将其成功执行的流程和代码记录,顺带也写了一份python读取rtsp方法,供自己使用及有需之人参考。本文分三部分,第一部分呈现CMakeLists.txt与rtsp_video源码;第二部分插图给出使用方法;第三部分顺带给出python方法的源码。  一.CMakeLists.txt与rtsp_video源码CMakeLists.txtcmake_minimum_required(VERSION2.6)project(rtsp)find_package(OpenCVREQUIRED)i

基于FFmpeg+rtsp读取摄像头实时图像

项目介绍:前端时间做了一个项目用qt编写软件获取海康摄像头rtsp视频流,实现实时显示。当时采用的是VLC-Qt播放RTSP流这种方式(参考:https://blog.csdn.net/caoshangpa/article/details/53158571)。花了一段时间研究也做出来了,可是发现了一个无法解决的问题,即无法解决视频延迟的问题,差不多延迟1秒左右。后面果断放弃了,采用FFmpeg+rtsp这种方式。最终发现还是这种方式效果最好,解决了延迟问题,至少肉眼看不出。下面对此项目做个大致介绍,文章最后附上项目开发相关资料。提示:使用rtsp方式获取海康摄像头图像需要开启海康的onvif功

基于FFmpeg+rtsp读取摄像头实时图像

项目介绍:前端时间做了一个项目用qt编写软件获取海康摄像头rtsp视频流,实现实时显示。当时采用的是VLC-Qt播放RTSP流这种方式(参考:https://blog.csdn.net/caoshangpa/article/details/53158571)。花了一段时间研究也做出来了,可是发现了一个无法解决的问题,即无法解决视频延迟的问题,差不多延迟1秒左右。后面果断放弃了,采用FFmpeg+rtsp这种方式。最终发现还是这种方式效果最好,解决了延迟问题,至少肉眼看不出。下面对此项目做个大致介绍,文章最后附上项目开发相关资料。提示:使用rtsp方式获取海康摄像头图像需要开启海康的onvif功

WPF 视频硬解码渲染播放(无空域问题)(支持4K、8K、高帧率、各类协议RTSP、RTMP、FLV等)

MediaWPF(DirectX、OpenGL、Skia)视频播放控件并支持rtsp、rtmp等各类网络协议视频流支持多种渲染模式并不存在空域(airspace)问题实现原理:LibVLCSharp解码获取视频(8bit、10bit)帧数据在DirectX、OpenGL模式中程序根据视频色彩空间自动选择8bit或10bit处理。8bit:I420支持DirectX、OpenGL、Skia10bit:I0AL支持DirectX、OpenGLSkia没有使用硬件加速,所以在效率上低于前两个图形库接口。4K60帧设备:NVIDIAGeForceRTX3050LaptopGPUOpenGL:Direc

WPF 视频硬解码渲染播放(无空域问题)(支持4K、8K、高帧率、各类协议RTSP、RTMP、FLV等)

MediaWPF(DirectX、OpenGL、Skia)视频播放控件并支持rtsp、rtmp等各类网络协议视频流支持多种渲染模式并不存在空域(airspace)问题实现原理:LibVLCSharp解码获取视频(8bit、10bit)帧数据在DirectX、OpenGL模式中程序根据视频色彩空间自动选择8bit或10bit处理。8bit:I420支持DirectX、OpenGL、Skia10bit:I0AL支持DirectX、OpenGLSkia没有使用硬件加速,所以在效率上低于前两个图形库接口。4K60帧设备:NVIDIAGeForceRTX3050LaptopGPUOpenGL:Direc

如何实现RTMP或RTSP播放端回调YUV/RGB数据?

今天某乎收到个问题推荐,如何实现RTSP回调YUV数据,用于二次处理?正好前些年我们做RTSP和RTMP直播播放的时候,实现过相关的需求,本文就以Android为例,大概说说具体实现吧。先说回调yuv或rgb这块意义吧,不管是RTSP还是RTMP直播播放模块,解码后的yuv/rgb数据,可以实现比如快照(编码保存png或jpeg)、回调给第三方用于比如视频分析、亦或比如回调给Unity,实现Unity平台下的绘制。为了图文并茂,让大家有个基本的认识,先上张图,demo展示的是本地播放的同时,可把yuv或rgb回上来,供上层做二次处理:我们把协议栈这块处理,放到JNI下,播放之前,设置回调:li

如何实现RTMP或RTSP播放端回调YUV/RGB数据?

今天某乎收到个问题推荐,如何实现RTSP回调YUV数据,用于二次处理?正好前些年我们做RTSP和RTMP直播播放的时候,实现过相关的需求,本文就以Android为例,大概说说具体实现吧。先说回调yuv或rgb这块意义吧,不管是RTSP还是RTMP直播播放模块,解码后的yuv/rgb数据,可以实现比如快照(编码保存png或jpeg)、回调给第三方用于比如视频分析、亦或比如回调给Unity,实现Unity平台下的绘制。为了图文并茂,让大家有个基本的认识,先上张图,demo展示的是本地播放的同时,可把yuv或rgb回上来,供上层做二次处理:我们把协议栈这块处理,放到JNI下,播放之前,设置回调:li

庖丁解牛之Android平台RTSP|RTMP播放器设计

​背景我们在做Android平台RTSP或者RTMP播放器开发的时候,需要注意的点非常多,以下,以大牛直播SDK(​​官方​​)的接口为例,大概介绍下相关接口设计:接口设计1.Open()接口Open接口的目的,主要是创建实例,正常返回player实例句柄,如有多路播放诉求,创建多个实例即可。/***InitializePlayer(启动播放实例)**@paramctx:getbythis.getApplicationContext()**Thisfunctionmustbecalledfirstly.**@returnplayerhandleifsuccessful,ifreturn0,wh