Может кто-нибудь помочь объяснить это? - PullRequest
0 голосов
/ 10 февраля 2011

Я хочу записать аудиоданные во FLV-файл.

Я обнаружил, что структура видео-тега во FLV равна

Name  Expression  Description  
codecID  (byte & 0x0f) » 0  2: Sorensen H.263, 3: Screen video, 4: On2 VP6, 5: On2 VP6 Alpha, 6: ScreenVideo 2  
frameType  (byte & 0xf0) » 4  1: keyframe, 2: inter frame, 3: disposable inter frame 

И во флекс-коде это написано так

// VIDEODATA 'header'
    v.writeByte(0x13); // frametype (1) + codecid (3)

так что это значит?Описывают ли они тип кадра и кодовый идентификатор в шестнадцатеричном значении 0X13?

Для аудио

soundType  (byte & 0x01) » 0  0: mono, 1: stereo  
soundSize  (byte & 0x02) » 1  0: 8-bit, 1: 16-bit  
soundRate  (byte & 0x0C) » 2  0: 5.5 kHz, 1: 11 kHz, 2: 22 kHz, 3: 44 kHz  
soundFormat  (byte & 0xf0) » 4  0: Uncompressed, 1: ADPCM, 2: MP3, 5: Nellymoser 8kHz mono, 6: Nellymoser, 11: Speex 

1 Ответ

1 голос
/ 10 февраля 2011

Да.(byte & 0x0f) >> 0 означает, что codecID содержится в младших четырех битах byte (шестнадцатеричный f = двоичный 1111).Точно так же (byte & 0xf0) >> 4 говорит, что frameType хранится в старших четырех битах byte.Таким образом, 1 в 0x13 - это тип кадра (ключевой кадр), а 3 - это codecID (экранное видео).

...