2010-07-14 5 views
2

Кто-нибудь знает, как я могу получить размер кадра для видео mpeg4 (не h264, т. Е. Mpeg4 часть 2) из ​​исходного потока битов видео? В настоящее время я пишу пользовательский медиа-источник для Windows Media Foundation, я должен предоставить медиатип, которому нужен размер кадра. он не работает без него. любые идеи? спасибоПолучение размера рамки из потока raw mpeg4?

ответ

3

Я тебя не понимаю. Вы пытаетесь узнать ширину и высоту потокового видео? Если это так (и я думаю, что это «измерение» вы ищете) вот как:

  1. Разбираем поток для этого целого 000001B0 (гекса) его всегда первая вещь, которую вы получаете поточное. Если нет, см. SDP потока (если у вас есть, и найдите поле config=, и вот оно ... только теперь это строка Base16!
  2. Прочитайте все байты, пока не получите целое число 000001B6 (шест)
  3. Вы должны получить что-то вроде этого (шестигранный): 000001B0F5000001B5891300000100000001200086C40FA28 A021E0A2
  4. Это «конфигурация заголовка потока» или кадр или независимо от того, точное название видеопоследовательности Object Он содержит всю информацию декодер должны были бы. декодировать видеопоток.
  5. Прочитать последние 4 байта (в моем примере они разделены одним пробелом - A021E0A2)
  6. N вл соблюдать эти байты, как один 32-разрядное беззнаковое целое ...
  7. Чтобы получить ширина прочитать первые 8 бит, а затем умножить то, что вы получаете с 4
  8. Пропустить Следующие 7 бит
  9. Чтобы получить высота читать дальше 9 бит
  10. В псевдокоде:

    WIDTH = readBitsUnsigned(array, 8) * 4; 
        readBitsUnsigned(array, 7); 
        HEIGHT = readBitsUnsigned(array, 9); 
    

Там вы идете ... ширину и высоту. (:

+1

Это правильно? Я пытаюсь декодировать кадры потока, который я знаю, это 1280x1024.С этой логикой ширина не может быть выше 1020, а высота не может быть выше 511. – Ninjammer

+0

WIDTH следует умножить на 8 вместо 4, а HEIGHT должен умножаться на 2 также для этого целого числа, считанного из последних 5 байтов вместо 4 байтов. –

 Смежные вопросы

  • Нет связанных вопросов^_^