Apple iOS设备支持的Profile和level信息(转载)

在这篇文章中,下面每一行的连接都提供了Apple iOS设备播放音视频时的音视频编码信息,同时也总结了设备所支持的H.264 视频 profile和level信息。 

如果你遇到一些iOS设备上的播放问题,请检查音视频流的编码是否是H.264 视频和 AAC/MP3 立体声音频,以及是否是该设备支持的Profile和level。 对于一些老的设备, 44100 Hz和128 kbps可以很好的用于播放MP3文件。对于新设备,请检查该设备所支持的各项技术规范。 

在Apple的技术规范中,可以找到每一个设备所支持的Profile和level。 

  • iPhone 3GS 和更早的设备支持 Baseline Profile level 3.0 及更低的级别
  • iPhone 4S 支持 High Profile level 4.1 及更低的级别
  • iPhone 5C 支持 High Profile level 4.1 及更低的级别
  • iPhone 5S 支持 High Profile level 4.1 及更低的级别
  • iPad 1 支持 Main Profile level 3.1 及更低的级别
  • iPad 2 支持 Main Profile level 3.1 及更低的级别
  • iPad with Retina display 支持 High Profile level 4.1 及更低的级别
  • iPad mini 支持 High Profile level 4.1 及更低的级别


采用Baseline Profile level 3.0编码的一个视频流在所有iOS设备上进行播放测试,可以得到最低的通用支持信息。使用例子视频文件进行播放测试的详细步骤,请阅读 快速上手 section. 

对于面向Apple iOS设备的多码率自适应(ABR)流媒体技术,你可以用一个Synchronized Multimedia Integration Language (SMIL) 文件在给定的设备和带宽条件下提供最佳的播放体验。 播放器将依据流的描述信息(metadata)选择一个最适合。 

例如,假定你有3个流,分别采用不同的码率和profile level编码。myStream_baseline.stream (Baseline Profile level 3.0, 总计200 kbps的码率) 以iPhone 3GS 为目标终端, myStream_main.stream (Main Profile level 3.1, 总计200 kbps码率) 以iPad 1、iPad 2、iPhone 4S 为目标终端,myStream_high.stream (High Profile level 4.1 总计 300 kbps码率)以New iPad 为目标终端。 采用一个文本编辑器在[install-dir]/content 文件夹下创建一个名称为myStream.smil的SMIL文件,内容如下: 

Code:
<smil>
    <head>
    </head>
    <body>
        <switch>
            <video src="myStream_baseline.stream" system-bitrate="200000"/>
            <video src="myStream_main.stream" system-bitrate="200000"/>
            <video src="myStream_high.stream" system-bitrate="300000"/>
        </switch>
    </body>
</smil>
你可以看到,在 <switch> 中,每个 <video> 实体代表了一个流。 system-bitrate 的值为这个流的音视频总码率 bits-per-second 。 

使用一个Apple iOS 设备  (Cupertino/Apple HTTP Live Streaming) 
在该设备的Safari浏览器上输入下面的URL: 
Code:
http://[wowza-address]:1935/vod/smil:myStream.smil/playlist.m3u8
为了实现多码率自适应(ABR)功能,你需要用一个编码器将一个源视频编码为多个不同码率的、关键帧对齐的输出流。Wowza Transcoder 插件可以被注入一个高码率的实时流并动态地输出多个低码率的关键帧对齐的输出流。 另一个推荐的编码器是Microsoft Expression Encoder, 它也可以创建多个不同码率关键帧对齐的输出流,以适应不同码率的VOD点播业务。 

当终端设备因为不支持当前音视频流的profile和level而引起播放问题时,Wowza Media Server的log文件会给出相关反馈。 下面的警告信息暗示有一个iPhone 3 或更早的设备因为视频是采用Main Profile level 3.1编码的而遇到了播放故障。因为iPhone 3及更早的设备仅支持Baseline Profile level 3.0和更低的级别。 

Code:
(Video may not be playable on older iPhone and iPod touch devices where Main/Level 3.1 or lower is required) Video info: : {MediaCodecInfoVideo: codec:H264, profile:Baseline, level:4.1, frameSize:320x240, displaySize:320x240, frameRate:25.000000}

<think>嗯,用户想了解如何在Unity3D中将项目打包并接入iOSAndroid平台。首先,我得回忆一下Unity打包的基本流程。记得需要安装对应的模块,比如AndroidBuild SupportiOSBuild Support,这些在安装Unity的时候应该要勾选。用户可能已经安装了UnityHub,但不确定他们是否已经正确安装了这些模块。需要提醒他们检查。然后,配置部分。对于Android,可能需要设置JDK、SDKNDK的路径。有些用户可能会遇到环境变量的问题,或者路径设置不正确的情况。这时候需要一步步指导他们如何在Unity的Preferences里找到ExternalTools,然后配置这些路径。另外,Android的Gradle构建系统可能会有问题,特别是如果用户的项目用了第三方插件,可能需要调整Gradle设置。对于iOS来说,Xcode是必须的,用户可能用的是Mac系统,但需要确认他们是否已经安装了Xcode。此外,Unity导出Xcode工程后,可能需要修改一些设置,比如BundleIdentifier,签名团队,还有Capabilities如推送通知。这部分可能会比较复杂,特别是对于没有iOS开发经验的用户,需要详细说明。还有,用户提到的引用里提到备份配置文件替换文件夹的方法,这可能涉及到每次导出项目时的重复操作。需要解释如何优化这个过程,比如备份哪些文件,或者使用脚本自动处理,减少手动操作。不过用户的问题主要是打包配置的教程,所以这部分可能需要放在优化建议里,而不是基础步骤中。另外,用户可能遇到的一些常见问题,比如编译错误,签名失败,或者资源文件丢失。应该给出一些排查方法,比如检查日志,确认依赖项是否完整,或者重新导入资源。引用中提到的替换DataNative文件夹的方法,可能是在升级Unity版本时需要处理的,需要说明这种情况下的应对策略。最后,生成相关问题的时候,要考虑用户接下来可能会问的问题,比如性能优化、平台特定功能实现、热更新等。这些相关问题可以帮助用户深入了解更多高级话题,但需要确保问题与当前主题紧密相关,不会偏离太远。总结一下,回答的结构应该是先分平台讲解配置打包步骤,然后提供常见问题解决,最后给出优化建议。需要确保每个步骤清晰,避免使用过于专业的术语,让新手也能理解。同时,引用中的内容可以作为补充说明,比如在iOS部分提到互通的方法,或者在配置备份时提及,增强回答的实用性。</think>### Unity 3D 打包项目到 iOS Android 平台的配置方法 #### 一、基础环境配置 1. **安装编译支持模块** - 打开 **Unity Hub**,在安装 Unity 编辑器时勾选 **Android Build Support** **iOS Build Support**,确保跨平台编译能力[^1]。 - 若已安装 Unity 编辑器但未添加模块,可通过 **Unity Hub -> 安装模块 -> 添加对应平台支持** 完成。 2. **Android 平台额外依赖** - 安装 **JDK**(推荐 OpenJDK 11)、**Android SDK** **NDK**,并在 Unity 中配置路径: **Edit -> Preferences -> External Tools** ```plaintext JDK: [路径]/jdk Android SDK: [路径]/sdk NDK: 推荐使用 Unity 自带的版本(如未自动识别,需手动指定) ``` 3. **iOS 平台要求** - 需使用 **macOS 系统** **Xcode**(通过 App Store 安装最新版本)。 - 确保 Xcode 命令行工具已启用: ```bash xcode-select --install ``` --- #### 二、项目打包步骤 **Android 平台** 1. **切换构建平台** - **File -> Build Settings -> Platform 选择 Android -> Switch Platform**。 2. **配置 Player Settings** - **Project Settings -> Player** - **Other Settings**: - **Bundle Identifier**:格式为 `com.公司名.项目名`(需唯一性)。 - **Minimum API Level**:根据目标设备选择(推荐 Android 8.0+)。 - **Publishing Settings**: - 勾选 **Custom Base Gradle Template**(如需添加第三方插件依赖)。 3. **生成 APK/AAB** - **Build Settings -> Build** 选择输出路径,生成安装包。 **iOS 平台** 1. **切换构建平台** - **File -> Build Settings -> Platform 选择 iOS -> Switch Platform**。 2. **配置 Player Settings** - **Project Settings -> Player** - **Other Settings**: - **Bundle Identifier**:格式与 Android 一致(需与 Apple 开发者账户匹配)。 - **Target SDK**:选择 **Device SDK**(非 Simulator)。 - **Resolution and Presentation**: - 调整屏幕方向(如锁定竖屏)。 3. **导出 Xcode 工程** - **Build Settings -> Build** 生成 Xcode 项目,在 Xcode 中完成签名编译: - **Signing & Capabilities**:选择开发者团队,启用推送通知等能力[^2]。 --- #### 三、常见问题与优化 1. **Android 编译失败** - 检查 Gradle 版本冲突(建议使用 Unity 默认模板)。 - 确保 **Android SDK Tools** **NDK** 路径正确。 2. **iOS 签名错误** - 确认 Xcode 中 **Automatically manage signing** 已启用。 - 检查 **Provisioning Profile** 是否包含当前设备的 UDID。 3. **跨平台代码兼容性** - 使用 `#if UNITY_IOS` `#if UNITY_ANDROID` 预处理指令隔离平台特定逻辑。 --- #### 四、引用说明 - 若需频繁更新 Unity 项目,可仅替换 Xcode 工程中的 `/Data` `/Classes/Native` 目录以保留配置[^2]。 - 推荐对 Android 的 `gradle.properties` iOS 的 `Info.plist` 做备份,避免重复配置。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值