[英]Streaming h.264 packetized to Apple Tv in C#
我目前正在努力用C#创建一个应用程序来与我的Apple TV交互。
以下链接是Apple TV使用的AirPlay协议(非官方): http : //nto.github.io/AirPlay.html
到目前为止,从我设法做到的文档的顶部开始,使我的应用程序使用HTTP请求来回成功地将照片/幻灯片/视频发送到appletv。
但是,Im直到文档中有关镜像的部分为止。 根据(非官方)协议,客户端在端口7100上连接到Apple TV,并发送典型的HTTP POST请求,后跟有关会话的参数的二进制PLIST。 这部分我没有问题。 由于缺乏经验,我对下一步的工作有些困惑。
发送初始HTTP标头后,Apple TV需要H.264打包流,我对此一无所知,特别是因为我对这种流类型的有效负载/ NAL结构以及如何构造这些字节一无所知遵守协议的数组(主要是因为ive只处理过您的典型数据类型。
我的主要问题是:如何设置正确的值以发送以遵守以下要求:
6.2。 流数据包
视频流使用128字节的标头和随后的可选有效载荷进行打包。 似乎仅使用头的前64个字节。 标头从以下小尾数字段开始:
尺寸说明
4字节有效负载大小
2字节有效载荷类型
如果类型= 2,则为2个字节0x1e,否则为6
8字节NTP时间戳
数据包有3种类型:
类型说明
0个视频比特流
1个编解码器数据
2心跳
如果能帮助我朝正确的方向发展,我会感觉自己碰到了几堵砖墙,对此我将不胜感激。
听起来像是自定义标头格式。 H.264传输的格式通常有2种,如下所述:
http://msdn.microsoft.com/zh-cn/library/windows/desktop/dd757808%28v=vs.85%29.aspx它由一系列网络抽象层单元(NALU)组成,每个单元都是前缀为等于0x000001或0x00000001的起始码
要么
每个NALU都以长度字段为前缀,该字段以字节为单位给出NALU的长度。 长度字段的大小可以变化,但是通常为1、2或4个字节
在此处下载H.264规范: http : //www.itu.int/rec/T-REC-H.264-201304-S
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.