Мне нужно получить фрагмент MPEG4V1 (Microsoft MPEG-4 VKI Codec V1) данных, расположенных в начале пакета strong> (отправлено каким-то устройством DVR).
Структура пакета выглядит примерно так:
- Сжатые данные MPEG4.
- Длинное целое число — количество событий и натяжек.
- Длинное целое — количество событий.
- Событие - последовательность событий.
- Длинное целое число — количество растяжек.
- Tripwire - Последовательность Tripwires.
- Длинное целое число — циклический избыточный код (CRC).
Таким образом, нет никакого указания, как узнать, где заканчиваются данные MPEG4 (Или есть?), и с чего я должен начать чтение этих дополнительных данных, таких как "Количество событий и триггеров" и т. д.
Я загрузил два пакета, чтобы вы могли увидеть, как выглядят реальные данные: recvData1.txt, recvData2.txt.
Я пытался декодировать эти пакеты, используя библиотеку FFmpeg с функцией avcodec_decode_video и удаляя байт за байтом из конца моего буфера recvData в надежде на какие-либо результаты,
но FFmpeg всегда возвращался с такие сообщения об ошибках:
«[msmpeg4v1 @ 038865a0] неверный стартовый код», «заголовок [msmpeg4v1 @ 038865a0] поврежден».
Я не очень хорошо разбираюсь в том, как работает MPEG4 изнутри, но по сообщениям об ошибках ясно видно, что мне не хватает некоторых данных для декодирования в начале буфера.
Поэтому я не уверен, какую часть/вид данных MPEG я здесь получаю.
Возможно, это какие-то данные "кадра" MPEG с указанием "конец" или что?
Я даже сравнил начало моего буфера recvData с некоторыми видеофайлами в формате MPEG4V1, которые я нашел в сети "http://www.trekmania.net/clips/video_clips4.htm", чтобы проверить, начало моего буфера действительно содержит данные MPEG .. а не какой-то конкретный материал поставщика DVR..
И я заметил, что есть около 20 байтов данных (в начале моих пакетных данных и в файлах .avi сразу после ~ 180 байтов ...), которые выглядят как какой-то заголовок или что-то в этом роде.
Пожалуйста, проверьте это изображение: "http://ggodis.gamedev.lt/stackOverflow/recvData.jpg"
Может быть, кто-нибудь знает, что представляет собой эта часть данных MPEG4V1?
P.S. ..Я проверил значения CRC для полученных пакетов, и они были правильными..