Создание RTMP-соединения с использованием сокет
Мне нужно создать RTMP-клиент, используя программирование сокетов Java. Я прочитал эти документы и
1 Я успешно выполнил рукопожатие через программирование сокетов Java.
Теперь следующий шаг - отправить команду "connect" на сервер. Я создаю RTMP-пакет, как указано в документе, а затем записываю их в выходной поток с помощью DataOutputStream. Согласно заданным деталям тело пакета "connect" должно выглядеть следующим образом:
(Invoke) “connect”
(Transaction ID) 1.0
(Object1) { app: “sample”, flashVer: “MAC 10,2,153,2”, swfUrl: null,
tcUrl: “rtmpt://127.0.0.1/sample “, fpad: false,
capabilities: 9947.75 , audioCodecs: 3191, videoCodecs: 252,
videoFunction: 1 , pageUrl: null, objectEncoding: 3.0 }
Я не мог понять, как преобразовать выше в байтах в кодировке AMF3. Если мне просто нужно, чтобы AMF кодировал "connect:", 1.0 ... и записывал в OutputStream. Также основная проблема заключается в том, как кодировать объект (учитывая пары ключ-значение). Должен ли я кодировать и записывать в сокет сначала ключи, а затем закодированные в AMF значения. Нужно ли включать & операторы между двумя парами что-то вроде тела протокола http?, Я сделал RnD глубоко, но не смог найти код для создания этого пакета и записи в сокет.
Пожалуйста, предложите. Благодарю.