Хорошо, я получил следующую задачу:MPEG4 из Raw RTP Payload
У меня есть IP-камера, которая способна транслировать данные в формате MPEG4 через RTP
Я могу подключиться к этой камере через RTSP
Я могу получить необработанные данные RTP.
Итак, какие у меня проблемы?
1. Извлечение данных
Что данные я на самом деле хочу? Я знаю, что мне нужно транслировать RTP Header
- но есть ли что-нибудь еще, что мне нужно, чтобы вырезать из пакетов RTP
?
2. Режим Пакетирования
Я читал, что я должен ожидать поле Packetization Mode
в моем SDP
- ну это не там. Означает ли это, что я должен принять какой-то стандартный режим пакетирования?
3. декодирование
Если бы я получил это право мне нужно буфер всех входящих кадров с Marker Bit = false
, пока я не получить кадр с Marker Bit = true
, чтобы получить полный MPEG4 Frame
. Что именно я должен понимать по MPEG4 Frame
? Keyframe + данные до следующего ключевого кадра?
4. Декодирование
У меня есть расшифровывает данные дальше тогда? В других потоках я видел, что люди использовали другой декодер, но что еще осталось расшифровать? Я имею в виду, камера должна отправить данные уже MPEG4
закодированы?
5. Библиотеки
Если мне действительно нужно декодировать данные, есть ли открытые библиотеки я мог бы использовать для этого? Или, может быть, есть даже библиотека, которая имеет некоторые функции, где я могу просто сбрасывать свои данные RTP, а затем происходит магия, и я получаю свой mp4. (Но я предполагаю, что ничего не будет.)
Примечание: Все, что я хочу сделать, должно быть частью моего собственного приложения, то есть, например, я не могу использовать внешнее программное обеспечение для анализа данных ,
Короткий рассказ - мне действительно нужно какое-то пошаговое объяснение этого. Я знаю, что это широкий вопрос, но я не знаю больше. Я также заглянул в RFCs
, но я не смог извлечь из них много информации.
Кроме того, я уже посмотрел эти два вопроса:
MPEG4 extract from RTP payload
но и длинный ответ от первого вопроса не может сделать все для меня ясно.
ОБНОВЛЕНИЕ: Хорошо, я сообщил немного дальше, и теперь я не знаю, где искать. Кажется, что все вещи пакетирования и т. Д. На самом деле не нужны для моей цели. Я также записал поток с openRTSP. Когда я открываю эти файлы в Hex-редакторе, я вижу, что есть 16 байтов, которые я не могу идентифицировать, а затем config
часть SDP
. Затем кадр начинается с обычного 00 00 01 B6
. Также oprenRTSP
добавляет какой-то хвост в MP4
- ну, я действительно не знаю, что мне нужно, и что-то вроде «лишнего» материала, который не является обязательным.