有人可以帮忙解释一下吗?

时间:2011-02-10 08:51:43

标签: flex byte

我想在flv文件中写下audiodata。

我发现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 

在flex代码中,它就是这样编写的

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

那是什么意思?他们是否在十六进制值0X13中描述了frametype和codecid?

对于音频

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 个答案:

答案 0 :(得分:1)

是。 (byte & 0x0f) >> 0表示codecID包含在byte的低四位中(十六进制f =二进制1111)。同样,(byte & 0xf0) >> 4表示frameType存储在byte的高四位中。所以0x13中的1是帧类型(关键帧),3是codecID(屏幕视频)。