В настоящее время я пытаюсь создать приложение на С# для взаимодействия с моим Apple TV.
Следующая ссылка — это протокол AirPlay, который использует Apple TV (неофициально): http://nto.github.io/AirPlay.html
Начиная с верхней части документа, мне удалось заставить мое приложение успешно отправлять фото/слайд-шоу/видео на AppleTV, используя HTTP-запросы туда и обратно.
Тем не менее, я согласен с частью документа о зеркалировании. Согласно (неофициальному) протоколу, клиент подключается к Apple TV через порт 7100 и отправляет типичный HTTP-запрос POST, за которым следует двоичный PLIST параметров сеанса. У меня нет проблем с этой частью. Я немного в тупике относительно того, что делать в следующей части из-за отсутствия опыта.
После отправки начального HTTP-заголовка Apple TV ожидает пакетный поток H.264, об этом я совершенно не знаю, особенно потому, что я понятия не имею о структурах полезной нагрузки/NAL с этим типом потока и о том, как создавать эти байты. массивы, чтобы придерживаться протокола (в основном потому, что я когда-либо имел дело только с вашими типичными типами данных.
Мой главный вопрос: как мне настроить правильные значения для отправки, чтобы придерживаться следующего:
6.2. Потоковые пакеты
Видеопоток пакетируется с использованием 128-байтовых заголовков, за которыми следует необязательная полезная нагрузка. Кажется, что используются только первые 64 байта заголовков. Заголовки начинаются со следующих полей с прямым порядком байтов:
размер описание
4 байта размер полезной нагрузки
2 байта тип полезной нагрузки
2 байта 0x1e, если тип = 2, иначе 6
8 байт отметка времени NTP
Существует 3 типа пакетов:
описание типа
0 битовый поток видео
1 данные кодека
2 пульс
Любая помощь, направляющая меня в правильном направлении, будет очень признательна, поскольку я чувствую, что ударился о кирпичную стену.