[发明专利]Android平台下RTMP音视频推流中启停音频容错方法及系统有效
申请号: | 202110276764.3 | 申请日: | 2021-03-15 |
公开(公告)号: | CN113038181B | 公开(公告)日: | 2021-12-21 |
发明(设计)人: | 李翀;张金杰;张士波;刘学敏;王宇宸 | 申请(专利权)人: | 中国科学院计算机网络信息中心 |
主分类号: | H04N21/2343 | 分类号: | H04N21/2343;H04N21/433;H04N21/439;H04N21/4402;H04N21/6437;H04N21/81 |
代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 李文涛 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | android 平台 rtmp 视频 推流中启停 音频 容错 方法 系统 | ||
本发明公开一种Android平台下RTMP音视频推流中启停音频容错方法及系统,涉及移动应用开发和流媒体技术领域,通过在录制时设置一个私有的静态成员变量和一个公开的成员方法,在推送时针对暂停音频的情况,通过静态成员变量指示和更改状态,通过成员方法调用预先录制的静默音频帧来无缝衔接音频流进行推送,克服了RTMP音视频推流过程中录制端启停音频会造成播放画面卡死、播放失败的问题。
技术领域
本发明涉及移动应用开发和流媒体技术领域,是一种Android平台下RTMP音视频推流中启停音频容错方法及系统。
背景技术
随着移动互联网技术的快速发展、4G网络的全面普及和5G网络的快速部署,诞生出了众多新兴产业,其中最火热的当属直播、监控等流媒体产业。视频直播的流程大体可以分成采集、处理、编码封装、推流到服务器、服务器流分发和播放器流播放6个步骤。
采集是整个视频推流过程中的第一个环节,它从系统的采集设备中获取原始视频数据,将其输出到下一个环节。视频的采集涉及两方面数据的采集:音频采集和图像采集,它们分别对应两种完全不同的输入源和数据格式。
音频的采集过程主要通过设备将环境中的模拟信号采集成PCM编码的原始数据,然后编码压缩成MP3等格式的数据分发出去。AudioRecord是Android系统提供的用于实现录音功能的API。在Android系统中,多个进程不能同时调用AudioRecord,否则会返回错误。
图像的采集过程主要由摄像头等设备拍摄成YUV编码的原始数据,然后经过编码压缩成H.264等格式的数据分发出去。
推流是直播过程中相当重要的一步,推送协议主要有三种:RTMP,RTSP和HLS。RTMP是目前主流的流媒体传输协议,广泛用于直播领域,市面上绝大多数的直播产品都采用了这个协议。
在Android设备上进行RTMP音视频推流时,若录制端关闭音频,在播放端多数RTMP播放器会出现画面卡死,播放失败等情况。这是由于RTMP协议内部使用时间戳来进行音视频同步。同时推送音视频数据流时,时间戳会同步到音频的时间戳,当推流过程中停止推送音频时,时间戳的处理就会出错,播放器无法解析视频帧数据,导致画面会出现卡死、播放失败等情况。当需要暂停音频或者释放掉AudioRecord资源以供其他进程使用时,就不得不先停止推流,再单独推送视频数据。重启推流的过程需要一定的时间,因此连续的数据流就会出现中断,导致视频画面出现停顿或黑屏的情况,致使录制端用户体验不佳。更进一步来说,对于实时性要求较高的应用场景,这种策略会导致部分数据的丢失,可能会带来令人难以接受的损失。目前还没有一种能够在不停止视频推流的情况下启停音频的解决方案,该问题亟待解决。
发明内容
本发明旨在实现一种基于Android平台的能够在RTMP音视频推流过程中启停音频的容错方法及系统,能够解决RTMP音视频推流过程中录制端启停音频会造成播放画面卡死、播放失败的问题,扩展了流媒体技术的应用场景,提升了录制端用户体验。
为实现上述目的,本发明采用以下技术方案:
一种Android平台下RTMP音视频推流中启停音频容错方法,包括以下步骤:
Android设备在进行RTMP音视频流的录制编码时,设置一个私有的静态成员变量和一个公开的成员方法,该成员变量用于指示音频推送状态,该成员方法用于切换音频推送状态;
当在音频推送过程中暂停音频时,调用该成员方法,读取该成员变量并将该成员变量更改为暂停状态,停止音频的采集和编码,释放AudioStudio资源,推送预先准备好的静默音频帧,无缝衔接音频流进行推送;
当重新推送音频时,调用该成员方法,读取该成员变量并将该成员变量更改为推送状态,停止推送静默音频帧,重新启动AudioStduio构造函数和编码器,采集声音数据,并编码合成为音频流进行推送。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算机网络信息中心,未经中国科学院计算机网络信息中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110276764.3/2.html,转载请声明来源钻瓜专利网。