@Amenothis

Как разобрать ответ из Buffer в nodejs при стриме h264 через tcp?

Помогите разобраться, пожалуйста, моих знаний не хватает.

Есть камера z-cam e1, надо получить с нее стрим и вывести в браузер. В документации на гитхабе есть следующая информация:

###Streaming The server address is 10.98.32.1 and port is 9876. It's a TCP based server.
Fetch one frame:

1. send 0x01(1 byte) to server to request one frame.
2. recv data (4 byte payload len + following the frame data)
3. repeat the step1/step2 to get more frames.
Data format in payload:
Each payload of the data is H.264 encoded data. If the fps is 30, you can get 30 H.264 data in one second.


Если через nodejs слать запросы камере на этот адрес и отправлять 0x01, то приходит ответ в виде buffer, но как дальше работать с ним непонятно.

628793352ec3e502003957.png

Пробовал несколько проектов заточенных под подобные задачи, например h264-live-player. Он принимает стрим через tcp в буфер и отправляет его на клиента, где его обрабатывает broadway. При этом есть какой-то непонятный мне процесс, буфер разбивается по NALseparator :

NALseparator = Buffer.from([0,0,0,1]);

и затем для отправки собирается по нему же:

socket.send(Buffer.concat([NALseparator, data]) ...


Похоже zcam шлет какой-то свой ответ, не типичный поток который этот broadway ожидает, а один фрейм в h264. Но как его декодировать из буфера? Непонятно, надо ли вообще этот буфер разбивать по NALseparator, что там указывать, как вообще анализировать буфер?
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы