Android平台GB28181设备接入模块分辨率发生变化怎么办?

技术背景

我们在做Android平台gb28181设备接入模块的时候,遇到这样的情况,比如横竖屏分辨率不锁定,采集摄像头的时候,可以实现,横屏状态采集横屏,竖屏状态采集竖屏,简单来说,横屏状态比如采集的1280*720的,竖屏状态,采集的数据源成了720*1280。

这块对我们来说,已经轻车熟路了,老早就已经处理,分辨率发生变化的时候,会重启encoder,确保正常兼容,不幸的是,好多gb28181平台侧,对分辨率切换,支持的并不友好,分辨率发生变化的时候,有些国标平台播放上来的视频流的时候,会直接crash。

分辨率变化,其实多数国标平台厂商都可以兼容,或者说应该兼容,如果国标平台侧不兼容的话,我们可以在android平台gb28181设备接入侧做一定的处理。

技术实现

以Android的camera2为例,我们做了“锁定图像方向”选项:

对应的代码实现如下:

    class ButtonCameraImageOrientationLockListener implements View.OnClickListener {public void onClick(View v) {is_need_lock_image_orientation_ = !is_need_lock_image_orientation_;if (cur_image_orientation_ >= 0)cur_image_orientation_ = orientation_;if(camera2Helper != null)cameraImageRotationDegree_ = camera2Helper.getCameraImageRotationDegree(cur_image_orientation_ < 0 ?orientation_ : cur_image_orientation_);btnCameraImageOrientationLock.setText(is_need_lock_image_orientation_?"解锁图像方向" : "锁定图像方向");}}

 其中,getCameraImageRotationDegree实现如下:

    public int getCameraImageRotationDegree(int device_degree) {if (device_degree < 0)return -1;String camera_id = getCameraId();int degree;if (CAMERA_ID_BACK.equals(camera_id)) {degree = (mSensorOrientation + device_degree + 360) % 360;Log.i(TAG, "getCameraImageRotationDegree BACK device_degree:" + device_degree+ " SENSOR_ORIENTATION:" + mSensorOrientation + " degree:" + degree);}else {degree = (mSensorOrientation - device_degree + 360) % 360;Log.i(TAG, "getCameraImageRotationDegree FRONT device_degree:" + device_degree+ " SENSOR_ORIENTATION:" + mSensorOrientation + " degree:" + degree);}return degree;}

针对摄像头rotation变化监测listener:

 /** Github: https://github.com/daniulive/SmarterStreaming   */class OnOriChangedListener implements OrientationDetector.OriginListener {@Overridepublic void onOrientationChanged(int orientation, int rotation) {orientation_ = orientation;if (!is_need_lock_image_orientation_ || cur_image_orientation_ < 0)cur_image_orientation_ = orientation_;Log.i(TAG, "onOrientationChanged:" + orientation + " rotation:" + rotation + " rotation.toString:" + Camera2Helper.getRotationString(rotation));if(camera2Helper != null) {camera2Helper.updateOrientation(orientation);cameraImageRotationDegree_ = camera2Helper.getCameraImageRotationDegree(cur_image_orientation_ < 0 ?orientation_ : cur_image_orientation_);}if (layer_post_thread_ != null ) {int rotation_degree = cameraImageRotationDegree_;if (rotation_degree < 0)layer_post_thread_.updateVideoSize(0, 0);else if (90 == rotation_degree || 270 == rotation_degree)layer_post_thread_.updateVideoSize(video_height_, video_width_);elselayer_post_thread_.updateVideoSize(video_width_, video_height_);}}}

总结

值得一提的是,如果视频分辨率发生变化,本地录像的话,一般来说会切换新的录像文件,国标平台侧如果做的比较好的话,一般都会兼容这种分辨率变化的场景,起码确保分辨率切换的时候,不至于直接crash。

实际上,比如一些执法记录仪等场景下,只需要一个固定的采集方向即可,这种情况下,锁定方向,反而是最好的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552925.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何查看Win11系统的版本号

北京时间6月24日的晚上&#xff0c;微软正式的发布了全新一代的操作系统——Windows11&#xff0c;很多朋友都想第一时间去尝尝鲜&#xff0c;Win11系统有很多版本号&#xff0c;为了深入了解自己系统&#xff0c;于是想要查看一下系统版本&#xff0c;这要怎么查看呢?接下来小…

Win11无法使用以太网怎么办 Win11无法连接网络怎么办

最近有不少Windows用户都将自己的电脑升级到了Windows11系统&#xff0c;但是不少用户在使用的时候也遇到了一些问题&#xff0c;例如有些用户升级后发现自己的以太网无法使用&#xff0c;这要怎么解决呢?下面小编就带着大家一起看看吧! 操作方法&#xff1a; 1、我们可以看…

Win11系统如何设置黑暗模式

微软已经正式的发布了Windows11操作系统&#xff0c;Win11采用的是全新的界面&#xff0c;开始菜单和图标的设计&#xff0c;现在&#xff0c;暗黑模式开始逐渐流行了&#xff0c;很多朋友对黑暗主题情有独钟&#xff0c;黑色的主题特别适合晚上使用电脑&#xff0c;Win11操作系…

RTSP、RTMP播放器拉到的视频图像角度不对怎么办?

我们在做RTSP、RTMP播放器的时候&#xff0c;遇到这样的诉求&#xff1a;特别是RTSP&#xff0c;有些摄像头安装可能倒置或者旋转了90亦或270&#xff0c;拉取到图像&#xff0c;势必需要对视频图像做一定的处理&#xff0c;确保显示正常。 为此&#xff0c;我们提供了以下接口…

Android平台GB28181设备接入端如何调节实时音量?

我们在对接Android平台GB28181设备接入端的时候&#xff0c;有开发者提出这样的疑惑&#xff0c;如何调整设备接入端的实时音量&#xff1f; 实际上&#xff0c;这块我们前几年在做RTMP直播推送模块的时候&#xff0c;已经发布了相关的接口&#xff0c;这里再回顾下&#xff1…

Win10系统如何查看声卡ID

在Win10系统的日常使用过程中&#xff0c;我们可能经常需要去查看电脑的声卡ID&#xff0c;但很多小伙伴都不知道要如何查看声卡ID&#xff0c;那么碰到这种情况时&#xff0c;Win10系统如何查看声卡ID呢?下面就和小编一起来看看Win10系统查看声卡ID的方法吧。 Win10系统如何查…

Win10系统如何退出桌面磁贴功能

桌面磁贴是Modern开始界面下的那些方格&#xff0c;但是很多小伙都用不太习惯却不知道如何去关闭这个功能&#xff0c;那么Win10系统如何退出桌面磁贴功能呢?就此问题&#xff0c;下面小编整理了Win10系统退出桌面磁贴功能的解决方法&#xff0c;一来看看解决办法吧。 Win10系…

【技术分享】如何实现功能完备性能优异的RTMP、RTSP播放器?

技术背景 这几年&#xff0c;我们对接了太多有RTSP或RTMP直播播放器诉求的开发者&#xff0c;他们当中除了寻求完整的解决方案的&#xff0c;还有些是技术探讨&#xff0c;希望能借鉴我们播放端的开发思路或功能特性&#xff0c;完善自己的产品。 忙里偷闲&#xff0c;今天我…

我正在参加2022年度博客之星评选,大家帮我点个五星好评

大家好&#xff0c;我是音视频牛哥&#xff0c;致力于跨平台的实时RTMP推流、转发、RTMP/RTSP直播播放、GB28181设备接入。 有幸参加2022年度博客之星评选&#xff0c;欢迎大家帮点五星好评。如果我的博客能给开发者带来哪怕一丝启发&#xff0c;对博主来说&#xff0c;也甚感…

Win10系统切换输入法快捷键设置方法

无论是家用电脑还是办公电脑&#xff0c;一般都没有单一的输入法。有些人每次使用时都必须使用鼠标单击&#xff0c;其实真的很麻烦。Windows10系统切换输入法与以往的都不同&#xff0c;Win10系统如何修改切换输入法按键?就此问题&#xff0c;小编今天就把Win10切换输入法快捷…

rtmp/rtsp/hls公网真正可用的测试地址

相信大家在调试播放器的时候&#xff0c;都有这样的困惑&#xff0c;很难找到合适的公有测试源&#xff0c;以下是大牛直播SDK&#xff08;GitHub地址&#xff09;整理的真正可用的直播地址源。 其中&#xff0c;rtmp和rtsp的url&#xff0c;用我们播放器验证通过。 1. rtmp:…

Firefox火狐浏览器怎么设置中文 火狐浏览器语言设置方法

如果下载的是官方版的火狐浏览器&#xff0c;默认的预言可能会是英文版的&#xff0c;如何将火狐浏览器设置中文的呢? 1、打开浏览器&#xff0c;在地址栏中输入about:config&#xff0c;然后按下回车。 2、在列表中找到“general.useragent.locale”&#xff0c;双击&#…

公网可用的RTMP、RTSP测试地址(更新于2021年3月)

好多博客提到的公网可测试的RTSP和RTMP URL大多都不用了&#xff0c;以下是大牛直播SDK(Github)于2021年3月亲测可用的几个URL&#xff0c;有其他可用的URL&#xff0c;也欢迎大家在评论区回复。 RTMP流地址 湖南卫视&#xff1a;rtmp://58.200.131.2:1935/livetv/hunantv (7…

Unity环境下RTMP推流+RTMP播放低延迟解决方案

在本文之前&#xff0c;我们发布了Unity环境下的RTMP推流&#xff08;Windows平台Android平台&#xff09;和RTMP|RTSP拉流&#xff08;Windows平台Android平台iOS平台&#xff09;低延迟的解决方案&#xff0c;今天做个整体汇总&#xff0c;权当抛砖引玉。 1. Unity环境下RTM…

mac怎么设置默认浏览器 mac默认浏览器设置方法

现在很多人都开始使用mac电脑&#xff0c;而有些人不大喜欢Safari浏览器&#xff0c;或许也有别的原因导致用户想要将Mac OS X系统下的默认浏览器换成其他更符合自己口味的浏览&#xff0c;如果你你不会换&#xff0c;那就由小编为你解答mac怎么设置默认浏览器。 mac默认浏览器…

麒麟操作系统|Linux下低延时RTMP|RTSP直播播放实现

背景 国产操作系统多为以Linux为基础二次开发的操作系统。2014年4月8日起&#xff0c;美国微软公司停止了对Windows XP SP3操作系统提供服务支持&#xff0c;这引起了社会和广大用户的广泛关注和对信息安全的担忧。而2020年对Windows7服务支持的终止再一次推动了国产系统的发展…

基于RTMP实现Linux|麒麟操作系统下屏幕|系统声音采集推送

背景 Windows操作系统自问世以来&#xff0c;以其简单易用的图形化界面操作受到大众追捧&#xff0c;为计算机的普及、科技的发展做出了不可磨灭的功绩&#xff0c;也慢慢的成为人们最依赖的操作系统。在中国&#xff0c;90&#xff05;以上的办公环境都是Windows&#xff0c;…

Windows11关机键在哪 Win11系统关机键的位置

很多用户更新了Win11系统之后就发现Win11系统有很多功能的位置都不一样了&#xff0c;导致用户们找不到自己想要的功能。就像是关机功能&#xff0c;很多用户更新了系统之后发现自己找不到关机键了&#xff0c;下面让小编教教大家吧&#xff0c;希望能帮助您。 Windows11关机键…

如何快速实现Android平台前端设备接入能力

技术背景 SIP(会话初始化协议)是在 IP网络上进行多媒体通信的应用层控制协议&#xff0c;以几种RFC的形式提供&#xff0c;其中最重要的是包含核心协议规范的RFC3261。该协议用于创建&#xff0c;修改和终止与一个或多个参与者的会话。通过会话&#xff0c;我们了解了一组进行…

如何解决Win11系统显示你的账户已被停用

现在Win11系统是现在非常火热的电脑操作系统&#xff0c;很多用户都想去升级体验&#xff0c;最近有使用Win11系统用户在咨询这样一个情况&#xff0c;就是电脑突然提示“你的账户已被停用&#xff0c;请向系统管理员咨询”&#xff0c;遇到这样的问题该如何解决呢?下面小编就…