Как разобрать файл WMV (ASF)? Не могу найти длину пакетов данных
Я пытаюсь анализировать файлы WMV (ASF) без SDK, просто декодируя необработанные байты. Теперь у меня есть проблема с ASF_Data_Object, где я не могу найти длину пакета данных. Точнее, единый пакет данных полезной нагрузки.
Здесь у меня 9 пакетов, но я не могу найти размер отдельного пакета. Как я могу определить границу между пакетами?
Думаю, моя проблема в байте 0x411, где поле "Длина типа флагов". Как видите, здесь значение 0, поэтому все флаги равны нулю. Четный тип длины пакета.
Да, здесь допустимо значение 0. Но как читать этот тип контента?
Теперь это сжатая полезная нагрузка, поскольку данные репликации равны 8, а не 1. Таким образом, это одиночная полезная нагрузка без дополнительных полей размера.
Пример файла WMV: https://files.catbox.moe/b51l2j.wmv
1 ответ
Похоже, у вас пакеты фиксированного размера без явной длины полезной нагрузки, что означает, что размер данных полезной нагрузки получен из структуры объекта данных верхнего уровня.
Спец цитата прокомментирована:
Таким образом, объект данных ASF несет 9 пакетов по 3200 байт каждый, затем внутренне пакеты содержат полезную нагрузку 3174 байт полезной нагрузки на пакет, кроме последнего, который содержит меньше данных и некоторого заполнения.