• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            大龍的博客

            常用鏈接

            統計

            最新評論

            Windows Media Format SDK

            Windows Media媒體內容采用的是ASF文件格式。Microsoft公司提供了Windows Media Format SDK,以支持以下三大功能:ASF文件的生成(包括ASF數據的流化)、ASF文件的編輯和ASF文件的播放(包括ASF媒體流的播放)。在開始編程之前,對SDK系統有個總體的認識和理解是必要的。(注:如果未作特別說明,本書所述的SDKWMF SDK均是指Windows Media Format SDK。)

            WMF SDK采用了面向對象的設計,是一套完全基于COM組件模型的高級開發包。這里說高級,意味著SDK屏蔽了ASF數據格式、網絡傳輸控制等較為底層的流媒體技術實現細節,留給開發者的只有比較上層的編程接口。

             

             

            2.1 WMF SDK系統結構

             

            如圖2.1SDK引入了一系列的對象,如生成器、讀取器、編輯器等。正是這些SDK對象屏蔽了Windows Media技術實現細節,使得應用程序開發者不需要了解太多的流媒體底層技術,也能開發出非常專業的流媒體應用系統。

            SDK引入的眾多對象中,最重要的莫過于圖2.1中列出的那三個了。其中,生成器一般用于將非壓縮的媒體數據編碼成Windows Media格式的數據。整個編碼過程非常簡單,只要通過一個叫Profile的對象配置好目標數據流格式,再將輸入數據的格式告訴生成器,然后依次將輸入數據按照既定的方式傳給生成器,剩下的事就都可以交給生成器了。生成器內部會根據Profile的配置,自動選擇一種Windows Media編碼器,然后對輸入數據進行壓縮編碼,并且完成打包,最終寫成文件或者向網絡流化。

             

            2.2 生成器的工作流程

             

            如圖2.2是生成器大致的工作流程。可以看到,生成器內部對輸入數據可能有一個預處理過程。因為特定編碼器能夠接受的數據格式總是有限的。如果輸入數據格式不能被編碼器接受,生成器內部會自動進行一個預處理過程。這些預處理工作包括視頻的圖像大小縮放、幀率調整、色彩空間轉換、水印疊加,音頻的采樣頻率轉換等等。另外,生成器本身不負責編碼后的數據的最終去向,而是把這個任務交給了一種叫接收器(Sink)的對象,比如交給文件接收器就可以將數據保存為文件,交給網絡接收器就可以將數據進行廣播,交給推接收器就可以將數據分發到運行Windows Media Services的服務器上等等。SDK采用這種“生成器 + 接收器”的設計是很先進的,它保證了SDK系統具有很強的擴展性。比如我們可以開發自己的接收器,按我們的要求決定壓縮數據的最終去向。

            如果你用過Microsoft公司官方發布的Windows Media內容的編碼軟件Windows Media Encoder的話,不要懷疑,通過WMF SDK的學習,你也可以開發出一個類似的編碼軟件。

            WMF SDK有兩個讀取器:異步讀取器和同步讀取器。兩個讀取器的功能類似,都是用于讀取ASF數據,不同的是它們的工作方式:異步讀取器內部自帶一個線程來把數據流推給應用程序;而同步讀取器內部沒有驅動數據流的線程,應用程序直接(在應用程序的線程中)通過同步讀取器上的接口函數來獲取數據。(注:異步讀取器通常簡稱為讀取器,而只在與同步讀取器對比時才強調“異步”特性。)

             

             

            2.3 讀取器的工作流程

             

            默認情況下,讀取器輸出一種非壓縮格式的數據。也就是說,讀取器內部會自動選擇合適的解碼器對ASF流數據進行解壓縮,如圖2.3。當然,通過適當的設置,讀取器也可以輸出ASF流數據原有的壓縮格式。

            值得注意的是,異步讀取器在各個版本的SDK中都能使用;而同步讀取器是在9系列的SDK中才開始有的。之所以增加同步讀取器,是因為數據的同步讀取模式在一些特殊的場合下較有優勢,比如在一些進行內容編輯的應用程序中,使用同步讀取器可以快速讀取指定位置的一部分數據。另外,同步讀取器通過直接的接口函數調用來提供數據,使用起來也比較簡單。當然,同步讀取器也有明顯的不足,比如不支持讀取網絡文件,不支持DRM(數字版權管理)等等。因此,在絕大多數ASF文件讀取的場合下還是使用異步讀取器。

            最后來簡單介紹一下編輯器。說是編輯器,大家不要誤會它能做媒體內容的修改。其實它只能編輯一些元數據。所謂元數據,就是這個媒體內容的標題、描述、作者、版權等信息。

            posted on 2007-11-26 23:26 大龍 閱讀(1024) 評論(0)  編輯 收藏 引用

            久久一区二区免费播放| 中文字幕亚洲综合久久| 香蕉aa三级久久毛片| 成人综合久久精品色婷婷| 无码久久精品国产亚洲Av影片| 久久久久人妻一区精品色| 精品久久人人做人人爽综合 | 久久精品人人做人人爽电影蜜月 | 三级片免费观看久久| 色88久久久久高潮综合影院| 久久国产精品99久久久久久老狼| 欧美日韩精品久久久免费观看| 人妻精品久久无码区| 久久精品国产一区二区电影| 久久精品卫校国产小美女| 国产精品九九久久精品女同亚洲欧美日韩综合区 | 久久偷看各类wc女厕嘘嘘| 7777精品久久久大香线蕉| 精品一区二区久久久久久久网站| 国产亚洲精午夜久久久久久| 伊人久久综合无码成人网| 国产巨作麻豆欧美亚洲综合久久 | 久久精品国产欧美日韩99热| 国产精品久久影院| 亚洲香蕉网久久综合影视| 久久国产乱子伦精品免费午夜| 国内精品伊人久久久久AV影院| 日本五月天婷久久网站| 色婷婷综合久久久久中文字幕| 91久久香蕉国产熟女线看| 99久久婷婷免费国产综合精品| 日韩人妻无码一区二区三区久久| 久久婷婷五月综合97色直播| 久久本道综合久久伊人| 欧美777精品久久久久网| 久久国产亚洲精品麻豆| 精品亚洲综合久久中文字幕| 精品国产福利久久久| 国産精品久久久久久久| 久久精品无码一区二区日韩AV | 一级女性全黄久久生活片免费|