Android编写一个视频监控App

news/2024/10/18 8:32:22/

Android编写一个视频监控App

很久没写app了,小项目需要写一个rtmp拉流的视频监控app,简单记录一下。

参考:Android实现rtmp推拉流摄像头(三)_空空7的博客-CSDN博客_android rtmp拉流

相关库

引用外部库首先添加这个到build.gradle:

maven { url 'https://jitpack.io' }

RTMP拉流用的是这个:

    implementation 'com.github.pedroSG94.rtmp-rtsp-stream-client-java:rtplibrary:2.1.9'

播放器用这个:

    implementation 'com.github.NodeMedia:NodeMediaClient-Android:2.9.7'

布局

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fYPhDug3-1669907890455)(C:\Users\ACER\AppData\Roaming\Typora\typora-user-images\image-20221201211919695.png)]

按键可以换成遥杆,摇杆可以用这个大佬写的:Android自定义摇杆_Android-kongqw的博客-CSDN博客_android 摇杆

需要build.gradle中添加:

implementation 'com.github.kongqw:AndroidRocker:1.0.1'

关键代码

参考大佬的博客:Android实现rtmp推拉流摄像头(三)_空空7的博客-CSDN博客_android rtmp拉流

调试相关

测试直播视频流,可以使用VLC播放器配合验证:

http://zhibo.hkstv.tv/livestream/mutfysrq/playlist.m3u8

完整代码在git仓库:https://gitee.com/nameisboy/rpi_video.git


http://www.ppmy.cn/news/750.html

相关文章

antDesign设置树和机构的组合

<template><drag-modaltitle"流程发送":visible"visibleP"class"swy"width"60%":confirm-loading"confirmLoading"ok"handleOk"cancel"handleCancel"okText"发送"><div class…

Redis缓存问题

目录 1、缓存穿透 2、缓存击穿 3、缓存雪崩 ​​​​​​​4、Redis的并发竞争key问题 ​​​​​​​1、缓存穿透 大量请求缓存中和数据库不存在的数据。 大量用户请求缓存中和数据库中不存在的数据&#xff0c;导致所有请求都落到数据库上&#xff0c;造成数据库短时间内承…

Ambari-yarn-timeline 内置 HBase数据表清理

HDP 集群 timeline 内置的 HBase 数据表持续增大&#xff0c;我们将默认TTL30改 为7 天。 ambari界面YARN 服务中 的 timeline v2.0 timeline 内置 HBase数据HDFS路径 &#xff1a; 表在HDFS上的大小 使用如下命令进入 Hbase shell [hdfswinner-backup-hdp root]$ hbase -…

【C++】vector的认识+模拟实现

目录1️⃣vector的概念2️⃣STL中vector的使用2.1 vector的定义2.2 iterator的使用2.3 vector的空间问题2.4 vector的增删查改2.5 迭代器失效问题2.5.1 什么是迭代器&#xff1f;2.5.2 迭代器失效3️⃣vector的模拟实现3.1 迭代器3.2 构造函数&#x1f50e;memcpy的拷贝异常问题…

论文笔记 A Comprehensive Survey on Graph Neural Networks(GNN综述)

前言 近年来&#xff0c;深度学习促进了很多机器学习任务的发展&#xff0c;这些任务很多都表示在规则的欧几里得空间中表示。但是图作为具有复杂关系和对象之间相互依赖&#xff0c;其数据是从非欧几里得域生成的&#xff0c;最近也有很多关于图数据深度学习方法的研究。 在…

6.终于了解volatile的原理和使用方法了

1.volatile能保证可见性 先说个案例&#xff1a; 有两个线程A和B&#xff0c;有一个公共的 boolean flag 标记位&#xff0c;最开始赋值为 true&#xff1b;B线程循环&#xff0c;根据这个flag来进行执行或者退出&#xff1b;这时线程A把flag改成false这个时候希望线程B看到变…

Android Profiler入门与实践

1、内存分析 点击MEMORY&#xff0c;可以看到正在运行进程的各种内存使用情况 Tips&#xff1a;点击右上角的垃圾桶图标会触发强制gc 1.1、查看Java堆内存和Java实例 执行以下代码&#xff1a; 说明&#xff1a;list为MainActivity的全局变量&#xff0c;所以list的只有在M…

Oracle面试题整理

目录 Oracle面试题整理 1.MySQL和Oracle的区别&#xff1a; 2.Oracle中function和procedure的区别&#xff1f; 3. 比较truncate和delete命令 &#xff1f; 4.oralce中 rowid, rownum的定义 5. 事务的特性&#xff08;ACID&#xff09;是指什么 6. 列举几种表连接方式…