播放器相关技术:

1、开源项目 jjdxm_ijkplayer是基于 ijkplayer简单的UI界面;
ijkplayer是一个基于 FFmpeg n2.6 的开源 Android/iOS 视频播放器;
2、虚拟按键的隐藏方法:
   
rootView = getLayoutInflater().from(this).inflate(R.layout.activity_calrity, null);
setContentView(rootView);
/**虚拟按键的隐藏方法*/
rootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
//比较Activity根布局与当前布局的大小
int heightDiff = rootView.getRootView().getHeight() - rootView.getHeight();
if (heightDiff > 100) {
//大小超过100时,一般为显示虚拟键盘事件
rootView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
} else {
//大小小于100时,为不显示虚拟键盘或虚拟键盘隐藏
rootView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
}
}
});

3、设置屏幕常亮:
   
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock akeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "liveTAG");
wakeLock.acquire();//激活设备常亮状态
wakeLock.release();//恢复设备亮度状态

直播的相关技术

1、直播概念:
①由手机一端作为视频 采集端,采集视频信息,通过网络实时传递到服务器,再由服务器推送到视频播放端的过程
流媒体:采用流式传输的方式在Internet播放的媒体格式;
这种播放形式不同于以往的播放形式,采集端以数据包的形式发送到服务器,服务器将数据包 推送给播放端;
这样播放端不需要获取到完整的视频文件,就可以实现对采集端数据的播放任务。
③直播中采用的文件传输方式就是 流媒体文件传输方式
2、 视频编码的基本原理:
①视频图像数据有极强的相关性也就是说有大量的 冗余信息,压缩技术就是将数据中的冗余信息去掉(去除数据之间的相关性)
②压缩技术包含 帧内图像数据压缩技术帧间图像数据压缩技术熵编码压缩技术
③视频压缩中的每一帧画面都有相似的地方,在压缩时只保留与前一帧不同的地方即将信号中部分感觉不出的分量压缩掉或“掩蔽掉”即 祛除冗余压缩.
3、 硬编码和软编码
①硬编码:通过调用Android系统自带的Camera录制视频,实际上是调用了底层的高清编码 硬件模块也即显卡不使用CPU;速度快
②软编码:使用CPU进行编码如常见C/C++代码,一般编译生成的 都是 二进制数据,速度相对较慢。例如使用Android NDK编译H264生成so库,编写jni接口,再使用java调用so库。
③视频文件一般涉及到三个参数: 帧率分辨率码率
#帧率: 每秒显示的图片数。影响画面流畅度,与画面流畅度成正比:帧率越大,画面越流畅;帧率越小,画面越有跳动感。由于人类眼睛的特殊生理结构,如果所看画面之帧率高于16的时候,就会认为是连贯的,此现象称之为视觉暂留。并且当帧速达到一定数值后,再增长的话,人眼也不容易察觉到有明显的流畅度提升了。
#分辨率: (矩形)图片的长度和宽度,即图片的尺寸;
#码率: 把每秒显示的图片进行压缩后的数据量。影响体积,与体积成正比:码率越大,体积越大;码率越小,体积越小。 
体积=码率×时间
帧率 × 分辨率=压缩前的每秒数据量(单位应该是若干个字节)
压缩比=压缩前的每秒数据量/码率(对于同一个视频源并采用同一种视频编码算法,则:压缩比越高,画面质量越差。)
4、所谓“清晰”,是指画面十分细腻,没有马赛克。并不是分辨率越高图像就越清晰。
简单说:在码率一定的情况下,分辨率与清晰度成反比关系:分辨率越高,图像越不清晰,分辨率越低,图像越清晰。
在分辨率一定的情况下,码率与清晰度成正比关系,码率越高,图像越清晰;码率越低,图像越不清晰。

5、CDN内容分发网络

CDN的全称是Content Delivery Network,即内容分发网络:
①其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。
②通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。
③其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度

6、RTMP实时消息传输协议

RTMP是Real Time Messaging Protocol,即实时消息传输协议
①该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。
②RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。支
③持该协议的软件包括Adobe Media Server/Ultrant Media Server/red5等
④在RTMP协议中 信令媒体数据都称之为 Message,在网络中传输这些Message,为了区分它们肯定是要加一个Message head;所以RTMP协议也有一个Message head;
⑤还有一个问题因为 RTMP协议是基于TCP的,由于TCP的包长度是有限制的(一般来说不超过1500个字节)而RTMP的Message长度是有可能很大的,像一个视频帧的包可能会有几十甚至几千K,这个问题就必然有一个分片的问题,在RTMP协议中对应的说法就是 chunk每一个Message + head都是由一个和多个chunk组成的

7、RTC实时通讯

RTC实时通讯 即 Real-time communications

直播技术学习笔记(一)相关推荐

  1. iOS直播技术学习笔记 直播总体概览(一)

    ####概述 直播的现状 2016年,是一个直播年.直播行业快速发展,同时也滋生了大大小小上千家相关的公司. 中国互联网络信息中心发布的报告显示,截至今年6月,我国网络直播用户规模达到3.25亿,占网 ...

  2. 直播技术学习笔记(直播协议+流媒体服务器+音视频处理+FFmpeg)

    直播协议 RTMP(Real Time Messaging Protocol) 简介 Time Messaging Protocol,实时消息传送协议 RTMP是Adobe公司为Flash播放器和服务 ...

  3. iOS直播技术学习笔记 美颜滤镜效果(三)

    GPUImage的介绍 GPUImage 是一个开源的基于GPU的图片或视频的处理框架,其本身内置了多达120多种常见的滤镜效果 GPUImage是利用GPU,使在图片和视频上应用不同的效果和滤镜变得 ...

  4. 图解密码技术学习笔记

    主题:图解密码技术 简介:密码技术入门学习 参考:译者分享 作者:ybb 时间:2021年12月15日 周自恒直播课学习笔记 4.分组密码的模式 4.1 DES和AES作为对称加密时使用的分组密码只能 ...

  5. SpringBoot整合第三方技术学习笔记(自用)

    SpringBoot整合第三方技术学习笔记 搬运黑马视频配套笔记 KF-4.数据层解决方案 KF-4-1.SQL 回忆一下之前做SSMP整合的时候数据层解决方案涉及到了哪些技术?MySQL数据库与My ...

  6. java mvc框架代码_JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码)

    原标题:JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码) JavaEE体系结构包括四层,从上到下分别是应用层.Web层.业务层.持久层.Struts和SpringMVC是Web层的 ...

  7. 小五思科技术学习笔记之SSH

    下面介绍一下相关概念: SSH的概念: SSH的英文全称为Secure Shell,SSH使用TCP的22号端口,其目的是要在非安全的网络上提供安全的远程登陆和其他安全的网络服务, 为什么要使用SSH ...

  8. ssm 转发请求_千呼万唤!阿里内部终于把这份SSM框架技术学习笔记分享出来了...

    SSM SSM(Spring+SpringMVC+MyBatis)框架集由Spring.MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容).常作为数据源较简单的web项 ...

  9. 知识图谱技术学习笔记

    知识图谱技术学习笔记 从一开始的Google搜索,到现在的聊天机器人.大数据风控.证券投资.智能医疗.自适应教育.推荐系统,无一不跟知识图谱相关.它在技术领域的热度也在逐年上升. 本文以通俗易懂的方式 ...

最新文章

  1. 深蓝学院的深度学习理论与实践课程:第四章
  2. 【leetcode238】Product of Array Except Self
  3. sql_INSERT DELETE
  4. qemu模拟执行固件文件(解决 Invalid ELF image for this architecture 问题)
  5. JRE与JDK,SDK的区别
  6. 【Linux系统编程】线程的基本操作
  7. 12面魔方公式图解法_一位建筑工程师:多年渴望就是学会魔方还原,只按这七步就可以!...
  8. 【1】推荐系统评测指标
  9. 全球卡巴斯基升级服务器列表
  10. 一、思科模拟器教程了解软件
  11. SQL中 decode()函数的应用和一些特殊的传值方法
  12. 把“SC”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩
  13. 通用ESP8266连接阿里云物联网平台
  14. html给页面添加艺术型边框,如何为2016word的页面设置艺术型页面边框
  15. 扩展:收藏网上胖友的面试题
  16. 阿里云IoT平台APP配网入口
  17. MacBook m1 芯片快速下载 ndk 和环境配置,防止脱发
  18. java开发平台有哪些_java都有哪些开发平台
  19. 2021年危险化学品经营单位安全管理人员考试资料及危险化学品经营单位安全管理人员新版试题
  20. 【案例】使用CSS3实现天空变化效果

热门文章

  1. 失业潮中不得不看CSS知识点(巨详细)
  2. 快速掌握电阻串并联电路及重要特性
  3. sslocal 报错undefined symbol: EVP_CIPHER_CTX_cleanup
  4. 如何进行MOCK测试
  5. oracle非聚簇索引,聚簇索引(Clustered Index)和非聚簇索引 (Non- Clustered Index)
  6. opencv 简单的图片相似度匹配
  7. 【ELK】metricbeat 扩展module
  8. 小学生机器人 图形化编程语言
  9. 关于集成学习的总结(一) 投票法
  10. js获取任意区间内的随机数