有没有办法让PHP(或在linux网络服务器上运行的任何东西)录制(无线电)的音频流?是的,我已经寻求了很多,但我似乎找不到类似的东西,虽然我确信我不能成为第一个 - 对吗?
我的目标是录制一个音频流,然后在听众开启时将其部分切碎,这样他们就可以听到自己(以及家人,朋友等)。
所以录制,上传,砍伐和发布会更好,因为我有一些志愿者愿意做切碎部分(我认为我可以照顾)。也许有一项我还没找到的服务?
任何relpy的Thnx。
答案 0 :(得分: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,但它可以从任何Internet连接运行 框(通过将127.0.0.1:8000更改为流的网址)。
Wget打开一个与输入流同名的输出文件 (在我们的例子中是“stream.ogg”)。但几秒钟后,脚本 根据当前日期和时间将文件重命名为名称。 (Wget的 因为它正在写一个打开的文件句柄,所以对此没有注意到 而不是文件名。)
请注意,我们的流采用ogg格式,名为“stream.ogg”,并且 shell脚本反映了这一点。如果您的流是mp3,或者已命名 除了stream.ogg以外的任何东西,你需要更改脚本 相应的(特别是wget命令和mv命令)。
希望有所帮助。
此致
约翰
我通过录制AAC(ASX流发送AAC数据? - 不熟悉这些东西如何工作或定义)和MP3流来测试它。两者都记录得很好,VLC也没有问题。但是,ASX文件似乎太过损坏(逻辑上,因为它是你所参与的一个流),可供已知的网络播放器(例如JWPlayer / Longtail)播放。但MP3流的录制部分似乎并没有受到影响。
使用MP3和AAC的偏低= = 45Mb对12Mb(每小时@ 96kbps - 我猜)。
希望能帮助那些让约翰斯在这里工作的人。