2009-05-20 134 views
2

我運行一個小型唱片公司,我們有一堆存儲在亞馬遜S3上的音頻文件。我們希望它們以標準比特率轉換爲MP3。我閱讀了關於使用EC2轉換所有PDF的NYTimes,因爲我是一個書呆子的網絡程序員,所以我很感興趣。與其下載所有文件並手動轉換它們,我不知道如何設置EC2實例並將其設置爲轉換文件?我希望能夠使用PHP從Web服務器控制它,那麼創建虛擬LAMP堆棧並安裝LAME編碼器的方法是什麼?亞馬遜EC2上的MP3轉換

回答

5

如果你想轉換你的音頻文件(我假設.wav,因爲它是一種非常常見的格式預格式轉換)到MP3 LAME是一個堅實的編碼器。

一個完整的LAMP堆棧對於使用LAME來說是非常不必要的,一個簡單的shell腳本就足夠了。

這會將當前目錄中的所有* .wav文件轉換爲.mp3文件,如果它們沒有已經就地轉換的副本(LAME不關心打開輸出文件)。

#!/bin/bash 
for file in *.wav; do 
    dest="${file%wav}mp3" 
    if [[ -e "$file" ]] && [[ ! -e "$dest" ]]; then 
    lame "$file" "$dest" 
    fi 
done 

你會希望通過man lame針對您VBR轉換選項查看/ CBR/ABR(變量,常量和平均比特率)的需要。

+0

DEST =「$ {文件%WAV} MP3」 是編寫一個更清潔的方式:] – rmmh 2009-05-20 23:02:34

+0

感謝您的提示,更新腳本 – JensenDied 2009-05-20 23:14:12

0

雖然如果您已經擁有本地EC2中的文件,上述答案仍然有效,但您必須將每首歌曲從S3中提取到EC2中,無論是轉換爲管道還是轉換爲臨時文件,備份到S3或將其存儲在臨時文件中,然後將其發送回EC2。

還沒有真正使用過EC2,所以不知道你使用的是什麼樣的存儲,但是你應該有足夠的空間存儲一個臨時的mp3。

您可能還想創建一些跟蹤狀態的方式,可能是在開始之前在您的存儲桶中列出一個列表。

可能是一個使用S3模塊的Perl腳本會更適合,但我懶得在這裏輸入所有內容:)。

0

您可以使用Elastic MapReduce進行此操作。雖然你不得不花一點時間來讓它把單獨的文件作爲輸出。