RTP推流服务器EasyRTMP实现内网摄像头RTSP拉流转码RTMP推流到EasyRTMP-Android音频采集流程是什么?

音视频流媒体硬解码是指不使用CPU进行编码,使用显卡GPU,专用的DSP、FPGA、ASIC芯片等硬件进行编码。编码框架Video ToolBox和AudioToolbox。

EasyRTMP是结合了多种音视频缓存及网络技术的一个rtmp直播推流端,包括:圆形缓冲区(circular buffer)、智能丢帧、自动重连、rtmp协议等等多种技术,能够非常有效地适应各种平台(Windows、Linux、ARM、Android、iOS),各种网络环境(有线、wifi、4G),以及各种情况下的直播恢复(服务器重启、网络重启、硬件设备重启)。

EasyRTMP-Android 音频采集

EasyRTMP-Android音频采集是基于AudioRecord实现的。

1、权限申请

<uses-permission android:name="android.permission.RECORD_AUDIO"/>

2、初始化

/*
    * 1、配置参数,初始化AudioRecord构造函数
    * audioSource:音频采集的输入源,DEFAULT(默认),VOICE_RECOGNITION(用于语音识别,等同于DEFAULT),MIC(由手机麦克风输入),VOICE_COMMUNICATION(用于VoIP应用)等等
    * sampleRateInHz:采样率,注意,目前44.1kHz是唯一可以保证兼容所有Android手机的采样率。
    * channelConfig:通道数的配置,CHANNEL_IN_MONO(单通道),CHANNEL_IN_STEREO(双通道)
    * audioFormat:配置“数据位宽”的,ENCODING_PCM_16BIT(16bit),ENCODING_PCM_8BIT(8bit)
    * bufferSizeInBytes:配置的是 AudioRecord 内部的音频缓冲区的大小,该缓冲区的值不能低于一帧“音频帧”(Frame)的大小
* */
mAudioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC,
                            samplingRate,
                            AudioFormat.CHANNEL_IN_MONO,
                            AudioFormat.ENCODING_PCM_16BIT,
                            bufferSize);

3、开始采集

mAudioRecord.startRecording();

4、读取采集到的声音数据

/*
    * 不断的读取采集到的声音数据,放进编码器的输入缓存inputBuffers中 进行编码
    *   audioBuffer 存储写入音频录制数据的缓冲区。
    *   sizeInBytes 请求的最大字节数。
    * public int read (ByteBuffer audioBuffer, int sizeInBytes)
    *  */
len = mAudioRecord.read(inputBuffers[bufferIndex], BUFFER_SIZE);

5、停止采集,释放资源。

if (mAudioRecord != null) {
    mAudioRecord.stop();
    mAudioRecord.release();
    mAudioRecord = null;
}

以上就是EasyRTMP-Android 音频采集流程。

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

时间: 2024-10-03 21:54:56

RTP推流服务器EasyRTMP实现内网摄像头RTSP拉流转码RTMP推流到EasyRTMP-Android音频采集流程是什么?的相关文章

EasyRTMP实现内网摄像头RTSP拉流转码RTMP推流到RTMP服务器EasyRTMP-Android视频采集流程是什么?

背景分析 RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写,该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMP/RTMPS/RTMPE等多种变种.RTMP是一种设计用来进行实时数据通信的网络下ieyi,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信.RTMP推流,就是将直播内容推送到服务器的过程. 关于RTMP推流组件 EasyRTMP是一套调用简单.功能完善.运行高效稳定的RTMP推流

linux外网服务器跳转内网服务器实现内网访问(iptables)

服务器信息如下 外网服务器:eth0:公网IP eth1:内网IP(192.168.10.205) 公网对外提供服务,内网IP与内部局域网通信. 配置过程: (1)开启iptables service iptables restart   (临时开启) chkconfig  iptables on    (永久开启) (2)配置iptables          (2-1)配置filter选项,使得IP和PORT可以通过防火墙 注意:在filter选项下配置 例如:#18081(tomcat-O

如何利用外网服务器和本地内网机搭建反向隧道?

一.建立反向隧道的原因和目的 因要做微信支付和支付宝支付,这两个支付在用户支付完成后,都会将支付结果推送到我放服务器上,而我们的开发服务器一般位于公司路由器后,外网无法访问到,这时有四中解决方法. 方法1,直接将外网网络接入你的开发机器,这样外网可以直接访问了,缺点是公司其他同事都无法上网了. 方法2,在路由器上做NAT转发,这样同样可以在外网访问了,缺点是要有路由器的访问权,其次如果是多级路由的话,配置比较复杂. 方法3,直接在有外网的服务器上做开发或者测试,比如代码写完了打包部署到外网服务器

多线程批量探测目标IP段的服务器类型(内网也可用)

一 原理解释 这里所说的服务器类型是指像Apache,tomcat,nginx,IIS这种.其中原理用到了HTTP Header的Responses,这里面有项叫"Server"的参数就包涵我们所需要的信息.下面是Responses的部分截图: (PS:更多相关可自行百度"HTTP Header") 因此,我们想要做一个多线程批量探测的软件,思路有两种:(1)根据别人提供的接口然后我们去调用获取(比如:http://api.builtwith.com 这个我以后可能

php+redis实现多台服务器内网存储session并读取

大型网站由于大并发的问题会导致系统出现诡异的崩溃性问题这着实让人很是蛋疼,首先考虑的就是负载均衡服务器来处理这个,当然数据库的性能也是非常非常重要的,今天就说下在负载均衡情况下对于session这个问题如何处理,说实话不处理session其实也是可以的,但是在实际的情况中会出现一些让用户体验非常蛋疼的问题,比如购物下单的时候负载均衡调配服务器来回切换的过程中session丢失了,这个时候就尴尬了,用户就会郁闷我擦这什么鬼,于是乎各种担心就会出现,这破网站是不是有什么安全问题等等.下面就来说说这个

完全控制映射到外网的内网web服务器

很多时候,我们可以获取到一个菜刀马,虽然能执行命令,但是上传文件却有种种限制,尤其对于映射到外网的web网站,windows系统,即使有最高权限,但是我个人认为远远没有一个3389的远程桌面来得爽,本篇文章主要讲述在有一个菜刀马的前提下的,如何突破内网映射到公网的主机,直接远程桌面连接内网的3389! 0x01   前言 我们获取到一个菜刀马之后,在权限范围内可以查看任意目录,执行任意命令,但是我们常常也会遇到各种各样坑,如有些文件我们上传不了,有些文件我们也下载不下来(可能是文件太大,也可能是

在内网搭建一台服务器实现从外网连接到内网

环境 服务端:CentOS 6.7 32-bit 客户端:Windows XP 服务端配置 # 关闭SELinux sed -i '/^SELINUX\b/s/=.*/=disabled/' /etc/selinux/config setenforce 0 # 安装EPEL源(默认yum源没有openvpn和easy-rsa软件包) rpm -ivh http://mirrors.ustc.edu.cn/fedora/epel/5/i386/epel-release-5-4.noarch.rpm

利用ssh反向代理以及autossh实现从外网连接内网服务器

1. 描述一下目前的机器状况,梳理梳理: 机器 IP 用户名 备注 A 10.21.32.106 gdut728 目标服务器,处于内网 B 123.123.123.123 root 外网服务器,相当于桥梁的作用 PS:123.123.123.123只是我随意起的,大家请别攻击别人的服务器啊啊啊 2. 解决方法: 通俗地说:就是在机器A上做到B机器的反向代理:然后在B机器上做正向的代理实现本地端口的转发 2.1 实现前的准备 每台都要安装ssh的客户端. 在这里我使用的是centos7,都自带ss

使用iptables给内网服务器做端口映射

iptables filter 表案例 iptables的语法规则iptables -nvL 查看规则iptables -F 清空规则iptables save 保存写入的规则iptables -Z 清空iptables的数据流计数器iptables -A INPUT -s 源IP -p tcp --sprot 来源端口 -d 目标IP --dport 目标端口 -j DROP/ACCEPT 指定放行的数据流和端口iptables -I/-A/-D INPUT -s 源IP -j DROP 添加