【发布时间】:2014-05-28 10:30:41
【问题描述】:
我目前正在努力用 C# 创建一个应用程序来与我的 Apple TV 交互。
以下链接是Apple TV使用的AirPlay协议(非官方):http://nto.github.io/AirPlay.html
从文档的顶部开始,到目前为止,我的应用程序使用 http 请求来回成功地将照片/幻灯片/视频发送到 appletv。
但是,我知道文档中关于镜像的部分。根据(非官方)协议,客户端在端口 7100 上连接到 Apple TV,并发送典型的 HTTP POST 请求,然后是有关会话的参数的二进制 PLIST。我对这部分没有任何问题。 由于缺乏经验,我对接下来要做什么感到有些困惑。
在发送初始 HTTP 标头后,Apple TV 需要一个 H.264 分组流,这我完全不知道,特别是因为我不知道这种流的有效负载/NAL 结构,以及如何构造这些字节数组以遵守协议(主要是因为我只处理过您的典型数据类型。
我的主要问题是: 如何设置正确的值以发送以遵守以下要求:
6.2.流数据包
视频流使用 128 字节的标头进行打包,后跟可选的有效负载。似乎只使用了头的前 64 个字节。标头以以下 little-endian 字段开头:
尺寸说明
4 字节有效负载大小
2 字节有效负载类型
2 字节 0x1e 如果类型 = 2,否则为 6
8 字节 NTP 时间戳
数据包有 3 种类型:
类型描述
0 视频比特流
1 个编解码器数据
2 次心跳
任何帮助我朝着正确方向前进的人都将非常感激,因为我觉得我遇到了一点砖墙。
【问题讨论】:
标签: c# video-streaming h.264 apple-tv