[認真] 透過ShineRadio進行網路廣播使用fb2k之 …

作者: SmallBeeWayn (喵喵叫的蜜蜂貓)   2009-12-19 02:16:44
※ [本文轉錄自 ShineRadio 看板]
作者: SmallBeeWayn (喵喵叫的蜜蜂貓職方法) 看板: ShineRadio
標題: [認真] 透過ShineRadio進行網路廣播使用fb2k之相容性探討
時間: Sat Dec 19 02:15:53 2009
透過ShineRadio進行網路廣播使用fb2k之相容性探討
The compatibility of Internet radio via ShineRadio using fb2k
SmallBeeWayn, published at PTT ShineRadio 12/19/2009
============================================================
Abstract
Shine Radio[1],一個開放版友申請,類似於日本livedoor[2]一般的廣播主機,
這一類主機提供充分的頻寬提供給分享者與聆聽者,來解決分享者的自有上傳頻寬不足
或是與聆聽者之間網路頻寬或是穩定性不足的問題,藉此降低門檻(對於分享者)並提昇
品質(對於聆聽者)。
在網路廣播的傳播過程中,除了音樂本身需要再編碼傳送之外,音樂的背景資訊通
常也會被傳輸,雖然不會影響聆聽享受,但是有時候總是會想要知道現在正在播放什麼
歌曲的時候。然而,相對於串流規格的單純,串流資訊的編碼反而複雜的多了。
本文以Shine Radio為主要測試對象,播放源及聆聽器則都使用foobar2000[3],編
碼方式則包含Mp3、Aac、Ogg,串流編碼器則選用edcast及foo_vorbis。
Introduce
一個網路電台的播放通常包含幾個主要環節
1.播放軟體: 原始音樂解碼的作業
2.串流編碼: 將解碼後的音樂再編碼為音樂串流
3.中繼主機: 將串流儲存複製然後發送到多個目標,以及連線管理等
4.接收緩存: 將串流接收之後儲存並等待解碼
5.解碼播放: 將串流解為音樂並播放
當然,在這之中串流的資訊也必須一併編碼傳送。除了包含Sample Rate,Channel
,Codec等這些必須讓接收端知道才能夠正確解碼的資訊外,歌曲標題等也在傳輸的項
目之內。然而,多數的網路串流格式都是設計給英語系國家(或嚴格的說, 英語國家)
,因此,編碼資訊內多不含編碼的Charset,也就是語言設定。這對於使用單一語言而
言或許無妨,然而現實則是,除了音源本身資訊所使用的Tag編碼可能不盡相同之外,
發送端;中繼端;接收端也可能使用了互不相容的預設編碼。
而對於以繁體中文(特指台灣)為主要語言,又經常聆聽日文歌曲的聽眾與播放者
而言,可說又是一個災難。當年中華民國政府在設計Big5字碼時,思慮不周[4],再
加上主流作業系統Windows開發者微軟的不作為[5]。這樣的結果,只要整個廣播的流
程中有一個小段使用Big5作業,在沒有安裝UAO[6]的情況下,日文假名必然的將會流
失。(有時裝了也沒用,若軟體沒有使用被UAO改過的c_950.nls[7]的時候)
Overview
foobar2000
其實原本只是一個普通的播放軟體,在電台應用上通常作為客戶端使用
然而,由於edcast及foo_request_http[8],以及其免費、高穩定性、可擴充
性,反而躍升成為在個人網路廣播電台領域中有相當佔有率的一種播放軟體。
另外,fb2k也是少數完全以Unicode方式運作的音樂播放軟體
fb2k目前已經發展到1.0beta, 本文所使用的軟體版本則是0.9.6.9。
edcast[9]
早先名叫oddcast,是音樂串流編碼的軟體,有Winamp,foobar內嵌版本
以及直接抓取系統聲音的Standalone版。支援將音源編碼成Lame Mp3,Aac+
,OggVorbis以及OggFLAC。輸出則支援Icecast2及Shoutcast。此外還支援麥
克風音源、音樂文字資訊格式設定、多輸出等功能,可說是相當的完善。
然而, 不知是哪一個環節的問題,edcast並不是運作在Unicode底下,
因此其metadata存在有亂碼問題(如果沒裝UAO的話),要解決這個問題的唯
一方法是安裝UAO。
這裡使用的版本為3.1.21 for foobar2000
foo_vorbisstreamer[10]
一個foobar only的串流編碼軟體,早先名為edcast Vorbis Streamer[11]
,事實上也就是edcast精簡過後的版本,刪減了oggvorbis以外的編碼、麥克
風支援、自訂metadata,並改用內嵌設定畫面。但是Vorbis Streamer解決了
edcast 的編碼問題,並不會有metadata亂掉的問題。
本文使用最新的1.1版
Icecast2[12]
主流廣播中繼軟體有兩個:Shoutcast[13]及Icecast2。
Shoutcast是由Nullsoft開發,主要用於自家的Winamp[14]軟體上,因為
已經很久沒有接觸Nullsoft的東西了,就不在本文多談。
Icecast2相對來說則比較沒有特定的服務限制, 使用者也相對較眾,小至
個人廣播站,大至如livedoor等大站都在使用[15]。Icecast2功能相當完善,
不過其內部設定已經超過,在此不加詳談。
本文之受測對象(ShineRadio)使用Icecast 2.3.2,預設編碼Big5
Lame Mp3
雖然已經過了非常多年,Mp3編碼格式仍然還是主流中的主流,由於可以
說「能放音樂的軟體一定都支援Mp3」,至今地位無可動搖,雖然它並不是一
優秀的廣播用串流音樂格式。其中Lame Mp3編碼技術更是大大延長Mp3格式的
壽命
Mp3的Tag允許使用任何編碼格式(Ansi,UTF-8,Unicode),而在網路串流
這個領域,似乎只有在使用Ansi,這或許是因為相容性問題或是Mp3串流格式
內部的問題。
Aac
雖然號稱要取代Mp3,然而因為專利以及很多各種原因,至今仍屬少數。
事實上在本文的測試中,甚至沒有辦法順利的編碼輸出。不過因為蘋果公司
的支持,Aac串流在國外已經有漸起之勢了。
OGG Vorbis
OGG是屬於Xiph.Org Foundation[16]旗下的一個分支項目,是屬於有損
音樂壓縮格式的範疇。幾個重要的特色是低流率下的高品質(遠超越Mp3,一般
也認為優於wma及aac),支援多聲道,以及最重要的,資訊強制使用UTF-8編
碼,並且當使用於網路電台時,將可以完整送出全部音樂資訊。
這些優勢使得一個設計完善的服務器及播放器(如fb2k),能夠完全無損
的將音樂資訊傳送。但也因為OGG這樣的特殊設計(以及沒有商業利益)的關
係,主流的播放軟體(jPhone, Media Blayer)幾乎都無法正常播放OGG,導致
OGG至今在廣播串流格式持續處於極少使用者的狀況
Measure
播放軟體及接收軟體固定為fb2k,分別安裝在兩台電腦,廣播主機則一律透過
ShineRadio。唯一的改變參數是編碼軟體,以及之後安裝UAO。
測試的項目包含:
1.foo_vorbisstreamer(OGG Vorbis)
2.edcast(Mp3)
3.edcast(Aac)
4.edcast(Mp3) with UAO
(1~3都是在沒裝UAO的狀況)
觀察的項目包含在 http://s-radio.whyza.net:8000/ 上的顯示狀況
以及播放端的顯示狀況
Summary
1.在SR的電台表上, 完全無法顯示歌名中的UTF-8字元
但是在接收端則正常顯示
另外, foo_vorbisstreamer不支援電台資訊打中文,一打fb2k就當
2.SR電台表上日文字呈現亂碼,接收端則是沒有字
電台資訊的中文字則能顯示無虞
3.無法建立連線....
順便測試丟給livedoor, 可以正常連線, 但是流率跳到240kbps, 就關掉了
4.SR電台表上完全正常了,接收端則一片亂碼
改用RadioBox[17]之後則可以正常接收資訊
Conclusion
Ogg串流的優勢就在於就算中間編碼出了什麼問題,也能確認接收端那邊收到
原始完整的資料,在本測試中也確實的印證了這一點。至於中文電台資訊的問題
,雖然沒有詳細研究,但問題出在編碼DSP而非中間端子的可能性比較高些
由於Ogg使用UTF-8資訊,或許是因為SR預設強制使用Big5的關係而導致解碼
錯誤。
相對而言,Mp3+Big5仍然是最穩定的方案,可以完整的支援電台資訊頁。
客戶端方面,fb2k會無法顯示透過UAO處理的Big5字並不令人意外,主要還是因為
fb2k使用了嚴格的Tag標準,需要額外的處理,細節就得另請高就了(我忘了)
Aac就很神奇了, 可能編碼器跟伺服器設定都有問題,Icecast早從2.2.0就開始支
援Aac了
Reference
1.PTT-視聽劇場-Radio_Club-Web_Radio-ShineRadio
2.http://ladio.net/
3.http://www.foobar2000.org/
4.http://goo.gl/c8DF
5.同上, 見"微軟 Code Page 950"一段
6.http://zh.wikipedia.org/zh-tw/Unicode%E8%A3%9C%E5%AE%8C%E8%A8%88%E7%95%AB
7.%WINDOW%\System32\c_950.nls, x64 OS 則在 %WINDOW%\SysWOW64 下有一份同樣
內容的副本
8.http://nurugunyo.hp.infoseek.co.jp/foobar.html
9.http://www.oddsock.org/tools/edcast/
10.http://goo.gl/hUwS
11.同上, Post #9
12.http://www.icecast.org/
13.http://www.shoutcast.com/
14.http://www.winamp.com
15.http://std2.ladio.net:8150/ , 雖然拿掉預設網頁, 但可以看到是Icecast
16.http://en.wikipedia.org/wiki/Xiph.Org_Foundation
17.http://holanet.pixnet.net/blog/post/350066
=======================
對不起...最近Paper看太多了....
不想看我閒扯的從Measure看起就夠了
作者: Kawasumi (大後悔時代です)   2008-01-10 21:23:00
可以點歌嗎
作者: littlecut (我會畫圖會更糟糕)   2009-02-19 06:55:00
PAPER?
作者: tingyun60426 (傻呆 is idiot)   2009-02-19 18:57:00
報紙吧!話說,小可愛也會來這板啊! ( ̄▽ ̄#)﹏﹏
作者: littlecut (我會畫圖會更糟糕)   2009-02-19 23:54:00
論文啦 囧

Links booklink

Contact Us: admin [ a t ] ucptt.com