• 沒有找到結果。

QT 視窗程式介紹

第三章 MPEG-4 串流軟體設計與規劃

第二節 QT 視窗程式介紹

及”Open Source”及其他相關特性,本系統選用了 QT 作為 Streaming 平 台的視窗程式設計架構。 data type,並且整合 BSD socket ,I/O control,及一些在視窗程式設計

上常見的功能,可以把它視為一種提供與MFC,OWL 這些 library 相 似功能的 library。

QT 具有非常好的可移植性(Portable),QT 不只是可以在 Linux 中運作,也同樣可以運行在 Microsoft Windows 中,這也就是說,利 用 QT 編寫出來的程式,在幾乎不用修改的情況下,就可以同時在 Linux 和 Microsoft Windows 中運行。 QT 的應用非常之廣泛,從 Linux 到 Windows 從 x86 到 Embedded 都有 QT 的影子。QT 提 供幾乎與 stand c++ library 相容的 library ,如 QTL ,File I/O,

network , compress ,composed graphic...,所以 Qt application 幾 乎 只要重新 compile 就可在其他 platform 上跑。

QT 有許多版本,其中企業版(Enterprise Edition)與專業版

(Professional Edition)可以使用於商用軟體,並提供相關的升級與技 術支援,企業版比專業版多了一些額外的模組,像是Open GL 支援等;

而Unix/X11 自由版(Free Edition)則可以在遵守 Q Public License 與 GNU General Public License 的前提下,開發自由與開放原始碼的軟 體;而 QT 嵌入版(Embedded Edition)是 QT 的嵌入式系統開發版本,

在遵守GNU General Public License 的前提之下可以免費使用。

QT 自由版支援 Unix/X11,像是 Linux 幾乎所有的 distribution 都

分的元件及功能,因此在設計 GUI 介面程式時便可如拼圖一般將程式 所需元件、版面配置一一拼湊,利用 QT Designer 可以用一種所見既 所得的方式,來產生 QT 程式的 GUI 介面的程式碼,通過增加一些 功能,就可以完成一個程式了。QT Designer 可直接畫出 .ui 檔,並 產生 project file 及 Makefile 然後再依作業系統進行編譯動作,可以 說非常方便。

QT Designer 使用 signal & slot 技術,使版面元件(widget)或是整 個程式能夠接受所發生的signal 去進行相對應的 slot 的動作。在此 signal & slot 和一般 signal & slot 最大的不同之處在於 QT Designer 的 signal & slot 技術乃是採用即時處裡模式,如此可降低程式行為的 複雜度,也可避免發生指令碰撞的情形。

3-3 QT GUI 介面

第三節 現行 Streaming 軟體的介紹

在1995 年, Xing 這家公司所推出的 Streamworks 是第一個採用影 音串流的影音播放程式。爾後,串流媒體如怒火燎原般快速地散播開來,

厚植在我們日常生活中。目前在網路上流行的 Video Streaming 產品相當 多。在商業軟體部分,現今網際網路上影音節目播放所採用的Streaming 串流檔案格式主要可分 RealNetworks、Microsoft、Apple 三大串流平台。

RealNetwroks 為 RealMedia 格式(副檔名為.ra、.rm、.ram 等),Microsoft 為Windows Media Audio 或 Windows Media Video 格式(副檔名

為.wma、.wmv)。Apple 為 QuickTime 格式(副檔名為 .mov)。

在開放軟體方面,亦有許多的選擇,但由於受限於編碼解碼器的限制 及串流媒體的標準未定,開放軟體方面的資源顯得非常紊亂。基於對 Mpeg4 的支援及跨平台性,這裡主要介紹 VLC 和 Mpeg4IP 這兩套軟體。

一、 商業軟體:

1. RealNetworks 串流視訊方案:

由於 RealNetworks 發展串流媒體已經很久,產品線完整且 功能齊全,能提供專業使用者一次購足的全面解決方案。在串流 媒體的整個過程中,服務端的製作、傳送、伺服、到使用者端的 下載、播放, RealNetworks 在每一個環節都有相對應的產品,

且分別提供免費下載的 Basic 版和需要付費的 Plus 版, Plus 版 本雖然功能一應俱全,但高昂的價格也不是一般非專業使用者所 能負擔的。

Windows、Mac 及 Linux、Solaris、HP/UX 的串流媒體服務平台。 完整的產品線,從製作端的 Windows Media Author、 Windows Media ASF Indexer,到編碼用的 Windows Media Encoder,伺服 傳送內容用的 Windows Media Server,還有保護智產的

Windows Media Rights Manager,只是相較於 RealNetworks,在 各個產品的功能深度上都稍嫌不足。當然對一個完全免費的串流 平台,這已是非常難得了。

3. Apple 串流視訊方案:

以其在影像處理上的專長推廣 QuickTime 格式。Apple 的串 流平台在完整性上居於劣勢,由於Apple 本身只有 QuickTime (Darwin) Streaming Server (為一 Open source 的伺服器架構)及 Apple QuickTime Pro,使用者必須另外購買編碼程式來轉換影音 內容為 QuickTime 串流格式。如果要製作 live 的轉播,得再選購 Sorenson Broadcaster 來將內容串流出去。不過架構相較於

RealNetworks 還是便宜許多。

Apple 為了推廣其 QuickTime 格式更進一步開放其

QuickTime Streaming Server 的原始碼,企圖以開放軟體的力量 增進其影響力。

二、 開放軟體:

1. Mpeg4Ip:

MPEG4IP 是個由 Cisco 的幾位工程師所一起整合現行的開放 軟體資源所發展的Mpeg4 的視訊串流系統,包括 Mpeg4 Video 的製作、傳送和播放,並提供圖形化介面及串流視訊的下載功能。

其中串流的部分乃採用 Apple 所釋出的 Darwin Streaming Server 核心所完成的。Mpeg4IP 主要的目的是為了讓研發者可以 開發出 standard-based 的串流伺服端和使用者端。由於目前串 流視訊的規格跟通訊協定紊亂,導致一套串流系統只能對應一套 串流播放軟體的現象,Mpeg4IP 主張 standard-based 來提高不同 系統間的溝通性並減少串流的障礙。雖然是針對Linux 所發展的 系統,但現在亦移植到 Windows, Solaris, FreeBSD 和 Mac 等作 業系統上。

2. VideoLan:

VideoLAN 主要是為多媒體串流所開發的,跨平台性高,支援 的視訊來源和格式多樣化,由圖2-4 可知包括 Mpeg1、Mpeg2、

Mpeg4、DivX 的檔案,亦可以由 DVD、數位衛星頻道、數位電視 頻道、或特定影像擷取卡所擷取的影像作為來源,串流給不同作 業系統的使用者端。

軟體分為兩部分:VideoLan Client (VLC) 以及 VideoLan Server (VLS)。 VLC 是個多功能的跨平台多媒體播放器,支援 Linux、FreeBSD、Windows、Mac、BeOS、Solaris、QNX、Familiar Linux 等,現在亦將觸角延伸至嵌入式系統,提供 ARM-based、

MIPS-based 等手持設備多媒體的支援。VLC 除可以當作使用者 端,接收上來自於VLC 或 VLS 串流視訊,亦可以當個提供串流

器用途。相較於VLC 而言,VLS 支援的視訊來源較多,除了 VLC 所能提供的來源外,多了衛星電視、數位電視作為來源。

3-4 VLC 串流架構

除了強大的串流功能外,VideoLAN 的研發團隊亦提供論壇為 有興趣或有疑問的人作為交流的園地。這也是此計畫中,我們以 VLC 作為技術參考來源的主要原因。

相關文件