Получение измерения кадров из потока RAW MPEG4?
-
15-09-2020 - |
Вопрос
Кто-нибудь знает, как я могу получить размер кадра видео MPEG4 (Non H264, I.E. MPEG4 Часть 2) из Raw Video Bitstream? В настоящее время я пишу на заказ мультимедийным источником для Windows Media Foundation, я должен предоставить медиативы, который нуждается в размере кадра.Это не работает без него. Любые идеи? спасибо
Решение
Я не понимаю тебя. Вы пытаетесь узнать ширину и высоту потокового видео? Если это так (и я думаю, что это «размерность», которую вы ищете) Вот:
- Проанализируйте поток для этого целочисленного генеракодицетагкода (Hex), это всегда первое, что вы будете поток. Если нет, см. В SDP потока (если у вас есть какие-либо, и найдите поле
000001B0
, и там он ... только сейчас это Base16 String! - Прочитайте все байты, пока не дойдете до целочисленного генеракодицетагкода (Hex)
- Вы должны получить что-то подобное (Hex):
config=
- Это «заголовок конфигурации потока» или кадр или что точное имя - последовательность видеообъекта. Он проводит всю информацию, декодер должен будет декодировать видеопоток.
- Прочитайте последние 4 байта (в моем примере они разделены одним пространством -
000001B6
) - теперь наблюдайте эти байты как одно 32-битное целое число без знака ...
- получить ширину прочитайте первые 8 бит, а затем умножить то, что вы получаете с 4
- Пропустить следующие 7 бит
- , чтобы получить высота прочитайте следующие 9 бит
-
в псевдо-коде:
WIDTH = readBitsUnsigned(array, 8) * 4; readBitsUnsigned(array, 7); HEIGHT = readBitsUnsigned(array, 9);
Там вы идете ... ширина и высота. (:
Не связан с StackOverflow