1. 程式人生 > >音訊AAC csd_0 資料詳解

音訊AAC csd_0 資料詳解

byte[] data = new byte[]{(byte) 0x14, (byte) 0x08};
ByteBuffer csd_0 = ByteBuffer.wrap(data);
//ADT頭的解碼資訊
mediaFormat.setByteBuffer("csd-0", csd_0);
 

其中的data就是解碼AAC的關鍵資訊,該資訊的格式:

AAC Profile 5bits | 取樣率 4bits | 聲道數 4bits | 其他 3bits |

  • AAC Main 0x01

  • AAC LC 0x02

  • AAC SSR 0x03  

取樣率的引數為:

    0x00   96000
    0x01   88200
    0x02   64000
    0x03   48000
    0x04   44100
    0x05   32000
    0x06   24000
    0x07   22050
    0x08   16000
    0x09   12000
    0x0A   11025
    0x0B    8000
    0x0C   reserved
    0x0D   reserved
    0x0E   reserved
    0x0F   escape value

聲道數:

    0x00 - defined in audioDecderSpecificConfig
    0x01 單聲道(center front speaker)
    0x02 雙聲道(left, right front speakers)
    0x03 三聲道(center, left, right front speakers)
    0x04 四聲道(center, left, right front speakers, rear surround speakers)
    0x05 五聲道(center, left, right front speakers, left surround, right surround rear speakers)
    0x06 5.1聲道(center, left, right front speakers, left surround, right surround rear speakers, front low frequency effects speaker)
    0x07 7.1聲道(center, left, right center front speakers, left, right outside front speakers, left surround, right surround rear speakers, front low frequency effects speaker)
    0x08-0x0F - reserved

我的音訊資料是  AAC-LC ,16000,單聲道  ,引數分別是:0X02 0X08 0X01 0X00  取引數的後面兩位,根據資訊格式所佔bit,換成二進位制為:00010 1000 0001 000

將數字輸入之後得到1408這個引數,再用兩個byte來存放所以是0x14,0x08.

同理,如果是8K的取樣率則換成:data = new byte[]{(byte) 0x15, (byte) 0x88};

相關推薦

音訊AAC csd_0 資料

byte[] data = new byte[]{(byte) 0x14, (byte) 0x08}; ByteBuffer csd_0 = ByteBuffer.wrap(data); //ADT頭的解碼資訊 mediaFormat.setByteBuffer("csd

Python爬蟲實戰案例:取喜馬拉雅音訊資料

前言 喜馬拉雅是專業的音訊分享平臺,彙集了有聲小說,有聲讀物,有聲書,FM電臺,兒童睡前故事,相聲小品,鬼故事等數億條音訊,我最喜歡聽民間故事和德雲社相聲集,你呢? 今天帶大家爬取喜馬拉雅音訊資料,一起期待吧!!   這個案例的視訊地址在這裡 https://v.douyu.com/show/

hive使用動態分割槽插入資料

    往hive分割槽表中插入資料時,如果需要建立的分割槽很多,比如以表中某個欄位進行分割槽儲存,則需要複製貼上修改很多sql去執行,效率低。因為hive是批處理系統,所以hive提供了一個動態分割槽功能,其可以基於查詢引數的位置去推斷分割槽的名稱,從而建立分割槽。   1

Sklrean--決策樹_iris資料

0、基礎構建 利用sklearn 的鳶尾屬植物資料編寫簡單決策樹。 首先是獲取資料(乾淨資料不需要處理),然後需要對規則進行視覺化。這一步需要配置 搭建Graphviz環境 1、鳶尾屬植物資料集描述 這個資料集大家肯定熟悉的不能在熟悉了, 但是這三類植物圖片不是

HDFS寫資料

HDFS寫資料詳解 hadoop模組每一部分都是分散式的,所以他們之間的通訊都是建立在RPC基礎上的,這點要明白 HDFS寫資料(上傳資料時,DataNode的選擇策略:1.第一個副本先考慮跟client最近的(同機架)2.第二個副本在考慮跨機架選擇一個DataNode,3.第三個

Storm-kafka整合——1.1.0版本storm中tuple取KafkaSpout資料

問題描述:KafkaSpout拉取kafka topic資料,下一級bolt從kafkaspout獲取資料,tuple到底採用什麼方法取出spout中的訊息呢?KafkaSpout建立:/* *根據資料來源topic和zk_id建立並返回kafkaSpout * */ pub

R|資料處理|merge資料

作者簡介Dwzb , R語言中文社群專欄作者,廈門大學統計專業學生。知乎專欄:https://z

解析用PHP讀寫音訊檔案資訊的(支援WMA和MP3)

<?php // AudioExif.class.php // 用PHP進行音訊檔案頭部資訊的讀取與寫入 // 目前只支援 WMA 和 MP3 兩種格式, 只支援常用的幾個頭部資訊 // // 寫入資訊支援: Title(名稱), Artist(藝術家), Copyright(版權), Descri

iOS備忘錄之本地資料

應用沙盒 1)每個iOS應用都有自己的應用沙盒(應用沙盒就是檔案系統目錄),與其他檔案系統隔離。應用必須待在自己的沙盒裡,其他應用不能訪問該沙盒 2)應用沙盒的檔案系統目錄,如下圖所示(假設應用的名稱叫Layer) 應用沙盒的檔案系統目錄 3)應用沙盒結構分析

Android使用HttpUrlConnection請求伺服器傳送資料

HttpUrlConnection是java內建的api,在java.net包下,那麼,它請求網路同樣也有get請求和post請求兩種方式。最常用的Http請求無非是get和post,get請求可以獲取靜態頁面,也可以把引數放在URL字串後面,傳遞給servlet,post

執行緒特定資料

    執行緒特定資料,也被稱為執行緒私有資料,是一種儲存和查詢一個特定執行緒相關資料的機制。我們稱這個資料為執行緒特定或執行緒私有的原因,是因為每個執行緒訪問它自己獨立的資料拷貝,而不用擔心和其它執行緒的訪問的同步。     執行緒特定資料看似很複雜,其實我們可以把它理解

利用rtklib開原始碼處理GPS以及北斗資料

利用rtklib開原始碼處理GPS以及北斗資料詳解 來自:崇亮 利用rtklib開原始碼處理GPS以及北斗資料詳解          在GNSS領域最基礎的工作是這些GNSS系統

linux執行緒私有資料

    在單執行緒程式中,函式經常使用全域性變數或靜態變數,這是不會影響程式的正確性的,但如果執行緒呼叫的函式使用全域性變數或靜態變數,則很可能引起程式設計錯誤,因為這些函式使用的全域性變數和靜態變數無法為不同的執行緒儲存各自的值,而當同一程序內的不同執行緒幾乎同時呼叫這樣

fopen、fwrite、fread 函式——讀寫結構體型別資料

問題引入 幾個概念需要了解 檔案讀寫過程:開啟、讀、寫、關閉 結構體型別,也是一種型別,用簡單資料型別的思維去考慮複雜型別 fopen()函式 函式原型: FILE *fopen(const char *path, const char *mode

大端與小端位元組資料

前言   計算機的資料以01構成的位元組儲存,這就涉及資料大小端的問題。計算機是大端資料模式還是小端資料模式對於普通的應用程式沒有什麼影響,但是在諸如網路程式設計、晶片暫存器操作的時候就有必要區分一下了,要不然會遇到程式的邏輯設計完全沒問題,但得到的資料總是錯誤的尷尬。這裡

hive之Python UDF函式操作map資料 全是乾貨

#1、Hive基本操作: 檢視dw.full_h_usr_base_user的詳細資訊,可以獲取資料檔案的存放路徑 desc formatted dw.full_h_usr_base_user

SuperMap iObjects .NET 製作2.5D資料(一)

作者:為夢齊舞 目前騰訊搜搜、百度地圖等多家地圖廠商都已推出2.5D地圖檢視模式,只要把檢視級別縮放到較小的區域,就可以看到該區域樓體的形狀,使用者可以由此更好的辨認位置,確認自己的出行目的地,如下圖所示: 很多使用者都會有這樣的疑問,在Supe

【 D3.js 選擇集與資料 — 4 】 enter和exit的處理方法以及處理模板

繫結資料之後,選擇集分為三部分:update、enter、exit。這三部分的處理辦法是什麼呢?本文將講解其處理方法,以及一個常用的處理模板。1. enter的處理方法如果沒有足夠的元素,那麼處理方法通常是使用append()新增元素。請看下面的程式碼:[javascript

Bluetooth4.0 廣播資料

1.廣播通道:   1.1  CH0, CH12,CH39為廣播通道,其餘為資料通道  1.2   鏈路層資料包格式:       preamble (前導碼) :廣播通道  Advertising channel packets shall have 10101010b a

高通sensor架構例項分析之三(adsp上報資料、校準流程)

本系列導航: 從adsp獲取資料的方法分為同步、非同步兩種方式,但一般在實際使用中使用非同步方式,因為同步獲取資料會因外設匯流排速率低的問題阻塞smgr,降低效率,增加功耗。 Sensor上報資料的方式分為如下幾種 sync          同步資料上報,(每次上報一個數據) async