CN102306103A - 一种Android RTSP播放器的SDK模块 - Google Patents
一种Android RTSP播放器的SDK模块 Download PDFInfo
- Publication number
- CN102306103A CN102306103A CN201110245929A CN201110245929A CN102306103A CN 102306103 A CN102306103 A CN 102306103A CN 201110245929 A CN201110245929 A CN 201110245929A CN 201110245929 A CN201110245929 A CN 201110245929A CN 102306103 A CN102306103 A CN 102306103A
- Authority
- CN
- China
- Prior art keywords
- layer
- module
- rtsp
- player
- android
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Telephonic Communication Services (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明属于Android RTSP播放器应用方案的SDK设计领域,具体涉及一种AndroidRTSP播放器的SDK模块。其包括从下到上的Android系统层、数据库接口层、音视频输出层和播放器网络层;数据库接口层,包括下到上的lib层和JIN层,lib层包含有Opencore模块;播放器网络层上还设置有相互连接的RTSP服务器和RTSP客户端;lib层上还包含有RTSPFfmpeg模块,RTSPFfmpeg模块包括Ffmpeg解码模块和Live555传输模块,RTSPFfmpeg模块设置有JNI接口和API接口;RTSP客户端包括基于Opencore模块的Opencorertsp客户端和Live555客户端;播放器网络层设置有能动选择器,播放器网络层通过能动选择器对lib层中的模块进行API调用。本发明支持Opencore和Ffmpeg两种可选模块,支持多种音视频格式。
Description
技术领域
本发明属于Android RTSP播放器应用方案的SDK设计领域,具体涉及一种Android RTSP播放器的SDK模块。
背景技术
经过多年的研发,3G网络技术已经取得阶段性的成果,而且智能终端平台能够成熟采用3G传输技术作为新一代的网络传输。凭借其突出的数据传输性能,3G智能终端的功能逐渐从简单的网络通讯转向丰富多彩的网络通讯娱乐。2007年Google公布了名字为android的手机操作系统。2011年初数据显示,仅正式上市两年的Android操作系统已经超越称霸十年的塞班系统,使之跃居全球最受欢迎的智能手机平台。虽然android智能手机用户在快速增长,但是付费应用的交易数量却表现惨淡。因此以内容服务为中心的运营商却能从价值链中赚取更多的利润。
目前对这方面的研究现状主要停留在Android平台支持多种视频格式播放器的实现,譬如Ffmpeg在Android平台的编解码研究,对于Android平台上流媒体的研究还处于Android Opencore的框架研究阶段。而Android自带的Opencore核心库目前只支持MP4和3GP的视频解码和RTSP、HTTP,而现在主流的网络视频是MMS、RTSP和HTTP,主流的视频编码有MP4、AVI、WMV等等。另外,Opencore库经常出现不能穿透防火墙,导致出现不能播放UDP媒体流的情况,由此看出,Android自带的Opencore还不能满足现在视频播放的大部分要求。
发明内容
针对现有技术的缺点,本发明的目的是提供一种支持Opencore和Ffmpeg两种可选模块、支持多种音视频格式的Android RTSP播放器的SDK模块。
提高图像/视频帧源检测性能,增强检测可信度的基于模式噪声相位的成像设备源检测方法。
为实现上述目的,本发明的技术方案为:
一种Android RTSP播放器的SDK模块,包括从下到上的Android系统层、数据库接口层、音视频输出层和播放器网络层;
Android系统层,用于为上层服务和功能提供API接口;
数据库接口层,包括下到上的lib层和JIN层,
lib层包含有系统自带的音视频解码和网络传输模块Opencore模块;
JIN层,用于通过调用lib层的不同lib功能为音视频输出层提供JNI接口;
音视频输出层,通过调用JIN层的JNI接口实现音视频输出;
播放器网络层上还设置有相互连接的RTSP服务器和RTSP客户端,所述RTSP客户端用于接收并保存音视频流;
所述lib层上还包含有RTSPFfmpeg 模块,RTSPFfmpeg 模块包括Ffmpeg解码模块和Live555传输模块,RTSPFfmpeg 模块设置有用于JIN层调用的JNI接口和用于播放器网络层调用的API接口;
所述RTSP客户端包括基于Opencore模块的Opencorertsp客户端和Live555客户端;
播放器网络层设置有能动选择器,播放器网络层通过能动选择器对lib层中的模块进行API调用。
本发明将Ffmpeg解码模块和Live555传输模块结合起来,实现音视频的传输和解码,加上Android系统自带的Opencore模块,实现了本发明对解码模块的可选性,支持更多格式的音视频流。
上述方案中,能动选择器设置有手动选择方式和系统自动匹配方式,播放器网络层利用所述方式对lib层中的模块进行API调用。
上述方案中,音视频输出层通过Android系统自带的视频、音频输出系统SurfaceView和AudioTrack实现音视频输出。
上述方案中,播放器网络层在音视频流上设置时间戳,音视频输出层输出音视频时按照所述时间戳进行输出。
上述方案中,播放器网络层上设置有实现统一接口的FfmpegImplements和OpencoreImplements两个继承类,分别用于对lib层的模块进行API调用。
上述方案中,所述RTSP服务器为Darwin Streaming服务器。
与现有技术相比,本发明具有如下有益效果:
1)本发明支持Opencore和Ffmpeg两种可选模块。Android系统自带Opencore模块,在Opencore模块中嵌套硬解码功能,因此如果用户终端设备有内嵌硬解码功能,则可以直接选择Opencore模块作为RTSP播放器的解码库,加强视频播放的效果。
2)Ffmpeg模块支持多种视频格式编码,如AVI、WMV、RM、RMVB、MP3等,由此模块为基础搭建的播放器SDK支持多种格式的音视频流。
3)穿透防火墙的功能。使用Opencore模块经常出现不能穿透防火墙的问题,因为系统防火墙的问题,不能播放UDP媒体流,而Live555模块提供了HTTP管道功能,可以穿透防火墙。
4)可扩展性。由于Ffmpeg模块合理的设计模式,可以通过扩展解码器,支持更多的视频格式。
附图说明
图1为现有技术中Android系统框架图;
图2为本发明的框架图;
图3为本发明工作流程图。
具体实施方式
以下结合附图和实施例对本发明进行详细的描述。
如图2所示,本发明提供一种Android RTSP播放器的SDK模块,包括从下到上的Android系统层、数据库接口层、音视频输出层和播放器网络层;
Android系统层,用于为上层服务和功能提供API接口;
数据库接口层,包括下到上的lib层和JIN层,
lib层包含有系统自带的音视频解码和网络传输模块Opencore模块,其还包含有RTSPFfmpeg 模块,RTSPFfmpeg 模块包括Ffmpeg解码模块和Live555传输模块,RTSPFfmpeg 模块设置有用于JIN层调用的JNI接口和用于播放器网络层调用的API接口。
Ffmpeg解码模块包括libavcodec、libavutil、libavformat、libswscale四个模块,各个模块组合在一起完成音视频的解码,其中libswscale模块用于视频场景比例缩放、色彩映射转换。Ffmpeg解码模块不提供RTSP网络流媒体控制和接收功能,这部分功能主要由Live555传输模块来完成。Live555传输模块包括四个基本模块,其分别是: UsageEnvironment&TaskScheduler, groupsock,liveMedia、BasicUsageEnvironment。其中UsageEnvironment&TaskScheduler模块,实现事件的调度,并异步读取事件的句柄设置,同时输出错误信息。Groupsock模块是网络接口的封装,用于收发数据包,面向多播数据的收发,同时支持单播数据的收发。liveMedia模块针对不同的流媒体类型和编码。Live555传输模块中有一个RTSPOverHTTPServer类,它具有穿透Android防火墙的功能,其原理是通过HTTP建立连接tunnel。因为Opencore模块存在防火墙穿透的问题,而Live555传输模块在一定程度上解决了这个问题。
Opencore模块是Android系统中完整的音视频解码、传输的模块,其提供完整独立的一套JNI接口调用,为播放器网络层提供功能完备的API调用。
JIN层,用于通过调用lib层的不同lib功能为音视频输出层提供JNI接口;
音视频输出层,通过调用JIN层的JNI接口实现音视频输出;音视频输出层通过Android系统自带的视频、音频输出系统SurfaceView和AudioTrack实现音视频输出。
播放器网络层上还设置有相互连接的RTSP服务器和RTSP客户端,所述RTSP客户端用于接收并保存音视频流;RTSP服务器为Darwin Streaming服务器,RTSP客户端包括基于Opencore模块的Opencorertsp客户端和Live555客户端;
播放器网络层设置有能动选择器,播放器网络层通过能动选择器对lib层中的模块进行API调用,能动选择器设置有手动选择方式和系统自动匹配方式,播放器网络层利用所述方式对lib层中的模块进行API调用。
播放器网络层在音视频流上设置时间戳,音视频输出层输出音视频时按照所述时间戳进行输出。
播放器网络层上设置有实现统一接口的FfmpegImplements和OpencoreImplements两个继承类,分别用于对lib层的模块进行API调用。
图3显示基于Android RTSP流媒体播放的整个过程。RTSP客户端把Darwin Streaming 服务器的音视频流存储起来,图3中将存储起来的音视频流描述为两个Buffer,音视频流都附带上时间戳。RTSP客户端Buffer数据后,下一步就是进行解码的过程。
本发明中设置了两个可选解码器模块Opencore模块和Ffmpeg解码模块。使用Opencore模块解码是Android自带的解码器,它是当前Android平台默认的解码工具,但是因为它的局限性,不能支持多种视频类型的解码,因而Ffmpeg的出现,解决了这个问题,Ffmpeg解码模块是当前功能全面的解码模块,它不单可以解码MP4、3GP类型的视频,还支持主流AVI、WMV、RMVB、RM解码。能动选择器选择相应的解码模块,其能动方式有手动选择方式和系统自动匹配方式。如果遇到MP4、3GP格式的视频,则系统优先选择Opencore模块进行解码,如果遇到AVI、WMV、RMVB、RM等格式的视频,则强制选择Ffmpeg解码模块,用户使用时还可以利用手动选择方式自主选择相应的解码模块。
经过解码模块的处理,再通过音视频输出层中的Android系统自带的视频、音频输出系统SurfaceView和AudioTrack,实现RTSP网络流媒体视频和音频输出。数据接口层中为音视频输出层中提供JNI接口,其作用是把解码后的视频和音频数据传输到JIN层。JIN层调用JNI接口,根据时间戳的规则实现音频和视频的输出。
Claims (6)
1.一种Android RTSP播放器的SDK模块,包括从下到上的Android系统层、数据库接口层、音视频输出层和播放器网络层;
Android系统层,用于为上层服务和功能提供API接口;
数据库接口层,包括下到上的lib层和JIN层,
lib层包含有系统自带的音视频解码和网络传输模块Opencore模块;
JIN层,用于通过调用lib层的不同lib功能为音视频输出层提供JNI接口;
音视频输出层,通过调用JIN层的JNI接口实现音视频输出;
播放器网络层上还设置有相互连接的RTSP服务器和RTSP客户端,所述RTSP客户端用于接收并保存音视频流;
其特征在于,所述lib层上还包含有RTSPFfmpeg 模块,RTSPFfmpeg 模块包括Ffmpeg解码模块和Live555传输模块,RTSPFfmpeg 模块设置有用于JIN层调用的JNI接口和用于播放器网络层调用的API接口;
所述RTSP客户端包括基于Opencore模块的Opencorertsp客户端和Live555客户端;
播放器网络层设置有能动选择器,播放器网络层通过能动选择器对lib层中的模块进行API调用。
2.根据权利要求1所述的Android RTSP播放器的SDK模块,其特征在于,能动选择器设置有手动选择方式和系统自动匹配方式,播放器网络层利用所述方式对lib层中的模块进行API调用。
3.根据权利要求1所述的Android RTSP播放器的SDK模块,其特征在于,音视频输出层通过Android系统自带的视频、音频输出系统SurfaceView和AudioTrack实现音视频输出。
4.根据权利要求1所述的Android RTSP播放器的SDK模块,其特征在于,播放器网络层在音视频流上设置时间戳,音视频输出层输出音视频时按照所述时间戳进行输出。
5.根据权利要求1所述的Android RTSP播放器的SDK模块,其特征在于,播放器网络层上设置有实现统一接口的FfmpegImplements和OpencoreImplements两个继承类,分别用于对lib层的模块进行API调用。
6.根据权利要求1所述的Android RTSP播放器的SDK模块,其特征在于,所述RTSP服务器为Darwin Streaming服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110245929.7A CN102306103B (zh) | 2011-08-25 | 2011-08-25 | 一种Android RTSP播放器的SDK模块 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110245929.7A CN102306103B (zh) | 2011-08-25 | 2011-08-25 | 一种Android RTSP播放器的SDK模块 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102306103A true CN102306103A (zh) | 2012-01-04 |
CN102306103B CN102306103B (zh) | 2014-07-02 |
Family
ID=45379969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110245929.7A Active CN102306103B (zh) | 2011-08-25 | 2011-08-25 | 一种Android RTSP播放器的SDK模块 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102306103B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102768849A (zh) * | 2012-08-02 | 2012-11-07 | 广州市花都区中山大学国光电子与通信研究院 | 基于无线音频数据传输的音乐播放系统 |
CN103051946A (zh) * | 2012-12-26 | 2013-04-17 | 四川九洲电器集团有限责任公司 | 基于Android系统的通用RTSP流播放器 |
CN103731672A (zh) * | 2013-12-16 | 2014-04-16 | 乐视致新电子科技(天津)有限公司 | 一种音视频解码方法及智能电视 |
CN104754349A (zh) * | 2013-12-25 | 2015-07-01 | 炫一下(北京)科技有限公司 | 硬解码音视频的方法及装置 |
CN105007465A (zh) * | 2015-07-21 | 2015-10-28 | 江苏物联网研究发展中心 | 基于live555框架和ffmpeg库的密文H264视频直播和点播平台 |
CN105430392A (zh) * | 2015-11-11 | 2016-03-23 | 上海熙菱信息技术有限公司 | 基于ffmpeg的自动识别格式的图片输出方法 |
CN105867964A (zh) * | 2015-12-15 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 安卓平台开放服务接入系统及其生成系统和生成方法以及接入方法 |
CN106792118A (zh) * | 2016-12-20 | 2017-05-31 | 北京小米移动软件有限公司 | 多媒体文件的播放方法及装置 |
CN106775720A (zh) * | 2016-12-16 | 2017-05-31 | 北京小度互娱科技有限公司 | 集成播放器sdk的方法和装置及设置播放器sdk的方法和装置 |
CN107077872A (zh) * | 2015-03-30 | 2017-08-18 | 联发科技(新加坡)私人有限公司 | Android自带多媒体播放器的功能扩展方法和多媒体播放系统 |
CN110730406A (zh) * | 2019-09-27 | 2020-01-24 | 深圳智者行天下科技有限公司 | 一种基于Android系统两路独立音源输出的方法 |
CN113490047A (zh) * | 2021-07-21 | 2021-10-08 | 浪潮卓数大数据产业发展有限公司 | 一种Android音视频播放方法 |
CN115086768A (zh) * | 2022-06-16 | 2022-09-20 | 四川长虹电器股份有限公司 | 多sdk播放器的控制方法及控制系统 |
-
2011
- 2011-08-25 CN CN201110245929.7A patent/CN102306103B/zh active Active
Non-Patent Citations (3)
Title |
---|
N VUN等: "Implementation of an Android Phone Based Video Streamer", 《GREEN COMPUTING AND COMMUNICATIONS (GREENCOM), 2010 IEEE/ACM INT"L CONFERENCE ON & INT"L CONFERENCE ON CYBER, PHYSICAL AND SOCIAL COMPUTING (CPSCOM)》 * |
N VUN等: "Implementation of an embedded H.264 live video streaming system", 《CONSUMER ELECTRONICS (ISCE), 2010 IEEE 14TH INTERNATIONAL SYMPOSIUM ON》 * |
XIANGLING FU等: "Research on Audio/Video Codec Based on Android", 《WIRELESS COMMUNICATIONS NETWORKING AND MOBILE COMPUTING (WICOM), 2010》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102768849A (zh) * | 2012-08-02 | 2012-11-07 | 广州市花都区中山大学国光电子与通信研究院 | 基于无线音频数据传输的音乐播放系统 |
CN103051946A (zh) * | 2012-12-26 | 2013-04-17 | 四川九洲电器集团有限责任公司 | 基于Android系统的通用RTSP流播放器 |
CN103731672A (zh) * | 2013-12-16 | 2014-04-16 | 乐视致新电子科技(天津)有限公司 | 一种音视频解码方法及智能电视 |
CN104754349A (zh) * | 2013-12-25 | 2015-07-01 | 炫一下(北京)科技有限公司 | 硬解码音视频的方法及装置 |
CN107077872A (zh) * | 2015-03-30 | 2017-08-18 | 联发科技(新加坡)私人有限公司 | Android自带多媒体播放器的功能扩展方法和多媒体播放系统 |
CN105007465A (zh) * | 2015-07-21 | 2015-10-28 | 江苏物联网研究发展中心 | 基于live555框架和ffmpeg库的密文H264视频直播和点播平台 |
CN105007465B (zh) * | 2015-07-21 | 2018-06-08 | 江苏物联网研究发展中心 | 基于live555框架和ffmpeg库的密文H264视频直播和点播平台 |
CN105430392A (zh) * | 2015-11-11 | 2016-03-23 | 上海熙菱信息技术有限公司 | 基于ffmpeg的自动识别格式的图片输出方法 |
CN105867964A (zh) * | 2015-12-15 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 安卓平台开放服务接入系统及其生成系统和生成方法以及接入方法 |
CN106775720A (zh) * | 2016-12-16 | 2017-05-31 | 北京小度互娱科技有限公司 | 集成播放器sdk的方法和装置及设置播放器sdk的方法和装置 |
CN106792118A (zh) * | 2016-12-20 | 2017-05-31 | 北京小米移动软件有限公司 | 多媒体文件的播放方法及装置 |
CN110730406A (zh) * | 2019-09-27 | 2020-01-24 | 深圳智者行天下科技有限公司 | 一种基于Android系统两路独立音源输出的方法 |
CN113490047A (zh) * | 2021-07-21 | 2021-10-08 | 浪潮卓数大数据产业发展有限公司 | 一种Android音视频播放方法 |
CN115086768A (zh) * | 2022-06-16 | 2022-09-20 | 四川长虹电器股份有限公司 | 多sdk播放器的控制方法及控制系统 |
CN115086768B (zh) * | 2022-06-16 | 2023-07-25 | 四川长虹电器股份有限公司 | 多sdk播放器的控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102306103B (zh) | 2014-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102306103B (zh) | 一种Android RTSP播放器的SDK模块 | |
CN102111674B (zh) | 一种移动终端播放在线视频的系统、方法及移动终端 | |
US10356022B2 (en) | Systems and methods for manipulating and/or concatenating videos | |
US8260263B2 (en) | Dynamic video messaging | |
CN103348695B (zh) | 针对图形的低延时无线显示器 | |
CN102572606B (zh) | 带有灵活的远程回放的流播的数字内容 | |
CN103391414A (zh) | 一种应用于手机平台的视频处理装置及处理方法 | |
WO2014117660A1 (zh) | 视频短信的发送、接收方法及其装置和手持电子设备 | |
CN104754349A (zh) | 硬解码音视频的方法及装置 | |
NZ595843A (en) | System and method for multi-stream video compression using multiple encoding formats | |
CN103442071A (zh) | 一种手机屏幕内容的实时分享方法 | |
US9800631B2 (en) | Method and a media device for pre-buffering media content streamed to the media device from a server system | |
CN102074257A (zh) | 软硬件结合解码的通用多媒体播放设备及其播放方法 | |
CN103517135B (zh) | 一种连续播放mp4格式视频文件的方法、系统及电视 | |
KR20090083431A (ko) | 무선 통신 디바이스들 사이에서 미디어 파일들을 전달하기 위한 방법들 및 장치 | |
CN102819851B (zh) | 一种有声图片的计算机实现方法 | |
CN104837057A (zh) | 视频文件播放方法、装置和系统 | |
CN104834649B (zh) | 能够实现多设备协同的智能设备与多设备协同工作方法 | |
US20080248782A1 (en) | Providing Devices With Command Functionality in Content Streams | |
US9232256B2 (en) | System and method for generating flash-based media stream | |
CN202135269U (zh) | 实现手机视频播放的系统 | |
US8948812B2 (en) | Camera apparatus | |
CN106612462A (zh) | 快进快退的处理方法及终端 | |
CN109743643A (zh) | 楼宇对讲系统的处理方法及装置 | |
CN100551069C (zh) | 一种电视机及其播放Real格式流媒体的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |