1. 程式人生 > >iOS音訊學習筆記一:常見音訊封裝格式及編碼格式

iOS音訊學習筆記一:常見音訊封裝格式及編碼格式

(1) pcm格式    pcm是經過話筒錄音後直接得到的未經壓縮的資料流    資料大小=取樣頻率*取樣位數*聲道*秒數/8     取樣頻率一般是22k或者44k,位數一般是8位或者16位,聲道一般是單聲道或者雙聲道     pcm屬於編碼格式,就是一串由多個樣本值組成的資料流, 本身沒有任何頭資訊或者幀的概念,。如果不是音訊的錄製者,光憑一段PCM資料,是沒有辦法知道它的取樣率等資訊的。(網上有說法指2048個取樣算一幀PCM,http://www.360doc.com/content/11/1230/19/2226925_176139396.shtml,不知道這種說法是否正確)    參見:  (2)WAV格式    WAV格式是封裝格式,裡面本身可以存放多種編碼格式的資料,不過一般都是存放的PCM資料,存放其他編碼意義不是很大。    wav檔案由wav檔案頭部分和wav檔案資料體部分組成,0-43位元組存放取樣率、通道數、資料部分的識別符號等頭資訊,44位元組以後的就是資料部分。 很顯然,wav的頭資訊很重要,一旦頭資訊損壞了,播放估計會有問題。    參見:   WAV格式    (3)MP3格式    MP3是封裝格式,裡面存放的資料使用的編碼方式稱為MPEG1 Layer-3     MP3檔案由TAG_V2(ID3V2)結構體,一組Frame, TAG_V1(ID3V1)結構體組成,頭部的TAG結構體不一定存在,需要進行判斷,尾部的TAG長度為128個位元組,也需要進行判斷。    中間的一組Frame,Frame長度可以定長也可以邊長,每一個Frame都由幀頭和資料實體組成,幀頭記錄了mp3的位率,取樣率,版本等資訊,每個幀之間相互獨立,各幀相互獨立。也就是說即使前面的幀損壞了,後面的也是可以播放的。   (4)AMR格式     AMR檔案包含一個檔案頭,後面就是一幀一幀的AMR幀。檔案頭裡面的值是固定值,用於標識該檔案為AMR檔案。每個幀分為幀頭和資料部分,幀頭裡麵包含編碼方式以及輔助資訊。AMR的取樣率根據編碼方式不同而不同,因此不像MP3一樣,在每個幀裡面存放取樣率。   參見: (5)AAC格式    初步瞭解,AAC檔案可以沒有檔案頭,全部由幀序列組成,每個幀由幀頭和資料部分組成。幀頭包含取樣率、聲道數、幀長度等,有點類似MP3格式。    關於AAC格式的文章網上非常少,只看到以下幾篇:   (6)CAF檔案    CAF是蘋果的一種音訊封裝格式,與WAV差不多,裡面可以存放LPCM、MP3等多種編碼資料。    參見: ---------------------------------------------------------------------------------------- 

  本人部落格內容繫個人學習與研究的筆記,如存在謬誤或缺失,請見諒並指出,謝謝。
  本文地址:http://www.cnblogs.com/gugupluto/p/3584320.html

---------------------------------------------------------------------------------------- 

相關推薦

iOS音訊學習筆記常見音訊封裝格式編碼格式

(1) pcm格式    pcm是經過話筒錄音後直接得到的未經壓縮的資料流    資料大小=取樣頻率*取樣位數*聲道*秒數/8     取樣頻率一般是22k或者44k,位數一般是8位或者16位,聲道一般是單聲道或者雙聲道     pcm屬於編碼格式,就是一串由多個樣本值組成的資料流, 本身沒有任何頭資

iOS音訊學習筆記iOS SDK中與音訊有關的相關框架

       上層:       Media Player Framework:       包含MPMoviePlayerController、MPMoviePlayerViewController、MPMusicPlayerController、MPMediaPlaylist等一些比較高層的視訊、音訊類

iOS音訊學習筆記音訊會話管理

​      使用Audio Session API ,可以指定App需要的音訊行為,比如,當播放音訊時,使得其他應用App靜音或者混和在一起,也可以指定當App的音訊被中斷(例如被電話)時的行為,還可以讓App響應使用者的行為,比如插入或拔出耳機,或者響應那些使用聲音硬體的事件,比如Clock、日曆鬧鐘或者

Swift學習筆記常見概念(

七、常見概念1.範圍Range、ClosedRange和NSRange的使用//區間分為閉區間和半開區間import Foundationlet closedRange: ClosedRange = 1...3 //閉區間let intArray = ["1", "2", "

iOS開發之opencv學習筆記下載和安裝

1. opencv是什麼? opencv是一個基於BSD開源協議的影象處理開源庫,截止本人編輯時間:2017年6月1日,最新版本為3.2.0。 2.哪裡可以得到opencv的原始碼以及不同平臺的動態庫? opencv的官方地址為http://opencv.org/,可以在這

Spring4學習筆記環境搭建與插件安裝

str nag j2e 容器 獲取 相關 market 至少 ips 一:環境搭建 1:開發環境:JDK安裝、Eclipse安裝 2:數據庫:Mysql、Sequel Pro(數據庫可視化操作工具) 3:web服務器:Tomcat下載,並且把tomcat配置到Eclip

linux學習筆記遠程連接linux服務器

user 亂碼 roo 開機啟動 sta 文件 ftpd 連不上 服務 環境介紹:win7電腦,通過VM虛擬出linux系統,安裝centOS7 通過Xshell連接linux,ftp訪問服務器資源。 遇到的問題,ftp連不上linux 解決:linux上安裝ftp服務 步

python學習筆記()基本概念

單引號 網絡爬蟲 解釋型 g模式 deb 恢復 判斷語句 安裝 bubuko ---恢復內容開始--- 一.python簡介 pyhthon是解釋型語言,python可以用來網絡爬蟲、數據分析、web開發、人工智能、嵌入式、自動化測試、自動化運維等,所有語言中,地方放庫最多

Docker學習筆記什麽是Docker

服務端 xiaojian lin tex 配置 配置管理 name 定制 logs 什麽是Docker一種容器技術,提供了非常方便的用戶體驗,用戶無需關系底層的操作即可達到對應用進行、封裝、分發、部署和運行的周期管理。容器=cgoup+namespace+文件系統+容器引擎

netty學習筆記TCP粘包拆包

min -s 原因 兩個 image 分享 技術 ima 選項 什麽是TCP拆包粘包 假設客戶端發送了2條消息M1,M2。可能會出現以下幾種情況。 1、服務端正常接收到M1,M2這兩條消息。 2、服務端一次接收到了2個數據包,M1和M2粘合在一起,這時候就被稱為TCP粘包

angular學習筆記老老實實的敲書中的例子

學習 textarea app 實時 鍵盤按鍵 雙向綁定 -i js框架 展示 知識點一: onkeyup():按鍵彈起時觸發 onkeydown():按鍵按下的時候發生,文字輸入之前發生 onkeypress():事件會在鍵盤按鍵被按下並釋放一個鍵時發生 知識點二:a

基於.NET的CAD二次開發學習筆記CAD開發入門

1、AutoCAD .NET API由不同的DLL檔案組成,它們提供用於訪問圖形檔案或AutoCAD應用程式的包含豐富的類、結構、方法和事件。每一個DLL檔案都定義不同的使用基於功能的庫組織元件的名稱空間。 下面是你將頻繁地要使用的AutoCAD .NET API 的三個主要的DLL檔案:

ROS學習筆記()建立工作空間和功能包

所有的ROS程式,包括我們自己開發的程式,都被組織成功能包,而ROS的功能包被存放在稱之為工作空間的目錄下。因此,在我們寫程式之前,第一步是建立一個工作空間以容納我們的功能包。其實ROS工作空間就是linux下的一個目錄,建立ROS工作空間就是建立一個linux目錄(我們建立名為catkin_ws的

Linux學習筆記遠端登入管理工具

1.虛擬機器會虛擬出來兩個網絡卡,一個是vm1,一個是vm8. 橋接的時候,佔用物理主機的真實網絡卡的一個ip nat的時候,使用的是vm8虛擬網絡卡,物理主機能上網的話,虛擬機器就能上網,不佔用主機ip host-only,使用的是vm1虛擬網絡卡,只能和主機通訊,手動設定ip的時

分散式學習筆記CAP 定理的含義

分散式系統(distributed system)正變得越來越重要,大型網站幾乎都是分散式的。 分散式系統的最大難點,就是各個節點的狀態如何同步。CAP 定理是這方面的基本定理,也是理解分散式系統的起點。 本文介紹該定理。它其實很好懂,而且是顯而易見的。下面的內容主要參考了 Michael

快速傅立葉變換FFT的學習筆記C語言程式碼的簡單實現

快速傅立葉變換FFT的學習筆記一:C語言程式碼的簡單實現 fft.c #include "math.h" #include "fft.h" void conjugate_complex(int n,complex in[],complex out[]) { int i = 0

python爬蟲學習筆記爬蟲學習概覽與Requests庫的安裝與使用

python網路爬蟲與資訊提取 學習目錄: the website is the API Requests:自動爬取HTML頁面自動網路請求提交 robots.txt:網路爬蟲排除標準 Beautiful Soup:解析HTML頁面 正則表示式詳解,提取頁面關鍵資訊Re

UNIX C 學習筆記UNIX/Linux發展歷史以及相關概念

一、UNIX 與 Linux 的發展歷史 Unix 作業系統是一個強大的多使用者,多工作業系統,支援多種處理器架構,按照作業系統的分類,屬於分時作業系統,最早由 Ken Thompson, Dennis Titchie 和 Douglas Mcllroy 於 1969年在 AT&

csdn學習筆記lua 迭代器

  無狀態的迭代器(不使用閉包方式), ipairs函式 a = {10,20,30,40,50,60} for k,v in ipairs(a) do print(k,v); end ----------------------------- output: 1

python學習筆記基本資料型別

1、python的一切都是物件,物件是包含屬性和方法的一個整體。 2、資料型別的組成:身份 (記憶體地址,通過id方法可看它的唯一識別符號);型別(通過type方法檢視);值(資料項) 3、常用基本資料型別 int  整型 bool  布林