日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数字音视频知识点汇总(二)

發(fā)布時(shí)間:2025/3/17 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数字音视频知识点汇总(二) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

### AAC格式簡介

FFF16040 0A4280FC01 4AF28780 21280991 D5F379C7 1271871D E7B66A4E B352A85B 0A4E3C1E 094794EB 4A8AAF24 88497264 2A8AD204 9640B543 5A608903 9874AA88 A8A2A024 4A762121 C6540B2E 115A64C6 3DE7

?

### ADTS頭添加

/*** 添加ADTS頭* 一幀AAC+7 = packetLen* @param packet* @param packetLen*/ private void addADTStoPacket(byte[] packet, int packetLen) {int profile = 2; // AAC LCint freqIdx = 8; // 16KHzint chanCfg = 1; // CPE// fill in ADTS datapacket[0] = (byte) 0xFF;packet[1] = (byte) 0xF1;packet[2] = (byte) (((profile - 1) << 6) + (freqIdx << 2) + (chanCfg >> 2));packet[3] = (byte) (((chanCfg & 3) << 6) + (packetLen >> 11));packet[4] = (byte) ((packetLen & 0x7FF) >> 3);packet[5] = (byte) (((packetLen & 7) << 5) + 0x1F);packet[6] = (byte) 0xFC;}

p.s.MediaCodec編碼的AAC流已經(jīng)添加好了ADTS頭,具體情況可打印出來分析。

?

### 根據(jù)ADTS頭計(jì)算AAC幀長度

dataLen = 8 * (buffer[4] & 0xff) + ((buffer[5] & 0xff) - 31)/32;

?

### java中byte與int進(jìn)行函數(shù)計(jì)算時(shí)要注意轉(zhuǎn)換

byte轉(zhuǎn)化為int有兩種情況:

1)要保持?jǐn)?shù)值不變

應(yīng)用場景:數(shù)值計(jì)算。等等。

方法:能夠直接採用強(qiáng)制類型轉(zhuǎn)換:int i = (int) aByte,

比如:若aByte=0xff(即數(shù)值為-1)。則轉(zhuǎn)化為int后。i為0xffffffff。數(shù)值仍為-1。

2)保持最低字節(jié)中各個(gè)位不變,3個(gè)高字節(jié)所實(shí)用0填充

應(yīng)用場景:編解碼操作,

方法:採用位操作:int i = aByte & 0xff。

比如:若aByte=0xff,轉(zhuǎn)化為int后。i為0x000000ff。

總結(jié)

以上是生活随笔為你收集整理的数字音视频知识点汇总(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。