使用Expression Encoder 4 合并音頻
今天經(jīng)理讓我?guī)退粋€忙,把幾段音頻合并成一段,盡量做到音質(zhì)無損。之前我沒有接觸過這塊,就用Expression Encoder 4試了下,結(jié)果音質(zhì)非常好,特與大家分享下。
在 Visual Studio 2010 Ultimate + Expression Encoder 4中測試通過。
- Expression Studio 4 新特性
Expression Studio 4 新特性 摘自Soma博客中文版,原文地址:My favorite Expression 4 features。
2010年6月7日,在紐約的Internet Week上,我們發(fā)布了Expression Studio 4.
Expression 4 是一套專業(yè)設(shè)計工具,用來為桌面、移動設(shè)備和網(wǎng)絡(luò)應(yīng)用設(shè)計豐富的用戶體驗。
Expression 4有許多新的增強和令人興奮的功能,這里是其中我最喜歡的一些功能。
1. 將SketchFlow 原型發(fā)布到SharePoint
將基于Silverlight的SketchFlow項目發(fā)布到SharePoint為您提供了一種便捷的與團隊分享原型的方式。最棒的是,原型一旦被發(fā)布,審核人員就可以將他們的反饋意見直接發(fā)布回SharePoint,不僅設(shè)計人員可見,而且其他審核人員也能夠瀏覽。設(shè)計人員還能夠同時查看多位審核人員的反饋。這種協(xié)同審核的工作方式使得交互設(shè)計原型更加完善了。
2. Blend的新行為 (Behavior)
Expression Blend 4包含了一些新的行為,用于增強您的應(yīng)用設(shè)計流程。新的行為提供了更多的功能,同時又能使您始終專注于創(chuàng)作引人入勝的UI藝術(shù)。例如,使用這些新的行為,您將能夠充分利用多點觸摸、指定流暢的布局切換、定義條件邏輯以及更方便地與MVVM應(yīng)用模塊交互等等功能。還有一些新的行為是專為SketchFlow設(shè)計的, 包括保持屏幕狀態(tài)以及對Sketchflow動畫回放的更多控制。
3. 設(shè)計UI無需代碼
Expression Blend 4能幫助您設(shè)計許多復雜的布局而無需編寫任何代碼。
例子: 假設(shè)您希望創(chuàng)建一個放射形狀的列表,它的內(nèi)容像旋轉(zhuǎn)木馬一樣圍繞排列成圓形。使用Blend 4, 您無需編寫復雜的布局代碼,只需簡單地使用路徑畫出您想要的"形狀",Blend會自動將內(nèi)容都恰當?shù)財[放好。最棒的是,這不僅僅是一個設(shè)計時的功能,它同樣適用于數(shù)據(jù)驅(qū)動的列表并支持動畫。創(chuàng)建那些難以想象的復雜、豐富且極具創(chuàng)造力的布局,就如同繪制一條路徑一樣簡單。
4. 使用HTML & JavaScript編寫Expression Web插件
作為一個精通web的開發(fā)者,您可能更習慣使用web語言:JavaScript, HTML 和 CSS. 在Expression Web 4中我們提供了僅使用您已熟悉的web語言就能擴展應(yīng)用的方法。您現(xiàn)在可以僅使用HTML, CSS, JavaScript 和一個簡單的XML manifest 文件來添加您自己的菜單項、工具欄按鈕、控制板甚至對話框。您有自己的標記用來在頁面創(chuàng)建在線地圖嗎?有自定義的Twitter feed?現(xiàn)在您能夠很方便地擴展Expression Web來將這些內(nèi)容添加到您的任何站點中去。
5. 使用SEO Diagnostics改進您的搜索排名
新的SEO分析不僅包括普通的重復或缺失的標題、標記和header的檢查,還檢查搜索敏感文本內(nèi)容(比如鏈接文本和頁面標題),以確保他們不包含過于籠統(tǒng)、像"點擊這里"或"歡迎"等不能為您的頁面增加任何搜索價值的文本.
我們還提供了深入的幫助文檔來幫助您了解為何這些規(guī)則對獲得好的搜索排名非常重要。這些文檔讓我們的報告不僅僅是一個簡單的核查清單,還幫助您了解和掌握SEO藝術(shù)。
6. 編碼和廣播直播活動
使用Expression Encoder 4您可以以IIS Smooth Streaming 格式廣播直播視頻,以保證HTTP上使用Silverlight實現(xiàn)無間斷回放。選擇H.264 或 VC-1 輸出,配置流媒體的數(shù)量和大小,然后直接部署到運行著IIS Media Services的服務(wù)器上。這個經(jīng)重新設(shè)計的用戶接口使您能方便地從多個直播源和基于文件的內(nèi)容中進行選擇并創(chuàng)建高質(zhì)量的實時廣播輸出。
我們也利用這次發(fā)布的機會簡化了Expression產(chǎn)品家族,使其更貼近Visual Studio 2010產(chǎn)品家族。新的Expression 4 產(chǎn)品包括:
- Expression Web 4 專業(yè)版 (Professional)
- Expression Studio 4 高級版 (Premium)
- Expression Studio 4 旗艦版 (Ultimate)
現(xiàn)擁有Expression Studio 3或Expression Web 3 產(chǎn)品的用戶能免費升級到版本4產(chǎn)品: Expression Studio 4 Ultimate 和 Expression Studio 4 Web Professional. 請訪問Expression 站點了解詳情。
- 使用Expression Encoder 4 合并音頻
2.1、補習了點基礎(chǔ)知識后,我們進入正題。首先我們準備幾個待合并的音頻文件:
2.2、打開Expression Encoder 4:
2.3、創(chuàng)建一個Transcoding Project:
2.4、Ctrl + I導入一個音頻:來不及.wma
此時時間軸上會顯示出:來不及.wma
在這里可以播放:
2.5、將一個音頻追加到該音頻的后面(當然,放在前面或其他位置也可以):
此時時間軸上顯示了兩個音頻:
以同樣的方法,將所有待合并的音頻追加進去:
2.6、將輸出格式配置一下:
可以看到,除了Windows Media外,還支持MP4和IIS平滑流。
音頻質(zhì)量我們選擇:WMA Professional(不知道MIX視頻中的WMV High是哪一種呢?):
音頻中的模式選擇:VBR Quality:
這里現(xiàn)學現(xiàn)賣一下:)這些專業(yè)術(shù)語我也從來沒有接觸過:
1)CBR
CBR(Constants Bit Rate)即固定碼率,就是靜態(tài)(恒定)比特率的意思,CBR是一種固定采樣率的壓縮方式。優(yōu)點是壓縮快,能被大多數(shù)軟件和設(shè)備支持,缺點是占用空間相對大,效果不十分理想,現(xiàn)已逐步被VBR的方式取代。
固定碼率是一個用來形容通信服務(wù)質(zhì)量(QoS,Quality of Service)的術(shù)語。和該詞相對應(yīng)的詞是可變碼率或可變比特率(英文variable bit rate,縮寫VBR)。
當形容編解碼器的時候,CBR編碼指的是編碼器的輸出碼率(或者解碼器的輸入碼率)應(yīng)該是固定制(常數(shù))。當在一個帶寬受限的信道中進行多媒體通訊的時候CBR是非常有用的,因為這時候受限的是最高碼率,CBR可以更好的易用這樣的信道。但是CBR不適合進行存儲,因為CBR將導致沒有足夠的碼率對復雜的內(nèi)容部分進行編碼(從而導致質(zhì)量下降),同時在簡單的內(nèi)容部分會浪費一些碼率。
大部分編碼方案的輸出都是可變長的碼字,例如霍夫曼編碼或者游程編碼(run-length coding),這使得編碼器很難做到完美的CBR。編碼器可以通過調(diào)整量化(進而調(diào)整編碼質(zhì)量)來部分的解決這個問題,如果同時使用填充碼來完美的達到CBR。(有時候,CBR也指一種非常簡單的編碼方案,比如將一個16位精度的音頻數(shù)據(jù)流通過抽樣得到一個8位精度的數(shù)據(jù)流)。
2)VBR
VBR(Variable Bit Rate)動態(tài)比特率。也就是非固定的比特率,音頻編碼軟件在編碼時根據(jù)音頻數(shù)據(jù)的復雜程度即時確定使用什么比特率,這是以質(zhì)量為前提兼顧文件大小的編碼方式。
VBR也稱為動態(tài)比特率編碼,使用這個方式時,你可以選擇從最差音質(zhì)/最大壓縮比到最好音質(zhì)/最低壓縮比之間的種種過渡級數(shù),在MP3文件編碼之時,程序會嘗試保持所選定的整個文件的品質(zhì),將選擇適合音樂文件不同部分的不同比特率來編碼。主要優(yōu)點是可以讓整首歌的音質(zhì)都能大致達到我們的品質(zhì)要求,缺點是編碼時無法估計壓縮后的文件大小。
bitrate就是從波形里面采樣的頻率, 聲音自然是波形,就是振動。振動畫出來是擺動的曲線,電腦存的時就在這根曲線上,隔百分之幾秒取一個點,這個間隔時間就叫采樣率。
一般好的mp3采樣率是320kbps(就是每秒320千比特),320kbps以下波形破壞嚴重,很多非高音的細節(jié)都會消失,而320kbps的MP3編碼主要壓縮高音細節(jié).320kbps以上只有較少軟件支持編碼,并且音質(zhì)提升不明顯,不如采用無損壓縮.
采點越頻繁,波形還原就越精確,聲音就越不失真。VBR是一種不讓整個音樂取同一采樣率的技術(shù)。通過動態(tài)調(diào)整讓音樂復雜的地方采樣多些,簡單的地方采樣少些,這樣相同大小文件,聽上去質(zhì)量會更高。
VBR與傳統(tǒng)的CBR編碼的MP3不同,傳統(tǒng)的CBR(Constant BitRate)就是靜態(tài)比特率,CBR約定死了MP3的采樣率為固定值。一首MP3從頭至尾為某固定值如128KBit/s進行壓縮。而VBR則采取了一種全新的,全程動態(tài)調(diào)節(jié)技術(shù)的壓縮方法。當在低音段時,VBR會自動采用較低的比特率如32KBit/s對音質(zhì)進行壓縮;當在高音段時會用較高的比特率如224KBit/s對音質(zhì)進行壓縮;當在極高端時則采用最高320KBit/s進行壓縮。VBR MP3就是在控制文件大小的情況下,最大限度的提高了MP3的音質(zhì)。
CBR 和VBR的不同點:
(1)CBR:固定位率的FRAME的大小也是固定的,只要知道文件總長度,和幀長即可由播放每幀需26ms計算得出mp3播放的總時間,也可通過計數(shù)幀的個數(shù)控制快進,快退慢放等操作。
(2)VBR:VBR是XING公司推出的算法,所以在MP3的FRAME里會有"XING"這個關(guān)鍵字(現(xiàn)在很多流行的小軟件也可以進行VBR壓縮,它們是否遵守這個約定,那就不得而知了),它存放在MP3文件中的第一個有效FRAME里,它標識了這個MP3文件是VBR的。同時第一個FRAME里存放了MP3文件的FRAME的總個數(shù),這就很容易獲得了播放總時間,同時還有100個字節(jié)存放了播放總時間的100個時間分段的FRAME的INDEX。
立體聲設(shè)置為5.1聲道,目前還不支持7.1聲道:
在Clips選項卡中可以調(diào)節(jié)音頻的順序:
在Enhcane選項卡中可以做更細粒度的控制:
在Metadata選項卡中可以設(shè)置版權(quán)信息:
在Output選項卡中可以設(shè)置輸出路徑、安全信息、發(fā)布信息等:
2.7、Ctrl + E編碼并輸出:
編碼完成后在輸出目錄中可以找到合并好的音頻文件:
- 使用Expression Encoder 4 SDK合并音頻
微軟提供了Expression Encoder 4 SDK,使得開發(fā)人員可以編寫程序來完成在GUI完成中的功能,現(xiàn)在我們來試一試。MSDN Magazine有一篇文章專門講的Expression Encoder 3 SDK,非常值得一讀,比我這篇文章深入多了:)
還是使用剛才那些音頻文件,
3.1、創(chuàng)建一個控制臺程序,添加引用:
3.2、編碼方法:
代碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Expression.Encoder;
using Microsoft.Expression.Encoder.Profiles;
using System.Drawing;
namespace EncoderDemo
{
class EncoderDemo
{
private void OnProgress(object sender, EncodeProgressEventArgs e)
{
Console.Write("\b\b\b\b\b\b\b");
Console.Write("{0:F2}%", e.Progress);
}
/// <summary>
/// 編碼方法
/// </summary>
/// <param name="v_strSourceFileName">源文件名</param>
/// <param name="v_strOutPutPath">輸出目錄</param>
/// <param name="v_strMergeFileNames">待合并的文件,可以為多個</param>
private void fnEncoder(string v_strSourceFileName, string v_strOutPutPath, params string[] v_strMergeFileNames)
{
MediaItem src = new MediaItem(v_strSourceFileName);
//設(shè)置輸出文件屬性
//有些在GUI中的屬性如Mode、Quality等我沒有找到,你找到了嗎?請指教。
src.OutputFormat = new WindowsMediaOutputFormat();
src.OutputFormat.AudioProfile = new WmaAudioProfile();
src.OutputFormat.AudioProfile.Bitrate = new VariableConstrainedBitrate(128, 192);
src.OutputFormat.AudioProfile.Codec = AudioCodec.WmaProfessional;
src.OutputFormat.AudioProfile.BitsPerSample = 24;
Job job = new Job();
job.MediaItems.Add(src);
//追加待合并的文件
foreach (string s in v_strMergeFileNames)
{
src.Sources.Add(new Source(s));
}
job.OutputDirectory = v_strOutPutPath;
//輸出編碼進度
job.EncodeProgress += new EventHandler<EncodeProgressEventArgs>(OnProgress);
Console.WriteLine("Encoding…");
job.Encode();
Console.WriteLine("Finished encoding.");
job.Dispose();
}
static void Main(string[] args)
{
EncoderDemo coder = new EncoderDemo();
coder.fnEncoder(@"E:\Music\來不及.wma", @"E:\ExpressTest", @"E:\Music\23秒,32年.wma", @"E:\Music\時間海.wma", @"E:\Music\相反的我.wma");
}
}
}
3.3、執(zhí)行后在控制臺上會打印編碼進度,同時可以看到CPU占用率很高,此時多核心有了用武之地:
小結(jié):
這次偶然的機會我嘗試使用了下Expression Encoder 4,感覺不錯。Encoder雖然比不上一些專業(yè)軟件,但是其非常易用,編碼的效果也不錯,如果你感興趣,可以繼續(xù)深入研究,本文僅作拋磚引玉。微軟有一點做的非常好,就是出品的軟件經(jīng)常伴有SDK、Toolkits等,方便開發(fā)人員使用、擴展,Blend同時也提供了SDK,后面有時間我也嘗試一下:
最終編碼過的音頻文件音質(zhì)還不錯,基本上聽不出音質(zhì)損失,是一款不錯的音頻、視頻編輯軟件,而且可以錄制視頻,期待后續(xù)版本。








浙公網(wǎng)安備 33010602011771號