视频RTMP推流实践

对应RTMP推流,业界有很多开源方案。如使用FFMPEG推流,librtmp(rtmp-dump),gstream推流。由于ffmpeg和gstreamer比较庞大,仅仅用来推流,有大炮打蚊子之嫌。针对客户端特别是瘦客户端,使用librtmp(rtmp-dump)方案更加精简,更加高效。本方案基本思路:下载并编译librtmp。下载地址:http://rtmpdump.mplayerhq.hu/download/编译后产生一个librtmp.so 库调用librtmp,封装一个视频层W
分类: 其他 发布时间: 09-07 23:04 阅读次数: 0

AAC音频格式详解和实战解析

AAC音频格式详解和实战解析一.基本概念 AAC:即MPEG-2 Advanced Audio Coding,分为流格式和文件格式。文件格式主要用于文件存储和文件播放,流格式主要用于流媒体在线播放。文件格式:adif格式adif格式该格式特点:只有开头有一个头部信息,后面都是AAC裸数据。适应磁盘存储和文件播放流格式:adts_frame格式adts_frame格式该格式特点:每一帧数据=固定头(fixed_header)+ 可变头(variable_header)+帧...
分类: 其他 发布时间: 09-07 23:04 阅读次数: 0

AAC与g711音频RTMP推流实践

前面完成了视频RTMP推流实践,本文介绍RTMP的音频推流,包括AACg711a,g711u三种场景音频推流。基于前面的视频推流实践,我们新增了推流AAC,g711a,g711u的三个接口。分别为SendAAcData(),sendg711a_audio(),sendg711u_audio(),对外提供API调用。接口类对外定义如下: classWrapper_RtmpLib{public:Wrapper_RtmpLib(char*url);~Wra...
分类: 其他 发布时间: 09-07 23:04 阅读次数: 0

ffmpeg新接口之体验

许久不使用ffmpeg了,最近一年一直是使用gstreamer在做媒体处理(因为产品采用开源框架缘故),考虑gstreamter过于庞大,过于晦涩(依赖glib,各种插件,面向对象的C框架等),自研框架还是优先开用ffmpeg来处理。将3年前的ffmpeg解码器例子用最新ffmpeg(4.2.3)来编译,问题一大堆首先:相关宏定义的头文件路径变了(虽然通过头文件引入相关调整解决了)。其次:API接口变了。编译被中止了。 ...
分类: 其他 发布时间: 09-07 23:04 阅读次数: 0

GPU温度的采集

随着高清,4K视频的推广,视频GPU硬件编码,解码,转码已经开始成为主流。同时人工智能的兴起,深度学习也离不开硬件GPU的模型训练和计算。GPU硬件参数越来得到开发人员的关注,对GPU 温度,占用率,显存等参数也纳入监控平台的重要监控指标。本文以温度为例介绍如何监控显卡GPU相关参数。监控GPU参数通常由以下几种方式:直接查看Windows资源管理器里面GPU参数。Windows资源监控管理器,能看到GPU各种占有率参数,但看不到GPU的温度,且通过这UI种方式只能在Windows系...
分类: 其他 发布时间: 09-07 23:03 阅读次数: 0

安卓开发之View工作原理

前面已经介绍了View的事件分发以及处理机制,这次来学习下View的工作流程,学习之前要先了解一些基础知识。View位置参数我们知道安卓中坐标系是以屏幕的左上角为坐标原点,向右为x轴增大方向,向下为y轴增大方向。View坐标系也是这样,内部关系如下图所示:其中**getLeft()、getTop()、getRight()、 getBottom()**分别对应View的四个属性:left、top、right、bottom,分别代表相对于View父容器的左上角的横坐标(left)、左上角的纵坐标(top
分类: 其他 发布时间: 09-07 23:03 阅读次数: 0

安卓开发之View滑动与滑动冲突

在View工作流程中自定义View的一些注意事项里面,我们提到过要避免View的滑动冲突,那么这次就来看下View的滑动与滑动冲突。安卓中我们常见的下拉刷新等操作的基础就是滑动,有些时候由于Android手机屏幕比较小,为了给用户呈现更多的内容,也会需要使用滑动来隐藏或显示一些内容。View 滑动View的滑动本质上来说是移动 View,也就是改变其当前所处的位置。它的原理与动画效果的实现非常相似,都是通过不断地改变坐标来实现这一效果。 所以要实现View的滑动,就必须监听用户触摸的事件,并根据事件传入
分类: 其他 发布时间: 09-07 23:03 阅读次数: 0

安卓开发之IPC机制详解(附AIDL实例)

IPC(Inter-Process Communication),意为进程间通信或者跨进程通信,是指两个进程之间进行数据交换的过程。前面在学习Handler机制时提到过线程与进程的概念,在安卓中一个进程可以简单理解为一个程序或应用,而线程是CPU调度的最小单元,一个进程可以包含多个线程,也可以只有一个线程即主(UI)线程。1. 多进程模式既然是跨进程通信,必然要在多进程模式下进行。使用多进程的情况分为两种:由于某些原因,应用自身需要采用多进程模式来实现。可能原因有:应用中某些模块因特殊原因要运行在
分类: 其他 发布时间: 09-07 23:03 阅读次数: 0

安卓开发之GreenDao使用

最近接触了一些开源的项目,项目中数据存储大多选用GreenDao框架,因此这次就来学习GreenDao的使用。GreenDAO是一个对象关系映射(ORM)的框架,能够提供一个接口通过操作对象的方式去操作关系型数据库,让操作数据库时更简单、更方便。GreenDao对外提供的核心类有:DaoMaster:DaoMaster保存数据库对象(SQLiteDatabase)并管理特定模式的Dao类。它具有静态方法来创建表或将他们删除。其内部类OpenHelper和DevOpenHelper是在SQLite数据
分类: 其他 发布时间: 09-07 23:02 阅读次数: 0

慕课编译原理(第十六章.中间语言)

慕课广西大学.编译原理.第十六章.语义分析和中间代码生成1.中间语言0 目录16 语义分析和中间代码生成116.1 中间语言16.1.1 课堂重点16.1.2 测试与作业17 下一章0 目录16 语义分析和中间代码生成116.1 中间语言16.1.1 课堂重点16.1.2 测试与作业17 下一章博客地址: ...
分类: 其他 发布时间: 09-07 23:02 阅读次数: 0

慕课编译原理(第十六章.常见的中间语言形式)

慕课广西大学.编译原理.第十六章.语义分析和中间代码生成1.常见的中间语言形式0 目录16 语义分析和中间代码生成116.1 常见的中间语言形式16.1.1 课堂重点16.1.2 测试与作业17 下一章0 目录16 语义分析和中间代码生成116.1 常见的中间语言形式16.1.1 课堂重点16.1.2 测试与作业中缀表达式a+b+c的翻译成...
分类: 其他 发布时间: 09-07 23:02 阅读次数: 0

慕课编译原理(第十六章.小结)

慕课广西大学.编译原理.第十六章.语义分析和中间代码生成1.小结0 目录16 语义分析和中间代码生成116.3 小结16.3.1 课堂重点16.3.2 测试与作业17 下一章0 目录16 语义分析和中间代码生成116.3 小结16.3.1 课堂重点16.3.2 测试与作业17 下一章博客地址: ...
分类: 其他 发布时间: 09-07 23:02 阅读次数: 0

慕课编译原理(第十七章.赋值语句的翻译)

慕课广西大学.编译原理.第十七章.语义分析和中间代码生成2.赋值语句的翻译0 目录17 语义分析和中间代码生成217.1 赋值语句的翻译17.1.1 课堂重点17.1.2 测试与作业18 下一章0 目录17 语义分析和中间代码生成217.1 赋值语句的翻译17.1.1 课堂重点17.1.2 测试与作业18 下一章博客地址: ...
分类: 其他 发布时间: 09-07 23:01 阅读次数: 0

慕课编译原理(第十七章.数组元素引用的翻译)

慕课广西大学.编译原理.第十七章.语义分析和中间代码生成2.数组元素引用的翻译0 目录17 语义分析和中间代码生成217.2 数组元素引用的翻译17.2.1 课堂重点17.2.2 测试与作业18 下一章0 目录17 语义分析和中间代码生成217.2 数组元素引用的翻译17.2.1 课堂重点17.2.2 测试与作业18 下一章博客地址: ...
分类: 其他 发布时间: 09-07 23:01 阅读次数: 0

慕课编译原理(第十七章.类型转换)

慕课广西大学.编译原理.第十七章.语义分析和中间代码生成2.类型转换0 目录17 语义分析和中间代码生成217.3 类型转换17.3.1 课堂重点17.3.2 测试与作业18 下一章0 目录17 语义分析和中间代码生成217.3 类型转换17.3.1 课堂重点17.3.2 测试与作业18 下一章博客地址: ...
分类: 其他 发布时间: 09-07 23:01 阅读次数: 0

慕课编译原理(第十七章.小结)

慕课广西大学.编译原理.第十七章.语义分析和中间代码生成2.小结0 目录17 语义分析和中间代码生成217.4 小结17.4.1 课堂重点17.4.2 测试与作业18 下一章0 目录17 语义分析和中间代码生成217.4 小结17.4.1 课堂重点17.4.2 测试与作业18 下一章博客地址: ...
分类: 其他 发布时间: 09-07 23:01 阅读次数: 0

慕课编译原理(第十八章.布尔表达式及其计算)

慕课广西大学.编译原理.第十八章.语义分析和中间代码生成3.布尔表达式及其计算0 目录18 语义分析和中间代码生成318.1 布尔表达式及其计算18.1.1 课堂重点18.1.2 测试与作业19 下一章0 目录18 语义分析和中间代码生成318.1 布尔表达式及其计算18.1.1 课堂重点18.1.2 测试与作业19 下一章博客地址: ...
分类: 其他 发布时间: 09-07 23:00 阅读次数: 0

慕课编译原理(第十八章.按数值表示法翻译布尔表达式)

慕课广西大学.编译原理.第十八章.语义分析和中间代码生成3.按数值表示法翻译布尔表达式0 目录18 语义分析和中间代码生成318.2 按数值表示法翻译布尔表达式18.2.1 课堂重点18.2.2 测试与作业19 下一章0 目录18 语义分析和中间代码生成318.2 按数值表示法翻译布尔表达式18.2.1 课堂重点18.2.2 测试与作业19 下一章博客地址: ...
分类: 其他 发布时间: 09-07 23:00 阅读次数: 0

慕课编译原理(第十八章.待优化翻译布尔表达式)

慕课广西大学.编译原理.第十八章.语义分析和中间代码生成3.待优化翻译布尔表达式0 目录18 语义分析和中间代码生成318.3 待优化翻译布尔表达式18.1.1 课堂重点18.1.2 测试与作业19 下一章0 目录18 语义分析和中间代码生成318.3 待优化翻译布尔表达式18.1.1 课堂重点18.1.2 测试与作业...
分类: 其他 发布时间: 09-07 23:00 阅读次数: 0

慕课编译原理(第十八章.小结)

慕课广西大学.编译原理.第十八章.语义分析和中间代码生成3.小结0 目录18 语义分析和中间代码生成318.1 小结18.1.1 课堂重点18.1.2 测试与作业19 下一章0 目录18 语义分析和中间代码生成318.1 小结18.1.1 课堂重点18.1.2 测试与作业19 下一章博客地址: ...
分类: 其他 发布时间: 09-07 23:00 阅读次数: 0