天天看點

杜比音頻和Microsoft Edge體驗

流式傳輸線上音頻和視訊已被注入了很多很棒的功能。 線上體驗不再僅限于兩聲道立體聲。 杜比數字增強技術(Dolby Digital Plus)是杜比(Dolby)的進階編解碼器,專門設計用于通過為流環繞聲媒體提供高保真,低延遲的解決方案來增強線上體驗,并且該編解碼器已作為Microsoft Windows 10的标準内置。

不需要任何特殊技巧或專用插件即可通過Web浏覽器體驗環繞聲,因為Dolby Digital Plus編解碼器像其他任何編解碼器一樣可用于HTML5音頻和視訊元素。 這意味着,假設您使用的網絡浏覽器和作業系統支援Dolby Digital Plus編解碼器,您現在就可以線上體驗使用杜比環繞聲媒體的樂趣。

HTML5功能檢測

如果您是Web開發人員,并且想為使用者提供環繞聲媒體,則需要確定Dolby Digital Plus編解碼器可用。 如果編解碼器不可用,則需要提供備用媒體流。

毋庸置疑,運作Windows 10和Microsoft Edge浏覽器的使用者将能夠欣賞杜比環繞聲媒體流,但是需要進行功能檢測才能向盡可能廣泛的閱聽人提供内容。

如果直接将媒體元素添加到HTML文檔中,現代Web浏覽器實際上可以代表您處理功能檢測。 以下HTML片段将嘗試播放Dolby Digital Plus編碼的視訊流,如果Dolby Digital Plus編解碼器不可用,它将退回到标準的立體聲編碼的視訊流。

<!-- A video player with standard playback controls -->

<video controls>

  <!-- Dolby Digital Plus -->

  <source src='movie_1.m4v'

          type='video/mp4;codecs="avc1.42E01E,ec-3"'>

  <!-- One or more alternative formats (fallbacks) -->

  <source src='movie_2.m4v'

          type='video/mp4;codecs="avc1.42E01E,mp4a.40.2"'>



  <div class='no-video-support'>

    <!-- The HTML5 <video> element is not supported -->

  </div>

</video>
           

如果要使用JavaScript處理功能檢測,則可以使用媒體元素公開的

canPlayType

函數。

var getDDSupport = function (callback) {

    

	if (video.canPlayType('audio/mp4;codecs="ec-3"') === '' || video.canPlayType('audio/mp4;codecs="ac-3"') === '') {

		

		supportDDPlus = false;

		callback();

		

	} else {

		

	    var audio = new Audio();

	    audio.muted = true;

	    audio.addEventListener('error', function () {

		    

	        supportDDPlus = false;

	        callback();

	        

	    }, false);

	    

	    audio.addEventListener('seeked', function () {

		    supportDDPlus = true;

		    callback();

	    });

	

	    audio.src = '/assets/silence.mp4';

	    audio.play();

	    

	    try {

			audio.currentTime = 2;

	    } catch (e) {

	    	//eslint-disable-line no-empty

	    }

	    

	}

};
           

就這麼簡單。 您也可以檢出所附的silence.mp4檔案,以在自己的測試中使用。 請注意,之是以使用Silence.mp4檔案是因為某些浏覽器傳回的是假陽性。 如果您以前使用過HTML5媒體元素,則可能已經對Web浏覽器中的這種功能檢測感到滿意。

注意:杜比數字+(Dolby Digital Plus)技術不僅限于視訊流。 如果願意,您可以向觀衆提供獨立的環繞聲音頻流。

環繞聲

那麼,環繞聲到底是什麼? 簡而言之,環繞聲音頻流通常包含六個或八個獨立的聲道。 它提供了一種使聽衆沉浸在動态3D音景中的方法,并且是電影院和家庭娛樂系統的事實上的标準。 相反,立體聲音頻流僅包含兩個單獨的聲音通道,而單聲道音頻流則包含一個單獨的聲音通道。

5.1環繞聲

5.1環繞聲音頻流包含六個單獨的聲道。

前三個聲音通道(LCR)位于聆聽者的前方,左側,中部和右側。 它們提供了大多數聲音,并且在大多數情況下與标準立體聲左和右聲道相容。 中央聲音通道通常用于對話,但是當電影中發生微妙的平移時,它也有助于使聲音居中。

接下來的兩個聲音通道(LS和RS)位于聽衆的後面。 它們在環繞聲音頻流中提供“環繞聲”,通常用于增強環境音景。 如果您想象一個電影場景,其中有人在森林中穿行,則可以使用LS和RS聲音通道為鳥叫,沙沙作響,陣陣風等提供其他聲音。

最後,在5.1設定中的第六個聲音通道(LFE)用于低頻效果。 LFE通道的主要目的是向一個或多個低音炮提供低頻聲音,通常是低于120Hz的任何頻率。 該頻道可提供巨大的胸部刺激體驗,以伴随螢幕上的大型爆炸等。

7.1環繞聲

7.1環繞聲音頻流擴充了5.1,增加了兩個額外的聲音通道(CL和CR),它們位于聽衆的兩側,總共提供了八個單獨的聲音通道。 這兩個額外的通道通常與前聲道(LCR)結合使用,以提供更大的聲音角度。

演講者位置

國際電信聯盟已經标準化了環繞聲揚聲器相對于聽衆的理想位置。 下圖顯示了理想的标準化揚聲器位置。

杜比音頻和Microsoft Edge體驗

左 (L)揚聲器和右 (R)揚聲器之間的角度為60度,中置 (C)揚聲器直接位于聽衆的前方。 左環繞 (LS)和右環繞 (RS)揚聲器的位置與中央(C)揚聲器大約110度。 由于低頻限制, 低頻效果揚聲器(LFE)(即低音炮)的位置不太重要,但通常放置在靠近收聽者的位置,有時直接位于收聽者的下方。

音頻制作

環繞聲音頻流的産生超出了本文的範圍,但是許多現代的聲音編輯軟體包(包括Audacity和Adobe Audition)允許您建立環繞聲音頻檔案并将其導出為WAV或AIFF檔案。 然後可以通過編碼器或Microsoft Azure Media Encoder之類的服務(請參閱下文)推送導出的檔案,以生成可通過Internet流式傳輸的高保真Dolby Digital Plus音頻和/或視訊檔案。

使用Microsoft Azure媒體編碼器進行編碼

Microsoft Azure媒體服務提供了一個優雅的,基于任務的解決方案,用于線上編碼Dolby Digital Plus音頻和視訊,并且Microsoft出色地為所有人提供了免費的Azure試用版。 除了免費試用外,編碼(撰寫時)的起價為每GB 1.99美元,這是物有所值的; 您将不再需要使用昂貴的桌面軟體來将您絕妙的Dolby Digital Plus環繞聲傳播給大衆。

下面的代碼描述了使用Azure服務和Dolby Digital Plus編碼器以程式設計方式對視訊檔案進行編碼所需的過程,但是假定您已經具有使用Azure服務和NET的Media Services SDK的經驗。

//

// Create the service context.

//



var context = new CloudMediaContext(

    new MediaServiceCredentials("accountName", "accountKey")

);



//

// Create the latest version of the processor.

//



var proc = context.MediaProcessors.

    Where(p => p.Name == "Azure Media Encoder").

    ToList().

    OrderBy(p => new Version(p.Version)).

    LastOrDefault();



//

// Load the configuration file.

//



var conf = File.ReadAllText("ddp720.xml");



//

// Create the job.

//



var job  = context.Jobs.Create("identifier");

var task = job.Tasks.addNew("identifier", proc, conf, TaskOptions.None);



task.InputAssets.Add(asset); // Assumes 'asset' has been loaded elsewhere.

task.OutputAssets.AddNew("identifier", AssetCreationOptions.StorageEncrypted);



//

// Start the job.

//



job.StateChanged += new EventHandler<JobStateChangedEventArgs>(StateChanged);

job.Submit();

job.GetExecutionProgressTask(CancellationToken.None).Wait();



var encoded = job.OutputMediaAssets[0]; // The encoded asset.



//

// State change handler.

//



void StateChanged(object sender, JobStateChangedEventArgs e) {

  switch (e.CurrentState) {

    case JobState.Finished: {

      Console.WriteLine("Done!");

      break;

    }

    case JobState.Canceling:

    case JobState.Processing:

    case JobState.Queued:

    case JobState.Scheduled: {

      Console.WriteLine("Processing...");

      break;

    }

    case JobState.Canceled:

    case JobState.Error: {

      // Handle the error or cancellation.

      break;

    }

    default: {

      break;

    }

  }

}
           

加載到程式中的配置檔案

ddp720.xml

如下。

<?xml version="1.0" encoding="utf-8"?>

<Preset Version="5.0">

  <Job />

  <MediaFile

    DeinterlaceMode="AutoPixelAdaptive"

    ResizeQuality="Super"

    AudioGainLevel="1"

    VideoResizeMode="Stretch">

    <OutputFormat>

      <MP4OutputFormat

        StreamCompatibility="Standard">

      <AudioProfile

        Condition="SourceContainsAudio">

        <DolbyDigitalPlusAudioProfile

          Codec="DolbyDigitalPlus"

          EncoderMode="DolbyDigitalPlus"

          AudioCodingMode="Mode32"

          LFEOn="True"

          SamplesPerSecond="44000"

          BandwidthLimitingLowpassFilter="True"

          DialogNormalization="-31">

          <Bitrate>

            <ConstantBitrate

              Bitrate="256"

              IsTwoPass="False"

              BufferWindow="00:00:00" />

          </Bitrate>

        </DolbyDigitalPlusAudioProfile>

      </AudioProfile>

        <VideoProfile

          Condition="SourceContainsVideo">

          <HighH264VideoProfile

            BFrameCount="3"

            EntropyMode="Cabac"

            RDOptimizationMode="Speed"

            HadamardTransform="False"

            SubBlockMotionSearchMode="Speed"

            MultiReferenceMotionSearchMode="Balanced"

            ReferenceBFrames="False"

            AdaptiveBFrames="True"

            SceneChangeDetector="True"

            FastIntraDecisions="False"

            FastInterDecisions="False"

            SubPixelMode="Quarter"

            SliceCount="0"

            KeyFrameDistance="00:00:05"

            InLoopFilter="True"

            MEPartitionLevel="EightByEight"

            ReferenceFrames="4"

            SearchRange="64"

            AutoFit="True"

            Force16Pixels="False"

            FrameRate="0"

            SeparateFilesPerStream="True"

            SmoothStreaming="False"

            NumberOfEncoderThreads="0">

            <Streams

              AutoSize="False"

              FreezeSort="False">

              <StreamInfo

                Size="1280,720">

                <Bitrate>

                  <ConstantBitrate

                    Bitrate="5200"

                    IsTwoPass="False"

                    BufferWindow="00:00:05" />

                </Bitrate>

              </StreamInfo>

            </Streams>

          </HighH264VideoProfile>

        </VideoProfile>

      </MP4OutputFormat>

    </OutputFormat>

  </MediaFile>

</Preset>
           

該配置檔案可産生具有Dolby Digital Plus 5.1環繞聲的H.264 720p視訊。

EncoderMode

屬性

"DolbyDigitalPlus"

告訴編碼器使用Dolby Digital Plus,而

AudioCodingMode

"Mode32"

告訴編碼器使用5.1環繞聲。 同樣,必須将

LFEOn

屬性設定為

"True"

以啟用低頻效果(LFE)聲音通道。

本文結尾的“ 資源”部分提供了其他資訊。

使用Adobe Premiere Pro編碼

最新版本的Adobe Premiere Pro提供對Dolby Digital Plus的支援,使您可以将5.1和7.1環繞聲直接混入視訊中。

本文結尾的“ 資源”部分提供了其他資訊。

總結思想

作為線上音頻和視訊的狂熱消費者,我對杜比數字+感到興奮。 得益于Dolby出色的工作和Microsoft的支援,我們現在可以在網際網路上流式傳輸真正的Dolby環繞聲。

杜比音頻和Microsoft Edge體驗

線上遊戲,哦,是的,它們也可以從杜比環繞聲中受益,如娛樂性極高的Lux Ahoy遊戲所展示的那樣,但是請記住,您現在必須運作Windows 10和Microsoft Edge!

最後

圍繞其他專有Web技術可能存在一些争議,但是老實說,如果專有技術允許Dolby和Microsoft之類的公司向我們提供Dolby Digital Plus之類的編解碼器,您将不會聽到我的任何投訴。

資源資源

  • 杜比實驗室
  • 杜比開發人員
  • 微軟Azure
  • Microsoft Azure媒體服務
  • Microsoft Windows 10
  • Adobe Premiere Pro
  • Adobe Audition
  • 大膽
翻譯自: https://code.tutsplus.com/articles/the-dolby-audio-and-microsoft-edge-experience--cms-24269