導航:首頁 > 源碼編譯 > g711演算法

g711演算法

發布時間:2023-01-11 06:05:02

Ⅰ Asterisk播放mp4(1)——音頻和PCM編碼

本文分為四個部分:音頻基本概念,PCM編碼格式介紹,PCM A-law編碼格式介紹,製作測試樣本。

我們聽到的聲音是由頻率(是什麼)和強度(有多響)決定的。上圖是一個正弦函數生成的音頻,頻率是441Hz,采樣率是44.1kHz,采樣(sample)的最大值是4095。聲音的頻率就是一個完整的波形沒秒鍾重復的次數,采樣率(sample_rate)是每秒鍾收集多少次聲音的強度數據,這樣每個完整的波形包含100個采樣。

上面這個圖是個單聲道(channel)的音頻,實際的音頻很多都是多聲道的。當有多個聲道時,需要定義每個聲道中的采樣用什麼方式進行排列,例如:雙聲道的時,可以 LRLR... ,也可以 LL...,RR... 。(這個問題會在後續講容器的文章中在詳細說明)

每個采樣(sample)代表了聲音的強度,但它這並不是個絕對的聲音大小,只是相對的。因為,同樣的聲音文件通過不同的設備播放,聲音的大小顯然不同,這個和播放設備提供的能量有關。聲音的絕對大小用分貝(dB)度量,采樣只是和分貝的相對關系。

PCM(Pulse Code Molation,脈沖編碼調制)是對聲音的振幅(音量的大小)進行編碼,位深度為14bit,20bit,24bit等(用多少個二進制位表示)。通過每秒鍾記錄若干次振幅的值(采樣率,8k,44.1k,48k等),把聲音的波形記錄下來(頻率)。

計算機系統中8個二進制位對應1個位元組,所以實際表示一個采樣時,需要用1個,2個或4個位元組進行表示;每個位元組又可採用有符號或無符號的方式。當用多個位元組表示一個采樣時,又存在位元組序的問題,就是前面的位元組表示的高位還是低位,分為大位元組序(big-endian,將高序位元組存儲在起始地址)和小位元組序(little-endian,將低序位元組存儲在起始地址)。這樣就會產生 很多編碼的組合,下面是 ffmpeg 支持的 pcm 采樣格式(也可以通過命令行 ffmpeg -formats | grep PCM 查看)。

PCM本身是一種無損(lossless)編碼格式(我理解無損的含義是收集到什麼就記錄什麼,不同格式間的差別在於記錄的精度,並不因為方式產生的損失)。但是在電話系統中為了更有效地傳遞數據,提出了 PCM A-alaw 和 PCM mu-law 兩種編碼格式,其思路是將原始的PCM編碼, 壓縮成8位的編碼(具體的演算法不展開了,可以參考 g711原理pcm轉alaw,pcm轉ulaw,alaw轉pcm,ulaw轉pcm )。

alaw 是將13位的有符號數壓縮為8位的有符號數,是有損編碼(壓縮),編碼後的數據通過解碼無法恢復到原狀,數值越大的采樣損失的數據就越多。(這里有個疑問,在系統中是用16位保存一個樣本的,那是否又有3位數據丟掉了?)

alaw 只定義了采樣的編解碼方法,但是實際使用中還要注意采樣率的問題,通常mp3,mp4這些音視頻文件中的采樣率為44.1k或48k,而電話系統中的采樣率為8k,那麼從高采樣率到低采樣率,必然又會產生損失。

上圖是實現Asterisk播放mp4文件的簡要流程,中間涉及到音頻的編解碼過程,其中任何一個環節(出現錯誤或者因為編解碼帶來損失)都可能導致最終聽到的聲音有問題(失真,噪音等)。我們必須找到一種方法驗證在各個環節是否運行正確,例如;采樣率,采樣位深度等等。我採用的方法是通過 ffmpeg 這個工具生成測試數據,並按照各個環節產生的編碼格式生成對應的參照數據,然後比較在各個環節實際產生的數據是否正確。

通常mp4文件中的音頻解碼出的裸流是 pcm_s16le (有符號,2位元組,小位元組序),那麼我們先生成一個該格式的10秒鍾的裸流。

ffmpeg 告訴我們生成的文件的編碼格式 pcm_s16le ,采樣率是 44100 ,單聲道 mono 。通過查看源碼(libavfilter/asrc_sine.c)可以知道:1、正弦波的頻率是441Hz,那麼 每周期包含100個采樣(44100/441) ,這個有助於我們理解生成的數據的變化規律;2、 采樣的最大值等於4095(0xfff) ,並不是有符號16位數的最大值32767(0x8000),這個最大值正好是12bit,加上1位符號位是13,正好和 alaw 將13位有符號數轉為8位對應上了。

生成文件的大小是 882000 位元組,44100個采樣/秒 * 10秒 * 2位元組/采樣。

讀取生成文件的前200個采樣(400個位元組)生成圖形如下:

按16進制格式打開文件(vi sine-10s.s16le,打開後 :%!xxd ),查看數據:

可以看到在第26個采樣達到最大值 ff0f ,第76個采樣達到最小值 01f0 。因為是小位元組序,要調換位元組順序,所以最大值對應的是 0x0fff(4095) ,最小值對應的是 0xf001(-4095) 。

用上面的 ffmpeg 命令生成一段10秒鍾的 pcm_s16le 格式音頻文件(裸流,沒有進行封裝)。我們既可以用耳朵聽,也可以用眼睛看這個音頻。

下面我們把同樣的聲音做 alaw 編碼。

生成文件的大小 441000 ,44100個采樣/秒 * 10秒 * 2位元組/采樣。

讀取生成文件的前200個采樣(200個)位元組,生成圖形:

alaw 采樣的符號位和原始pcm數據符號位是相反的,所以波峰和波谷和 s16le 是相反的;因為數據進行了編碼壓縮,所以編碼後的數據並不能體現出原始波形,但是頻率並沒有發生改變。

直接打開文件查看數據:

可以看到在波峰波谷位置數據的差異變小了。

如果需要設置采樣率(默認是44.1k),例如:8k,可以通過 ar 參數實現。

alaw 是一種壓縮格式,需要解壓縮才能播放,按 alaw 演算法解碼出來的采樣時13位有符號數,對應的存儲格式就是 pcm_s16le ,所以我們看看alaw轉s16le會是什麼樣?

這次是用之前生成好的 alaw 文件作為輸入。

取前200個樣本生成圖形。

從圖形上可以看到整體波形並沒有發生改變,但是在波峰波谷的位置存在失真,這表明 alaw 的編解碼過程帶來了損失。

查看原始數據我們也可以看到已經和原始 s16le 數據不同,數據精度下降了。

生成一段空白10秒裸流,采樣全是0。

ffmpeg -lavfi anullsrc=r=44100:cl=mono -t 10 -f s16le -c:a pcm_s16le null-10s.raw

生成一段指定內容的裸流(並不能設定為特定值,如果指定的是0,輸出的是0,否則是最大值)。

ffmpeg -lavfi aevalsrc=1 -t 1 -f s16le -c:a pcm_s16le eval-1s.raw

執行如下命令,可以查看音頻文件的音量:

獲得輸出內容:

n_samples: 441000
mean_volume: -21.1 dB
max_volume: -18.1 dB
histogram_18db: 128000

看這個數據仍然不太明白音量到底是什麼,通過看源碼,形成大體上的理解,0dB被當作音量的極大值,對應16位有符號數的最大值就是32767(0x8000),等於91dB的音量。(目前並不確切知道為什麼選91分貝這個值,似乎是再高的值人就受不了。)

參考: http://ffmpeg.org/ffmpeg-filters.html#anullsrc

參考: http://ffmpeg.org/ffmpeg-filters.html#sine

參考: http://ffmpeg.org/ffmpeg-filters.html#aevalsrc

參考: https://trac.ffmpeg.org/wiki/AudioVolume

參考: http://ffmpeg.org/ffmpeg-filters.html#volumedetect

參考: https://stackoverflow.com/questions/2445756/how-can-i-calculate-audio-db-level

android語音聊天軟體怎麼實現

介紹使用較廣的三款語音聊天軟體:
1.YY語音最早用於魔獸玩家的團隊語音指揮通話,逐漸吸引了部分傳奇私服用戶,最後發展為穿越火線游戲用戶必備的團隊語音工具,筆者曾在穿越火線游戲中目測,99%的戰隊收人廣告後面都掛著YY語音ID。2009年初YY娛樂用戶已經形成了可以和游戲用戶抗衡的用戶群,YY語音的娛樂公會開始逐步超越游戲公會,人氣也日漸增長。時至今日,YY語音已經成為集合團隊語音、好友聊天、視頻功能、頻道K歌、視頻直播、YY群聊天、應用游戲、在線影視等功能為一體的綜合型即時通訊軟體。

2.騰訊QQ(簡稱「QQ」)是騰訊公司開發的一款基於Internet的即時通信(IM)軟體。騰訊QQ支持在線聊天、視頻通話、點對點斷點續傳文件、共享文件、網路硬碟、自定義面板、QQ郵箱等多種功能,並可與多種通訊終端相連。2015年,QQ繼續為用戶創造良好的通訊體驗。其標志是一隻戴著紅色圍巾的小企鵝。目前QQ已經覆蓋Microsoft Windows、OS X、Android、iOS、Windows Phone等多種主流平台。
3.微信 (WeChat)
是騰訊公司於2011年1月21日推出的一個為智能終端提供即時通訊服務的免費應用程序,微信支持跨通信運營商、跨操作系統平台通過網路快速發送免費(需
消耗少量網路流量)語音簡訊、視頻、圖片和文字,同時,也可以使用通過共享流媒體內容的資料和基於位置的社交插件「搖一搖」、「漂流瓶」、「朋友圈」、」
公眾平台「、」語音記事本「等服務插件。截止到2015年第一季度,微信已經覆蓋中國 90% 以上的智能手機,月活躍用戶達到 5.49 億,用戶覆蓋
200 多個國家、超過 20 種語言。此外,各品牌的微信公眾賬號總數已經超過 800 萬個,移動應用對接數量超過 85000
個,微信支付用戶則達到了 4 億左右。

Ⅲ 編碼g.711 g.168 g.729 g.723 哪個好

你的問題貌似網路通信之類的。
基本資料如下:
FPS(Frames Per Second)即每秒傳輸幀數,指動畫或視頻的每秒顯示的畫面數,每秒鍾幀數 (FPS) 愈多,所顯示的動作就會愈流暢。
G.711是一種由國際電信聯盟(ITU-T)訂定音頻編碼方式,又稱為ITU-T G.711。G.711使用64Kbps的帶寬,可將14bits轉換成8bits。G.711有兩個編碼方式,A-law以及Mu-law。2008年3月國際電信聯盟正式發布了最新的寬頻語音編解碼標准G.711.1。
G.726是ITU-T定義的音頻編碼演演算法。1990年 CCITT(ITU前身)在G.721和G.723標準的基礎上提出。G.726可將64kbps的PCM信號轉換為40kbps、32kbps、24kbps、16kbps的ADPCM信號。
問題的意思是:
一個媒體文件,它的音頻採用某種音頻編碼格式,且該格式可以被G.726或G.711解碼,其回放效果可達到16bit,其動畫不低於每秒鍾1幀。
或某個硬體,支持文件採用G.726或G.711的編碼,其音頻可轉換到16bit,其動畫編輯能力不低於每秒鍾1幀。

Ⅳ android語音聊天軟體怎麼實現

看你要實時傳輸的還是非實時的.
開頭的過程都是捕捉音頻然後編碼.編碼也可以說是語音壓縮,壓縮演算法有n種.gsm,g711,g723,g729,g722,silk,ilbc ====,
實時傳輸可以使用RTP協議.有開源的rtp協議實現庫.
在android平台上比較快速可以實現的有PJMEDIA.有java ports.

Ⅳ 什麼樣的火焰識別預警系統好

產品名稱:火焰檢測識別預警系統,火焰偵測攝像機
產品型號:KDO-PHY102-Y
一、產品概述
科締歐火焰檢測識別預警系統支持全光譜火焰檢測,極速火焰檢測並輸出抗各類光源干擾檢測距離遠檢測靈敏度可調全屏幕檢測支持多達 16 個屏蔽區域 ,產品致力於服務智慧消防平台智能化建設,有效實現對煙火智能檢測的實時預警,包括事件預警、信息推送等功能。

二、產品特點
(1)高清網路智能分析攝像機
200萬高清網路攝像機,基於先進的海思平台。
(2)火焰監測預警抓拍
嵌入式前端攝像機自動分析火焰事件並抓拍相關圖像視頻。
(3)支持ONVIF協議
支持ONVIF協議可對接主流NVR等存儲設備。
(4)預警信息推送
將抓拍的圖像視頻信息推送到智能安防信息平台上。
(5)適應性強
獨特的邊緣演算法可大幅降低誤報率,適用於戶外戶內等任何復雜環境。
三、產品參數

參數/型號

攝像機

圖像感測器

1/2.9" Progressive CMOS

圖像尺寸

1920x1080

自動光圈

固定光圈

電子快門

1/25秒至1/20000秒

低照度

彩色:[email protected],AGC ON
黑白:0lux with IR

鏡頭

3.6定焦

日夜轉換模式

ICR紅外濾片式

寬動態范圍

物理寬動態

數字降噪

2D/3D數字降噪

圖像

視頻壓縮格式

H.265 / H.264 / MJPEG

H.265壓縮標准

Main Profile @Leve4.1 High Tier

編碼方式

VBR/CBR

畫質

VBR條件下五檔可調,CBR條件下可任意

壓縮傳輸碼率

64Kbps~10Mbps

解析度

1080P(1920×1080)、720P(1280×720)、D1、CIF、480x240

圖像設置

感興趣區域、亮度、色度、飽和度、對比度、寬動態、銳化、降噪(均可通過IE和客戶端進行調節)

音頻壓縮格式

G711A/U

感興趣區域

支持每個碼流感興趣區域獨立配置

介面

網路介面

RJ45 10m/100m 自適應乙太網口

視頻輸出

CVBS視頻輸出(BNCx1)

音頻

雙向音頻(MIC IN×1,MIC OUT×1)

存儲卡

支持TF卡,大128GB

功能

遠程監控

IE瀏覽、CMS遠程式控制制

網路協議

TCP/IP、UDP、DHCP、NTP、RTSP、PPPoE、DDNS、SMTP、FTP

介面協議

ONVIF、GB-T/28181-2011

存儲

TF卡本地存儲,網路遠程存儲

智能報警

火焰監測預警

PoE供電

支持

檢測距離

30m

防水等級

IP66

其他

電源

DC12V/PoE

工作環境

-20℃ ~ 50℃,10% ~ 90%

四、產品運用
可部署於重要住宅、店鋪、廠房、倉庫等的AI智能分析攝像頭將自動檢測所有火焰事件,從而起到預防火災的發生。

Ⅵ 視頻會議中的寬音頻協議有哪些

H.323協議
H.225協議
H.245協議
H.263協議
H.264協議
MPEG-4協議
等等。
詳情可以登錄廣東群英網路視頻會議網站查詢。

Ⅶ 松下p2卡mxf文件被格式化,怎麼恢復

太原某電視台松下機器拍攝的P2卡,誤操作導致數據全部丟失,因為拍攝的節目需要播出,只能加班至此恢復數據,一般松下的格式化話或許刪除之後數據直接清零的居多,客戶運氣還算較好,底層數據沒被清除!

P2卡的音頻以及視頻是分別存儲在不同目錄的,但是在物理層面是連續存儲在一個未分段的數據塊內,因此統一對這些數據塊進行提取,算是完成第一階段的工作,然後,我們根據客戶提供的樣本進行了存儲結構分析,發現存儲有一定的存儲規律,但是遺憾的是根據規律恢復的數據是失敗的,因為提取出來的數據100%全部存在問題,出現花屏以及馬賽克問題。因此進一對樣本內的文件進行分析,根據mxf文件分析我們發現mxf的文件結構可以作為視頻碎片提取的根據,但是這一方案提取恢復出來的視頻均為小碎片,但是無奈客戶對視頻完整度要求極高這樣的小碎片是無法滿足需求的,因此放棄這一方案。
通過對mxf的音頻以及視頻的分析,由於視頻和音頻採用編碼方式不同,音頻採用的G711A編碼,因此這給分離視頻以及音頻創造了可能,我們將視頻進行32KB的簇大小切塊,並且採用信息熵演算法將數據塊進行取值運算。

通過信息熵的演算法,我們獲取到了音頻以及視頻的存儲邊界信息,但是發現,部分音頻信息量巨大,無法和視頻明確分離,導致組合出來的碎片大概有30%左右的視頻是會花屏的,因此我們根據G711編碼特徵,加入第二種統計演算法,根據信息熵以及統計值進行二次運算,獲取了更加准確的邊界信息,將准確率提高到95%以上,另外5%由人工完成。
然後寫個組合程序對生成的邊界文件進行視頻以及音頻的分離提取,順利完成整個工作。

恢復客戶需要的音視頻文件,46.9GB

視頻文件播放無問題,完整度100%。

Ⅷ 如何在DM368平台下搭建 NFS 調試環境

硬體准備:一台基於ARM11的開發板,最好帶顯示屏的。 軟體准備:linux操作系統,NFS網路文件,JTAG調試工具,arm-linux-gcc編譯工具鏈,嵌入式linux操作系統(根據開發板和處理器配置並且編譯),擴展庫(比如GUI,如果有的話)。

Ⅸ VB編寫能播放音頻的程序。。。100分提供

我用vb編了一套播放器程序,有源代碼,要的話發email我
[email protected]
下文為程序的參考資料(詳)
MCI Command String總覽
MCI Command String是多媒體設備的程序介面。通過它,我們可以打開一個多媒體文件,例如mp3,VCD文件,Mpeg4格式的文件等等,並對它進行播放,暫停,關閉等操作。現在小弟有幸給大家介紹一下MCI Command String的使用方法。
MCI Command String是通過mciExecute或mciSendString兩個函數執行的。這兩個函數的聲明如下:
Private Declare Function mciExecute Lib "winmm.dll" Alias "mciExecute" (ByVal lpstrCommand As String) As Long
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
這兩個函數都有一個叫lpstrCommand的參數, 這個參數就是我們今天要介紹的MCI Command String。其中函數mciSendString還有三個參數,lpstrReturnString是一個字元串,它用來接收mciSendString函數返回的信息(例如,我們在lpstrCommand中的命令是讓函數返回打開的文件的設備類型,那麼函數就把設備類型的信息保存在這個參數中。);uReturnLength參數用來指定參數lpstrReturnString的長度;hwndCallback是接收」wait」、」notify」消息的窗口句柄,在Visual Basic中調用時該參數設為0即可。如果命令執行出錯,函數mciExecute會直接彈出一個對話框,提示出錯的原因。而mciSendString函數會返回一個ErrorCode (錯誤代碼),該代碼的具體含義您可以參考MSDN中的目錄」Platform SDK\Graphics and Multimedia Services\Windows Multimedia\Multimedia Reference\Multimedia Constants\MCIERR Return Values」。您可以根據具體情況選擇到底使用哪一個函數來執行MCI命令。例如,在調試的時候使用mciExecute,以便快速地獲得錯誤原因,而在將要發布的程序中使用mciSendString函數,讓程序中已設置的錯誤陷阱去處理錯誤,以避免頻繁的錯誤提示而使用戶覺得厭煩。
在熟悉了這兩個函數後,我們就可以進入正題――MCI Command String了。
MCI Command String的命令格式是這樣的:lpszCommand lpszDevice lpszCommandFlag lpazFlag
lpszCommand是mci命令,例如open,play,stop,close等等。
lpszDevice是設備名(或文件名)。例如,我們用以下的程序打開了我的文檔中的Music01.dat文件,並用」alias」參數將其別名設為OpenFile:
Dim lReturn As long (1)
lReturn=mciExecute(「open C:\Mydocu~1\Music01.dat alias OpenFile type MPEGVideo」) (2)
那麼,在以後的MCI Command String中lpszDevice參數必須指定為OpenFile。例如,關閉該文件的代碼如下:

lReturn=mciExecute(「close OpenFile」) (3)
如果我們沒有為打開的文件設定別名,則以後調用的MCI Command String中lpszDevice參數為DOS路徑名加文件名。例子如下:
Dim lReturn As long(4)
lReturn=mciExecute(「open C:\Mydocu~1\Music01.dat type MPEGVideo」)(5)
lReturn=mciExecute(「close C:\Mydocu~1\Music01.dat type MPEGVideo」)(6)
從這里可以看出,設定別名的好處是減少了代碼的輸入。
LpszCommandFlag是mci命令的參數。如上代碼(2),」alias OpenFile」以及」type MPEGVideo」就是命令」open」的參數。通常一個mci命令的參數少則幾個多則幾十個。LpazFlag可以為指定為」wait」或」notity」。如果為」wait」,那麼mci命令執行完畢後會向父窗體發送MCI_WAIT消息,」notity」則發送MCI_NOTIFY消息。此參數在Visual Basic中無甚用處。
在此先聲明一下,微軟支持的多媒體設備的類型共有cdaudio,dat,digitalvideo,other,overlay,scanner,sequencer,vcr,videodisc,waveaudio十種(注意:微軟不支持RealPlay格式的文件。您可以用以下代碼獲得已打開的文件的類型:lReturn=mciSendString(「capability lpszDevice device type」,sReturn,32,0) )。至於哪一類設備支持哪些參數,您可以在MSDN中查找關鍵字」MCI Command Strings」,選中所列出的命令,在其中的HTML幫助文檔中通常會有一個表格告訴你哪些設備支持哪些參數或者在第一段中有信息告訴您哪些設備支持該命令。
好了,現在讓我們對又繁索,又該死,又強大的mci命令參數作一個系統的介紹。(本文僅介紹open命令的常用參數,其它命令的參數有機會小弟再介紹給大家。)
open:
該命令用來打開一個多媒體文件。所有的設備都支持這個命令。在任何mci命令執行前,都必須先打開多媒體文件,以初始化設備。
該命令的幾個參數意義如下:alias device_alias――指定欲打開文件的別名;shareable――是否以共享方式打開,如果不指定該參數,則以不共享的方式打開,也就是說,打開某一個多媒體文件後,其它程序不能再打開它,如果指定該參數,則以共享方式打開;type device_type――指定該文件在Windows中注冊的多媒體文件名(註:Windows中注冊的多媒體文件名與設備類型名並不相同,設備類型只有以上所說的十種類型,而Windows中注冊的多媒體文件名請查看C:\Windows\win.ini文件的[mci extensions]小節。),如MPEGVideo,AVIVideo,waveaudio等,MPEGVideo、AVIVideo類型的文件其實都屬於設備digitalvideo。
對於open命令,有幾個須注意的方面。首先,用open命令打開一個文件時,文件的路徑必須是DOS格式的短路徑。您可以用API函數GetShortPathName返回某路徑的該格式。對於參數type device_type,復合型設備的文件(如:MPEGVideo)mci設備會自動根據其在Windows中注冊的擴展名 (要想獲得某擴展名的文件在Windows中注冊的類型名,請查看C:\Windows\win.ini文件的[mci extensions]小節。)設置該參數(所以對於C:\Windows\win.ini文件的[mci extensions]小節中已列的擴展名,不必指定該參數),但如果設備無法根據其擴展名獲得文件的類型的話,就必須指定該參數,如果不指定則會提示:」這不是已注冊的mci設備」,而簡單型設備(如CD音軌設備,可編程控制的錄放像機,可編程式控制制的鐳射影碟機)則不必指定該參數。
如果該命令被成功執行,那麼返回值為0。至此,您就可以用alias指定的別名執行各種各樣的mci命令了。

Break:指定一個鍵來退出使用wait參數的當前mci命令。
Capability:獲得已打開的設備的功能,比如能否播放,能否退出,能否記錄等等。
Capture:將幀緩沖的數據拷貝到指定的文件中。
Close:關閉設備,釋放內存。
Configure:顯示一對話框,以設置設備的某些屬性。
Copy:將數據拷貝至剪切板。
Cue:在播放或記錄之前執行該命令可以加快播放或記錄速度。
Cut:將工作區的數據剪切到剪切板。
Delete:從已打開的多媒體文件中刪除數據段。
Freeze:終止視頻輸入或輸出,禁止視頻流從幀緩沖中獲得數據。
Info:獲得設備信息,例如演算法,版權,所打開的文件,UPC等等。
List:返回視頻和音頻的數量和類型。
Load:用設備指定的格式打開一個文件。類似於open的功能。
Monitor:指定當前源,默認的當前源是當前工作區。
Paste:將剪切板的內容拷貝至工作區。
Pause:暫停播放或記錄。
Play:呵呵,這個命令無須多說。
Put:決定顯示源和顯示目的窗口的區域。
Quality:自定義音頻或視頻的quality level和靜態圖像的壓縮方式(例如BMP、JPG)。
Realize:自定義圖像顯示窗口的調色板。
Record:無須多說。
Reserve:為設備的工作區分配連續的磁碟空間。
Restore:將一靜態圖像從文件拷貝到幀緩沖中。
Resume:繼續播放或記錄。
Save:保存一個mci文件。
Seek:定位到指定的幀位置並等待。
Set:設置某些參數。(例如左聲道,光碟機開關,Time Format等等。)
Setaudio:設置音頻參數。(例如低音,高音,左右聲道)
Setvideo:設置視頻回放或捕捉的參數。(例如亮度、對比度、伽馬值等。)
Status:返回已打開的設備的狀態信息。
Step:設置慢放時步進的幀數,負數即倒放,單位為幀/秒。
Stop:無須多說。
Undo:撤消最近一次、cut、delete和paste命令。
Unfreeze:Freeze的反操作。
Update:讀取當前幀的數據,並顯示在目標窗口或目標DC(設備場景)。
Where:獲得Put命令指定的源或目標顯示區域。
Window:設置播放的窗口。可以用它把播放窗口設置為其它窗口,取消默認的窗口。
channels channel_count:設置播放或記錄的頻道
clock time:將外部時間設為變數」time」。該變數為一無符號長整形數值
counter format:設置計數器格式
counter value:將VCR計數器設為指定的值
door closed:收回光碟托盤
door open:退出光碟
file format format:指定」save」或」capture」命令使用的時間格式。如果省略,則設備默認的格式會被使用。如果指定了一個與當前演算法和」quality」相沖突的文件格式,則會使用默認的文件格式。以下都是以定義的文件格式:
avi:AVI格式;avss:AVSS格式;dib:DIB格式;jfif:JFIF格式;jpeg:JPEG格式;mpeg:MPEG格式;rdib:RLE DIB格式;rjpeg:RJPEG格式
format tag pcm:設置播放或記錄的格式為PCM,文件即以該格式保存
format tag tag:設置播放或記錄的格式,文件即以該格式保存
index timecode
index counter
index date
index time:設置VCR的當前顯示
input integer:設置音頻輸入的頻道
length ration:設置用戶指定的VCR磁帶長度
master midi:設置MIDI sequencer為同步源,同步數據以MIDI格式發送
master none:禁止MIDI sequencer發送同步數據
master smpte:設置MIDI sequencer為同步源,同步數據以SMPTE(Society of Motion Picture and Television Engineers電影與電視工程師協會)格式發送
offset time:設置SMPTE偏移。變數」time」的格式為:hh:mm:ss:ff;hh是小時,mm是分鍾,ss是秒,ff是幀
output integer:設置音頻輸出的頻道
pause timeout:設置」pause」命令的最大持續時間,單位為毫秒。0表示沒有暫停
postroll ration ration:以當前時間格式設置執行一個」stop」或」pause」命令時用來中斷VCR傳輸的時間長度
port mapper:將MIDI印射設置為接收MIDI消息的埠
port none:取消MIDI消息傳送
port port_number: 將MIDI埠設置為接收MIDI消息
power on
power off:打開、關閉一個設備的電源
preroll ration ration:以當前時間格式設置用來穩定VCR輸出的長度
record format SP
record format LP
record format EP:設置VCR記錄模式,SP:正常播放;EP:外部播放;LP長播放
samplespersec integer:設置播放或記錄的取樣速度,文件即以該格式保存
seek exactly on
seek exactly off:設置兩種定位模式。」seek exactly on」是指定位到指定的那一幀。」seek exactly off」是指定位到與指定幀最接近的關鍵幀。
slave file:設置MIDI sequencer使用文件數據作為同步源,這是默認設置
slave midi:設置MIDI sequencer使用輸入的MIDI數據作為同步源。sequencer以MIDI格式識別數據
slave none:設置MIDI sequencer忽略同步源數據
slave smpte:設置MIDI sequencer使用輸入的MIDI數據作為同步源。sequencer以SMPTE格式識別數據
speed factor:設置工作區音頻視頻回放的速度。」factor」為一比例值:1000表示正常速度播放,500表示以正常速度一半播放,2000表示以正常速度2倍播放。為0時表示在不丟音視頻幀的情況下盡可能地快放
still file format format:設置」capture」命令使用的文件格式
tempo tempo_value:設置sequence速度,以當前時間格式
time format btyes:在PCM格式文件中,設置時間格式為bytes。所有的位置信息都將表示為bytes值
time format frames:設置時間格式為幀
time format hms:設置時間格式為小時,分鍾,秒
time format milliseconds:設置時間格式為毫秒
time format msf:設置時間格式為分鍾,秒,幀。其表示為:mm:ss:ff。mm為分鍾,ss為秒,ff為幀
time format samples:設置時間格式為取樣頻率
time format smpte24
time format smpte25
time format smpte30:設置時間格式為SMPTE幀速度
time format smpte 30 drop:設置時間格式為SMPTE30降速(?)
time format song pointer:設置時間格式為歌曲指針
time format tmsf:設置時間格式為磁軌、分鍾、秒、幀形式。其表示為:tt:mm:ss:ff。tt為磁軌,mm為分鍾,ss為秒,ff為幀
time format track:設置位置格式為磁軌
time mode counter:設置位置信息模式為使用VCR計數器
time mode detect:設置位置信息模式為基於探測磁帶時間代碼信息的格式
time mode timecode:設置磁帶的位置信息模式為使用時間代碼信息的格式
video off
video on:關閉、打開視頻
Setaudio:設置音頻參數(例如低音,高音,左右聲道)。digital-video和VCR支持該命令。
algorithm algorithm:選擇一個指定的音頻壓縮演算法。該演算法將用在」reserve」和」record」命令中。MCI定義」algorithm」為:」g711」「g721」「g722」「g728」「pcm」「cdxa」「adpcm」「adpcm4e」
alignment to integer:設置與waveform-audio設備的輸入數據起始部份有關的數據塊隊列
bass to factor:設置音頻低音值
bitspersample to bit_count:設置記錄時每次取樣的bit數量
bytespersec to integer:設置每秒記錄的平均byte數量
clocktime:指定在」over」參數中使用的時間單位為毫秒
input:激活」bass」「treble」「volume」參數的設置。使之影響播放和記錄信號。這是默認設置
left off
left on:關閉、打開左聲道
left volume to factor:設置左聲道的音量
monitor to type number number:控制哪個輸入源會傳遞到VCR的輸出而不改變記錄源的選擇。」type」可以是」output」或其它有效的輸入源。如果」number」沒有指定,則第一個此類型的輸入會被選擇
off
on:關閉、打開音頻
output:激活」bass」「treble」「volume」參數的設置。使之影響播放信號,並不影響記錄信號
over ration:指定如果使用」factor」變數的參數有所改變,將花多長時間。」ration」為當前時間格式,如果不指定該參數,參數變化會立即執行
quality descriptor:指定音頻記錄到一個文件時壓縮的特徵。所有設備都支持」low」「medium」「high」
record off:清除音頻源選擇,接下來的」record」命令不會記錄音頻數據
record on:打開音頻數據記錄選擇。這是默認項
record track track_number off:清除」track_number」指定的音頻源選擇,接下來的」record」命令不會記錄該音頻數據
record track track_number on:打開」track_number」指定的音頻源選擇
right off
right on:關閉、打開音頻右聲道輸出
right volume to factor:設置右聲道的音量
samplespersec to integer:在」pcm」或」adpcm」演算法下記錄的取樣頻率,文件即以該格式保存
source to sourcename:設置音頻輸入源。」sourcename」可以」left」「right」「average」「stereo」,分別意為左,右,平均,立體聲
source to type number number:選擇將記錄在磁帶上的音頻源。」type」必須」tuner」「line」「svideo」「aux」「generic」「mute」
stream to number:指定工作區回放的音頻流。如果該參數沒有指定,而且文件也沒有定義一個默認值,則音頻驅動器物理上第一遇到的音頻流會被播放
track track_number off:關閉指定磁軌
track track_number on:打開指定磁軌
treble to factor:設置高音值
volume to factor:設置左右聲道音量
據本人的經驗,低音值,高音值,及音量在0至1000之間取值。關於音頻還有一個重要的方面容易讓人迷惑:有些朋友期望將左(右)聲道關閉來禁止左(右)聲道的聲音,但這種結果是剩下的聲道仍有些未被關閉的聲道的聲音。這是因為默認的音頻源總是立體聲的,而立體聲即是在左(右)聲道中摻入輕微的右(左)聲道的聲音,以達到立體效果。要想完全禁止某一聲道的聲音,請使用」source to sourcename」參數。
Setvideo:設置視頻回放或捕捉的參數(例如亮度、對比度、伽馬值等。)。digital-video設備支持該命令。
algorithm algorithm:指定下一個」reserve」或」record」命令使用的視頻壓縮演算法。MCI已定義的有:」mpeg」「h261」,如果指定的演算法與當前的文件格式沖突,則會使用文件默認的演算法
bitsperpel to count:設置用」capture」或」record」保存數據時每像素bit數量
brightness to factor:設置視頻亮度
clocktime:指定」over」參數使用的時間單位為毫秒
color to factor:設置視頻飽和度(色彩)
contrast to factor:設置視頻對比度
gamma to value:設置伽馬修正值。」value」為2200表示伽馬值為2.2,1000表示不做伽馬修正,
halftone:使用halftone調色板代替默認的調色板
input:激活」brightness」「color」「contrast」「gamma」「sharpness」「tint」參數設置,使之影響輸入信號和記錄信號
key color to r:g:b:設置」key color」為一RGB值
key index to index:設置」key index」。」index」必須為一物理調色板的索引
monitor to type number number:控制哪個輸入源會傳遞到VCR的輸出而不改變記錄源的選擇。」type」
number of marks:返回最大的遮罩數量,0表示不支持遮罩
ouputs:返回輸出設備的總數
seek accuracy:返回定位某幀的精確度,0表示精確定位,1表示與所要定位的幀的誤差不大於1幀
slow play rate:返回慢放的播放速度,單位為幀每秒
uses files:如果復合設備使用的數據保存在文件中則返回真
uses palettes:如果設備使用調色板則返回真
windows:返回設備支持的可以同時顯示的窗口數量
Capture:將幀緩沖的數據拷貝到指定的文件中。digital-video支持該命令。
at pathname:指定所捕捉的幀緩沖中的圖像所要保存的路徑和文件名
at rectangle:指定所捕捉的幀緩沖中的圖像區域,默認為put命令的source參數指定的區域
注意:該命令可能會在播放的時候或者在需要資源的操作中失效。如果幀緩沖在實時地更新,則會暫停。
Close:關閉設備,釋放內存。當一個MCI設備的所有實例或文件都關閉的時候,該MCI設備被卸載。所有設備支持該命令。
注意:如果要關閉所有的設備需如此:close all
Configure:顯示一對話框,以設置設備的某些屬性。digital-video支持該命令。
Copy:將數據拷貝至剪切板。digital-video支持該命令。
at rectangle:指定要拷貝的幀緩沖的區域,默認為整個幀緩沖
audio stream stream:指定該命令影響的當前工作組的音頻流,如果使用了該參數,又想拷貝視頻流,則必須指定」video stream」參數,默認為audio stream+video stream
from position:指定開始記錄點,默認為當前位置
to position:指定終點,該位置的視音頻流不被記錄,默認為當前工作組的終點
video stream stream:指定該命令影響的工作組中的視頻流,如果使用了該參數,又想拷貝音頻流,則必須指定」audio stream」參數
Cue:在播放或記錄之前執行該命令可以加快播放或記錄速度。digital-video,VCR和waveform-audio支持該命令。
from position:指定起始點
input:准備記錄。digital-video可以省略
noshow:准備播放,但不先顯示。
output:准備播放,如果input和output都沒指定,默認為output
preroll:預滾動到下一位置
reverse:指定為倒放
to position:指定終點
注意:如果設備正在播放、記錄或暫停則該命令會失敗。使用了」output」參數時,再使用」play」命令的」from」、」to」或」reverse」參數則會退出該命令,使用了」input」參數時,再使用」record」命令的」from」、」to」或」initialize」參數會退出該命令。
Cut:將工作區的數據剪切到剪切板。digital-video支持該命令。
at rectangle:指定每一幀的區域。默認為整個幀。當該參數被指定時,幀並不被刪除,代替原圖像信息的為黑色塊
audio stream stream:指定該命令影響的當前工作組的指定音頻流,如果使用了該參數,又想剪切視頻流,則必須指定」video stream」參數,默認為audio stream+video stream
from position:指定開始剪切點,默認為當前位置
to position:指定終點,終點並不被剪切,默認為工作組終點
video stream stream:指定該命令影響的當前工作組的指定視頻流,如果使用了該參數,又想剪切音頻流,則必須指定」video stream」參數,默認為audio stream+video stream
注意:在沒有調用」save」命令前,雖然播放的時候好像」cut」命令已經成功了,但只有當」save」命令被調用後該命令所作的刪除才會被寫入文件
Delete:從已打開的多媒體文件中刪除數據段。digital-video和waveform-audio支持該命令。
at rectangle:指定每幀刪除的區域。默認為整個幀。當該參數被指定時,幀並不被刪除,代替原圖像信息的為黑色塊
audio stream stream:指定該命令影響的當前工作組的音頻流。如果使用了該參數,又想刪除視頻流,則必須指定」video stream」參數,默認為audio stream+video stream
from position:指定開始位置,默認為當前位置
to position:指定終點,默認為工作組終點
video stream stream:指定該命令影響的當前工作組的視頻流,如果使用了該參數,又想刪除音頻流,則必須指定」video stream」參數,默認為audio stream+video stream
注意:在執行任何使用position參數的命令前,你可以使用」set」命令的」time format」參數來設定媒體的時間格式,如毫秒,幀等
Escape:將設備指定的信息傳送到某設備。videodisc設備支持該命令。
Freeze:終止視頻輸入或輸出,禁止視頻流從幀緩沖中獲得數據。dgital-video、video-overlay和VCR支持該命令。
at rectangle:指定區域。對於digital-video設備,在指定區域中的像素會遮罩覆蓋。rectangle的格式為X1 Y1 X2 Y2。X1 Y1為左上角坐標,X2 Y2指定寬度和長度
field:凍結指定的區域,該參數為默認的
frame:凍結整個幀
input:凍結輸入圖像的當前幀,不管當前正在播放還是暫停
output:凍結VCR的當前幀輸出。如果VCR在播放的時候執行該命令,則當前幀被凍結且VCR被暫停。如果VCE已暫停則當前幀被凍結。如果input和output都沒指定,則默認為output
outside:指定被凍結的為」at」參數所定義的區域外面部分
注意:要指定一個不規則區域,可以組合使用freeze和unfreeze命令。一些video-overlay設備會限制區域的復雜度
index:控制VCR設備實屏顯示。僅VCR設備支持
off:關閉實屏顯示
on:打開實屏顯示。顯示的項目為」set」命令的」index」參數指定的信息
Info:獲得設備信息,例如演算法,版權,所打開的文件,UPC等等。所有MCI設備都支持該命令。
audio algorithm:返回當前音頻壓縮演算法的名稱
audio quality;返回當前音頻壓縮質量的描述。如果將其quality設為某一值而未使用其指定值可能會返回unknown
right:返回MIDI文件的版權信息
file:返回復合設備使用的文件名。如果設備沒有打開一個文件而且」load」命令也沒被用過,那麼返回一個空字元串
info identity:為CD產生一個唯一的序列號
info upc:產生CD的UPC(Universal proct Code全球產品碼)
input:返回當前輸入設備的描述
name:返回sequence名字
output:返回當前輸出設備的描述
proct:返回該設備的描述。返回信息經常包括產品名稱和型號。返回信息經常是31個位元組或更小
still algorithm:返回當前靜態圖像壓縮演算法名稱
still quality:返回當前靜態圖像壓縮質量描述名。如果將其quality設為某一值而未使用其指定值可能會返回unknown
usage:返回工作組中視音頻數據的使用限制描述
version:返回設備驅動或硬體的版本
video algorithm:返回當前視頻壓縮演算法名稱
video quality:返回當前視頻壓縮質量描述名如果將其quality設為某一值而未使用其指定值可能會返回unknown
window text:返回設備使用的窗口的標題
List:返回視頻和音頻的數量和類型。digital-video和VCR支持該命令。
audio algorithm:返迴音頻壓縮演算法名稱
audio quality algorithm algorithm:返回」algorithm」指定的壓縮質量級別。如果」algorit

Ⅹ G.711的基本信息

它是國際電信聯盟ITU-T定製出來的一套語音壓縮標准,它代表了對數PCM(logarithmic pulse-code molation)抽樣標准,主要用於電話。它主要用脈沖編碼調制對音頻采樣,采樣率為8k每秒。它利用一個 64Kbps 未壓縮通道傳輸語音訊號。 起壓縮率為1:2, 即把16位數據壓縮成8位。G.711是主流的波形聲音編解碼器。
G.711 標准下主要有兩種壓縮演算法。一種是µ-law algorithm (又稱often u-law, ulaw, mu-law),主要運用於北美和日本;另一種是A-law algorithm,主要運用於歐洲和世界其他地區。其中,後者是特別設計用來方便計算機處理的。

閱讀全文

與g711演算法相關的資料

熱點內容
c語言中編譯和運行 瀏覽:999
畫流圖找循環編譯原理 瀏覽:133
oppo手機西瓜視頻的文件夾 瀏覽:867
騎手一般用哪個app 瀏覽:610
程序員老闆用什麼手機 瀏覽:848
比心app頭像不通過為什麼 瀏覽:105
加密幣市值前十走勢 瀏覽:190
單片機學習推薦課程 瀏覽:473
對數ln的運演算法則圖片 瀏覽:735
仿微博app源碼 瀏覽:781
怎麼取消調用app 瀏覽:545
程序員去哪裡求助 瀏覽:834
伺服器里的埠是什麼 瀏覽:975
aspnetjavaphp 瀏覽:399
程序員畢業時間 瀏覽:286
程序員用戶免費軟體 瀏覽:754
51單片機匯編語言指令 瀏覽:139
女程序員好難 瀏覽:688
三田壓縮機與電裝 瀏覽:710
重生細胞安卓版沒鍵盤怎麼玩 瀏覽:994