RTSP播放器网页web无插件直播流媒体音视频播放器EasyPlayer-RTSP-Android解码获取视频帧的方法

应用场景

EasyPlayer-RTSP在多年与VLC的对标过程中,积累了广泛的应用场景,EasyPlayer-RTSP底层与上层全部自主开发,自主知识产权,可实战测试。

EasyPlayer-RTSP播放器

EasyPlayer-RTSP播放器是一套RTSP专用的播放器,包括有:Windows(支持IE插件,npapi插件)、Android、iOS三个平台,是由青犀TSINGSEE开放平台开发和维护的区别于市面上大部分的通用播放器,EasyPlayer-RTSP系列从2014年初发展至今得到了各行各业(尤其是安防行业)的广泛应用,其主要原因是EasyPlayer-RTSP更加精炼、更加专注,具备非常低的延时,非常高RTSP协议兼容性,编码数据解析等方面,都有非常大的优势。

EasyPlayer-RTSP-Android解码获取视频帧

提出问题

EasyPlayer-RTSP-Android如何获取解码后的视频帧?

分析问题

有的客户需要拿到解码后的视频帧,用来实现人脸识别。

解决问题

视频播放的实现在PlayFragment.java中,其中有一个子类YUVExportFragment.java,实现了接口EasyPlayerClient.I420DataCallback,在onI420Data方法中可以拿到解码后的视频帧:

深入阅读代码,会发现在EasyPlayerClient.java中,硬解码和软解码的方式,都将解码后的视频帧传入onI420Data了:

ByteBuffer buf = mDecoder.decodeFrameYUV(frameInfo, size);
if (i420callback != null && buf != null)
    i420callback.onI420Data(buf);
if (buf != null)
    mDecoder.releaseBuffer(buf);
ByteBuffer outputBuffer;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    outputBuffer = mCodec.getOutputBuffer(index);
} else {
    outputBuffer = mCodec.getOutputBuffers()[index];
}
if (i420callback != null && outputBuffer != null) {
    if (sliceHeight != realHeight) {
        ByteBuffer tmp = ByteBuffer.allocateDirect(realWidth*realHeight*3/2);
        outputBuffer.clear();
        outputBuffer.limit(realWidth*realHeight);
        tmp.put(outputBuffer);

        outputBuffer.clear();
        outputBuffer.position(realWidth * sliceHeight);
        outputBuffer.limit((realWidth * sliceHeight + realWidth*realHeight /4));
        tmp.put(outputBuffer);

        outputBuffer.clear();
        outputBuffer.position(realWidth * sliceHeight + realWidth*realHeight/4);
        outputBuffer.limit((realWidth * sliceHeight + realWidth*realHeight/4 + realWidth*realHeight /4));
        tmp.put(outputBuffer);

        tmp.clear();
        outputBuffer = tmp;
    }

if (mColorFormat == COLOR_FormatYUV420SemiPlanar
        || mColorFormat == COLOR_FormatYUV420PackedSemiPlanar
        || mColorFormat == COLOR_TI_FormatYUV420PackedSemiPlanar) {
        JNIUtil.yuvConvert2(outputBuffer, realWidth, realHeight, 4);
}
i420callback.onI420Data(outputBuffer);
}

原文地址:https://www.cnblogs.com/TSINGSEE/p/11805931.html

时间: 2024-12-29 17:55:25

RTSP播放器网页web无插件直播流媒体音视频播放器EasyPlayer-RTSP-Android解码获取视频帧的方法的相关文章

RTSP播放器网页web无插件直播流媒体音视频播放器libEasyPlayer-RTSP库接口调用说明

EasyPlayer-RTSP播放器EasyPlayer-RTSP播放器是一套RTSP专用的播放器,包括有:Windows(支持IE插件,npapi插件).Android.iOS三个平台,是区别于市面上大部分的通用播放器,EasyPlayer-RTSP系列从2014年初发展至今得到了各行各业(尤其是安防行业)的广泛应用,其主要原因是EasyPlayer-RTSP更加精炼.更加专注,具备非常低的延时,非常高RTSP协议兼容性,编码数据解析等方面,都有非常大的优势. libEasyPlayer-RT

LiveNVR实现安防摄像头RTSP WEB无插件直播中ONVIF预制位接口的使用说明

ONVIF发现接入摄像机 通过ONVIF探测发现可以将摄像接入LiveNVR,并提供互联网无插件直播,具体介绍可以参考 https://www.liveqing.com/docs/products/LiveNVR.html ONVIF相关接口 ONVIF探测 云台控制 删除预制位 获取预制位列表 设置预制位 跳转到预制位 原文地址:https://www.cnblogs.com/kumukim/p/11535435.html

同一路摄像头视频流接入RTSP_Onvif网页无插件直播流媒体服务器EasyNVR与其他平台播放视频有差异的原因分析

背景分析 随着平安城市.智慧城市.雪亮工程.智能交通等各项建设的持续开展,安防逐渐得到普及,面对如此广阔的市场,对安防企业来说不仅仅是机遇更多的是挑战.为了解决这些问题,近年来,视频监控行业发展方向主要为:“高清化.网络化.智能化”.视频监控设备技术性极强,系统的创新升级同时也在引导市场需求的变化并创造了新的市场需求. 基于AI视频智能分析云终端 EasyNVR智能云终端是基于视频智能传输技术.视频AI分析技术.智能云组网技术.边缘计算技术.视频大数据技术.窄带通信技术.远程监测技术以及智能语音

RTSP安防网络摄像头/海康大华硬盘录像机网页无插件直播流媒体服务器EasyNVR之鉴权接口的调用配置说明

进入移动互联网时代以来,企业微信公众号已成为除官网以外非常重要的宣传渠道,当3.2亿直播用户与9亿微信用户的势能累加,在微信上开启直播已成为越来越多企业的必然选择. EasyNVR核心在于摄像机的音视频流的获取.转换.转码与高性能分发,同时同步完成对实时直播流的录像存储,在客户端(PC浏览器.Android.iOS.微信)进行录像文件的检索.回放和下载. EasyNVR鉴权配置说明 发现问题 在实际对接项目中,很多用户需要根据自身业务层的用户权限,来决定调用视频流具体资源,EasyNVR在设计时

海康、大华等网络摄像头RTSP_Onvif网页无插件直播流媒体服务器EasyNVR鉴权出现跨域问题的解决方法

背景分析 随着平安城市.智慧城市.雪亮工程.智能交通等各项建设的持续开展,安防逐渐得到普及,面对如此广阔的市场,对安防企业来说不仅仅是机遇更多的是挑战.现今大多数摄像头一直没能摆脱人工监控的传统监控方式,由此导致了大量视频数据堆积占用存储资源.实时性差.检索困难等问题,海量摄像头带来的海量视频数据检索工作需要耗费大量警力. 为了解决这些问题,近年来,视频监控行业发展方向主要为:“高清化.网络化.智能化”.视频监控设备技术性极强,系统的创新升级同时也在引导市场需求的变化并创造了新的市场需求. Ea

高稳定、低延时、高并发RTMP播放器流媒体音视频播放器EasyPlayer-RTMP-iOS器如何将核心代码打包成静态库

背景分析 RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写.该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种.RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信.支持该协议的软件包括Adobe Media Server/Ultrant Media Server/red5等. EasyPlayer-RTMP

LiveNVR高性能稳定RTSP、Onvif探测流媒体服务配置通道接入海康、大华等摄像机进行全终端无插件直播

LiveNVR Onvif/RTSP流媒体服务,支持RTSP稳定拉流接入,支持Onvif协议接入,支持RTMP/HLS/HTTP-FLV分发,将传统安防监控设备互联化,无插件直播等. 通道配置 点击通道配置进入通道配置页,可以选择需要配置的通道右上角的设置按钮 弹出配置页,并输入接入摄像机的IP地址.端口.RTSP地址.用户名.密码.按需直播等选项,支持Onvif控制的可以填入Onvif地址,配置完成后点击确定. 如果摄像机接入RTSP地址选项中可以配置账号和密码的尽量在这个url里面配置好账号

GB28181实现摄像头网页无插件直播、回放过程中设备状态分析

关于LiveGBS GB28181流媒体服务器的部署详见 https://www.liveqing.com/docs/download/LiveGBS.html.通过LiveGBS流媒体服务可以实现GB28181接入摄像头.硬盘录像机.其他支持GB28181的视频平台,实现网页无插件直播. 如下是GB28181注册成功后设备状态查询的信令分析: 1. 发送设备状态查询命令(服务>>设备) MESSAGE sip:[email protected] SIP/2.0 Via: SIP/2.0/UD

Pyqt 音视频播放器

在寻找如何使用Pyqt做一个播放器时首先找到的是openCV2 openCV2 貌似太强大了,各种关于图像处理的事情它都能完成,如 读取摄像头.图像识别.人脸识别.  图像灰度处理 . 播放视频等,强大的让你想不到! openCV2 播放视频也很简单: 1 #coding=utf-8 2 3 import cv2.cv as cv 4 filename = "cn.avi" 5 win_name = "video player" 6 capture = cv.Cap