Я нахожусь в ситуации, когда мне нужно получить кусок MPEG4V1 ( Microsoft MPEG-4 VKI
Кодек V1 ) данные, расположенные в начале пакета (, который был отправлен каким-либо устройством DVR ).
Структура пакета выглядит примерно так:
- Сжатые данные MPEG4 .
- Длинное целое число - количество событий и триплетов.
- Long integer - Количество событий.
- Событие - последовательность событий.
- Длинное целое число - количество путевых проводов.
- 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 .. а не какие-то специфические вещи от производителя видеорегистратора ..
И я заметил, что есть около 20 байтов данных
(в начале моих пакетных данных и в файлах .avi примерно через ~ 180 байт ..)
это похоже на заголовок или что-то вроде этого
Пожалуйста, проверьте это изображение: "http://ggodis.gamedev.lt/stackOverflow/recvData.jpg"
Может быть, кто-то знает, что представляет эта часть данных MPEG4V1?
P.S. .. Я проверил значения CRC для полученных пакетов, и они были правильными.