版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、介绍
AIRPLAY协议AIRPLAYAppleTV上扫瞄iPhoneiPodtouch、iPad〔硬件设备〕或者iTunes〔软件〕中的各种媒体内容。AirPlay支持如下几种使用场景:iOS设备上传输并显示照片、幻灯片;iOS设备或者Itunes软件中传输并播放音频;iOS设备或者Itunes软件中传输并播放视频;iOS设备或者OSXMountainLion进展屏幕镜像。由于此功能需要硬件的硬解码支持,所以只能在iPad2、iPhone4S、带SandyBridgeCPUMac电脑〔或更的设备〕上支持。AirTunes,只支持音频流播放。后来苹果开发AppleTV时,对AIRPLAYAIRPLAY协议基于一MulticastDNS、、RTSP、RTPNTP以及其他的一些自定义扩展。由于我们只关注音频局部,所以下面争论的重点是AirTunes效劳。二、实现机制Bonjou(multicastDNS的开放性ZeroconfBonjou(multicastDNS的开放性Zeroconf标准Zeroconf(零设置网络标准):全称为Zeroconfigurationnetworking,中文名则为零配置IP地址的网络技术,不需要额外的手动配置和专属的配置效劳器。“零配置网络”如计算机,打印机等。整个搭建网络的过程都是通过程式自动化实现。假设没有zeroconf,用户必需手动配置一些效劳,例如DHCP、DNS,计算机网络的其他设置等。这些对非技术用户和用户们来说是很难的事情。具体例子为:用户拥有一台appletv和一台iPhone4s,那之只要都连入到同一个无线局域网内,iphone4s就会自动找出appletv,那么在播放音乐或者视频时候,用户只要点击推送,就可以讲音乐和视频推送到appletv上播放。BonjourZeroconf协议的还有Avahihowl。下面以AirTunes效劳为例来具体看是假照实现效劳觉察的RAO〔RemoteAudioAccessProtocol〕效劳,其格式如下:namename字段由设备的MAC地址和远程设备的名称组成〔通常就在客户端上显示此设备名称〕TXT参数中包含以下字段:AudioAudiocodecs〔音频编码〕EncryptionEncryptionTypesApExApExiTunes传输MetadataMetadataTypesRAOPRAOPRTS不过增加了基于身份验证恳求-应答的一步。实时流协议是应用层协议,用来实现和掌握实时数据的传送。RAOP效劳用两个信道实现流媒体音乐:一个是用实时流协议的掌握信道;另一个是数据信道用来发送原始数据iTunes〔v6.0.和AirportExpress〔简称RAOP效劳过程如下所示:iTunes到ApEx传输从上面可以看出从上面可以看出iTunes22byte的加密的苹ApExApEx回复一个响应,这个响应是由储存在ApEx的私钥加密后的恳求参数。然后iTunes用非对称密钥对的公钥对该值进展验证〔这种私钥加密公钥验证的方法具体实现细节如果感兴趣可以参考iTunes用来验证是否正在与一个ApEx对话。在这一步沟通过后上述连接断开。接下来,iTunesiTunes用来验证是否正在与一个ApEx对话。在这一步沟通过后上述连接断开。接下来,iTunes在同一个端口建立另外一个与ApExRTSP连接,同时供给一个随机产生的AES密钥给ApExAES密钥是经过RSAiTunes供给〔即非对称密钥对的公钥ApEx的私钥解密来验证是否正在跟一个iTunes对话。值得欣喜的是目前通过逆向工程已经破解了非对称密钥对。上述过程如下所示:iTunes到ApEx传输然后,ApEx告知iTunes哪一个端口用于数据连接(server_port,6000)。iTunes到ApEx传输ApExiTunes传输ApExiTunes传输在掌握包里的在掌握包里的RTSP序列和时间戳的交换如下所示:iTunes到ApEx传输ApExiTunes传输下面展现假设调整音量参数:下面展现假设调整音量参数:iTunes到ApEx传输ApExiTunes传输最终展现是如何关闭会话的:最终展现是如何关闭会话的:iTunes到ApEx传输ApExApExiTunes传输重来看以下图:知知ApEx支持的方法有:ANNOUNCE,SETUP,RECORD,PAUSE,FLUSH,TEARDOWN,OPTIONS,GET_PARAMETERSET_PARAMETER。ANNOUNCE:ANNOUNCERTSP效劳器音频流使用的是会话描述协议。并且也会ANNOUNCEforAppleLosslessaudiofromiTunesSETUPSETUP:SETUP会初始化一个记录会话,发送必要的传输信息建立三个UDP信道:协议交互如下:协议交互如下:setuparecordsessionRECORDRECORD:RECORD启动音频流,RTP-Info头文件里包含了下面的参数:启动音频流的协议交互如下:FLUSHFLUSH:FLUSH关闭音频流。其协议交互如下:TEARDOWNTEARDOWN:TEARDOWN完毕RTSP会话,其协议交互上面已经有图介绍过。假设想有更深入的了解可以参考“://nto.github.io/AirPlay.html#audio-rtsprequests“://nto.github.io/AirPlay.html#audio-rtsprequests中关于音频的局部。三、AIRPLAY协议的实现、移植与调试:linuxAIRPLAYshairport、xmbc〔其音频局部实现机制也是基于shairport的。shairport是一个模拟ApExiTunes和其他兼容设备的音乐的目的。它是作为支持RAOP的一个效劳端。其0.X版本是perl脚本写的,但目前shairport已经更至1.0-dev,该版本已经去除perl脚本局部,改为完全由C写成,这更便利bug。1.0-dev版本后必需的依靠库是OpenSS,可选的依靠库有liba、PulseAudi、avah〔或者how。过分析知,假设libao和PulseAudio安装后shairport将有5个输出后端〔alsaaopusle、dummy、pipe〕libao和PulseAudio,shairport3个输出后端〔即alsdummpip,不影响shairport的功能〔播放时会产生延迟的音质最好还是要安装PulseAudio。通过不断的尝试,可以选择穿插编译OpenSSL和howl,以避开简单的穿插编译。总共需要进展穿插编译的有alsa-lib、OpenSSL、howl、zlib和shairport1.0-dev穿插编译前照旧是先建安装名目shairpor,并商定名目〔在shairport名目下进展:WORK_DIR=$PWDTARGET_INC=“$WORK_DIR“/includeTARGET_LIBS=“$WORK_DIR“/libTARGET_BIN=“$WORK_DIR“/binTARGET_SBIN=“$WORK_DIR“/sbin穿插编译alsa-lib:1../configure--prefix=“$WORK_DIR“--bindir=“$TARGET_BIN“--sbindir=“$TARGET_BIN“--libexecdir=“$TARGET_BIN“ --libdir=“$TARGET_LIBS“ --includedir=“$TARGET_INC“--enable-shared --disable-static --host=mips-linux --build=i686-linux --disable-alisp--disable-python--disable-old-symbols--disable-seq--disable-rawmidi2.make时消灭以下错误:parser.c:Infunction”uc_mgr_scan_master_configs”:parser.c:1138:error:”versionsort”undeclared(firstuseinthisfunction)parser.c:1138:error:(Eachundeclaredidentifierisreportedonlyonceparser.c:1138:error:foreachfunctionitappearsin.)make[2]:***[parser.lo]Error1解决方法:patch-p1<alsa-lib-1.0.24.1-uclibc-missing-versionsort.patch3.下面又消灭问题:aserver.o:Infunction`pcm_shm_cmd”:aserver.c:(.text+0x25f0):warning:Warning:snd_pcm_hwsyncisdeprecated,considertousesnd_pcm_avail../src/.libs/libasound.so:undefinedreferenceto`atomic_sub”../src/.libs/libasound.so:undefinedreferenceto`atomic_add”collect2:ldreturned1exitstatusmake[1]:***[aserver]Error1make[1]:Leavingdirectory`/home/wcy/shairport/alsa-lib-1.0.24.1/aserver”make:***[all-recursive]Error1alsa-lib-1.0.24\includeiatomic.hmipsatomic_add和atomic_sub函数的实现时,将extern改为static。穿插编译openssl1../configsharedno-asm--prefix=/home/wcy/shairport/--openssldir=/home/wcy/shairport/openssl-1.0.1e2.修改Makefile:CC=mips-linux-gccRANLIB=/home/wcy/Lsdk/build/gcc-4.3.3/build_mips/staging_dir/usr/binNM=mips-linux-nmAR=mips-linux-ar穿插编译howl1../configure--prefix=“$WORK_DIR“--bindir=“$TARGET_BIN“--sbindir=“$TARGET_BIN“--libexecdir=“$TARGET_BIN“ --libdir=“$TARGET_LIBS“ --includedir=“$TARGET_INC“--host=mips-linux--build=i686-linux2.make时消灭错误解决方法如下:即:进入src/autoipd 执行命令makelinux_autoip.loposix_main.lo穿插编译zlib./configureprefix=../../Lsdk/build/gcc-4.3.3/build_mips/staging_dir/usrMakefile:CC=../../Lsdk/build/gcc-4.3.3/build_mips/staging_dir/usr/bin/mips-linux-gccCPP=mips-linux-gccAR=mips-linux-arRANLIB=mips-linux-ranlibprefix=../../Lsdk/build/gcc-4.3.3/build_mips/staging_dir/usr穿插编译shairport./configure之后修改Makefile:添加CC=../../Lsdk/build/gcc-4.3.3/build_mips/staging_dir/usr/bin/mips-linux-gccconfig.mk:删去CONFIG_PULSE=yes修改CFLAGSLDFLAGS:CFLAGS+= -D_REENTRANT-I/../../Lsdk/build/gcc-4.3.3/build_mips/staging_dir/usr/include/alsaLDFLAGS+=-L/../../Lsdk/build/gcc-4.3.3/build_mips/staging_dir/usr/lib-lm-lpthread-lssl-ldl-L/../lib-lz-lasound-lcryptoconfig.h:删去#defineCONFIG_PULSEmDNSRespond
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- JJF 2458-2026固体核径迹累积氡浓度测量系统校准规范
- T/SHPTA 092-2024聚丙烯(PP)装饰基材膜
- T/SAEG 010-2025环抱式及向心式油冷电机冷却性能台架试验规范
- T/CES 112-2022架空输电线路直升机机载激光雷达设备技术规范
- T/CHES 156-2025河道崩岸预警技术导则
- T/CSPSTC 188-2025公路沥青路面装配式基层技术规程
- T/SRIA 001-2024零售智能终端通用技术规范
- 2025~2026学年河北省邢台市某校人教版六年级上册12月月考数学试卷【附答案】
- PHP基础面试题(初级岗位专用)
- 2026学年河南省郑州市三年级语文期末通关黑金考题(详细参考解析)详细答案和解析
- 2026年薪税师综合能力等级考试模拟试题及答案
- 2026年山东省聊城市辅警人员招聘考试题库及答案
- 2027届9月各地高三阅读理解A篇专练答案解析
- 2026年南京新工投资集团有限责任公司人员招聘笔试参考试题及详细答案解析
- 2026年大学《土木工程材料》试题及答案
- 2026中国城市更新案例库白皮书
- 视频监控网络安全风险评估报告
- 森林康养师安全培训测试考核试卷含答案
- 2026秋道德与法治七上 第一单元 少年有梦 复习课件
- 第6课 人民当家作主 第1课时 课件(内嵌视频)2026-2027学年道德与法治五年级上册统编版
- 高二语文早晚读检测小纸条学生版(选必上册共12个 )
评论
0/150
提交评论