2012-01-25 101 views
0

有沒有一種方法可以讓PHP(或任何運行在Linux網絡服務器上的)記錄(radiostation)的audiostream?是的,我尋找了很多,但我似乎無法找到像這樣的東西,儘管我確信我不能成爲第一個 - 對嗎?用網絡服務器記錄廣播/音頻流(asx/asf)

我的目標是錄製一個audiostream,然後在聽衆打開時切斷它的一部分,這樣他們可以在事後(和家人,朋友等)收聽自己。

因此,記錄,上傳,剪切和發佈會更好,因爲我有一些願意做切碎部分的志願者(我認爲我可以照顧)。也許有一種我還沒有找到的服務?

thnx任何relpy。

回答

3

我現在已經找到了這個網站:http://www.freelists.org/post/darkice/Using-cron-and-wget-for-hourly-archiving-Was-Ogg-Recording-and-Cutting,1

以防萬一:

以下的bash shell是由cron在小時推出:

#!/bin/bash 
#Go to the archive directory: 
cd /aa/icecast/archive 
#Stop the archiving for the last hour: 
kill `cat archivePID` 

#Start recording in the background (&) a new archive file of the stream "http://127.0.0.1:8000/stream.ogg": 
wget http://127.0.0.1:8000/stream.ogg & 

#Get the Process IS for the job we just started: 
echo $! > archivePID 

#Wait a few seconds to make sure the job has started and the archive file has been opened: 
sleep 5 

#Rename the current archive file to a name based on the date and time (YYYYMMDD-HHMM.ogg): 
mv stream.ogg `date +%Y%m%d-%H%M.ogg` 

這將運行在我們的冰盒上,並通過本地IP 127.0.0.1,但它可以從任何連接到互聯網的 框(通過將127.0.0.1:8000更改爲流的URL)運行。

Wget打開與輸入流 (在我們的例子中爲「stream.ogg」)同名的輸出文件。但幾秒鐘後,腳本 將文件重命名爲基於當前日期和時間的名稱。 (Wget的 是無視這一點,因爲它是寫一個打開的文件句柄而 不是文件名)。

請注意,我們的流處於OGG格式,被命名爲「stream.ogg」,並 shell腳本反映這一點。如果您的數據流是mp3格式,或者被命名爲 而不是stream.ogg,則需要相應地更改腳本 (特別是wget命令和mv命令)。

希望有所幫助。和MP3流 -

問候,

約翰

我已經錄製AAC(?不熟悉這個東西是如何工作的或定義ASX流發送AAC數據)進行了測試。錄製好的和VLC播放都沒有問題。但是,ASX文件似乎受到已知網絡播放器(例如JWPlayer/Longtail)回放的太多損壞(邏輯上,因爲它是您派對的流)。但MP3流的錄製部分似乎不受此影響。

使用MP3和AAC == 45Mb vs 12Mb(每小時@ 96kbps - 我想)的使用不足。

希望能幫助某些人將約翰斯工作在這裏。

+0

希望把它放在這裏並不等於在某種程度上被獎勵得到一個減號:不是我爲什麼回答我自己的問題。 –