我运行一个小唱片标签,我们在亚马逊的S3上存储了一堆音频文件。我们希望它们以标准比特率转换为MP3。我读到NYTimes使用EC2转换所有PDF文件,因为我是一个讨厌的网络程序员,我很感兴趣。我想知道如何设置EC2实例并将其设置为转换文件,而不是下载所有文件并手动转换它们?我希望能够使用PHP从我的Web服务器控制它,创建虚拟LAMP堆栈并安装LAME编码器的方法是什么?
答案 0 :(得分:5)
如果你想转换你的音频文件(我假设.wav,因为它是一种非常常见的格式预格式转换)到mp3 LAME是一个固体编码器。
使用LAME非常不需要完整的LAMP堆栈,简单的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(可变,常数和平均比特率)需求的转换选项。
答案 1 :(得分:0)
虽然如果您已经在本地EC2中拥有文件,上述答案将起作用,您必须将每首歌曲从S3提取到EC2,或者转换为管道进行转换或者转换为临时文件,然后将其管道传回最多S3或将其存储在临时文件中,然后将其发送回EC2。
实际上没有使用过EC2,所以不确定你正在使用什么样的存储空间,但你应该有足够的空间来存储一个临时mp3。
您可能还想创建一些跟踪状态的方法,可能是在开始之前在您的存储桶上进行列表。
使用S3模块的perl脚本可能更适合,但是我懒得在这里输入所有内容:)。
答案 2 :(得分:0)
你可以使用Elastic MapReduce。虽然你必须玩一下才能把它作为输出吐出单独的文件。