非常喜欢周老师介绍的台北爱乐电台(墙外网址)~摘一段豆瓣上的广告词:
1995年11月9日正式开播的台北爱乐电台,是一个专业的古典及爵士类音乐的电台,系统、专业的介绍古典、爵士音乐,是最好的华文音乐电台,节目内容丰富,主持专业而富亲和力。对于古典的学习、欣赏有很好的指导作用。听多了电台浮躁喧嚣的流行音乐节目,是一个不可多得的古典音乐花园,就像他们的一句广告 词:“最吵的时候,你最好的选择,爱乐电台给你最想听的声音”。
最好的华文音乐电台,因为有雷光夏、Zoe(室内闲话)、沈鸿元(台北爵士夜)、彭广林(什么是音乐)、蓝祖蔚(电影最前线)……
很自然就萌生了把喜欢的节目存到 iPod 里面,在上下班等公交的时候之类的场合用来杀时间的念头。发现 Linux 有很多经典的媒体工具可以支持我的需要,于是小研究了一下,写了个小脚本~
遇到的问题:
- 录制的源网址是一个大陆网站提供的,输出的是 Microsoft ASF 格式的数据。所以要用 ffmpeg 转一下格式,但 Ubuntu 源里面的 ffmpeg 不支持 mp3,需要自己解决一下,具体看这里。
- mplayer 不能设置网络节目录制的时间,貌似可以设置播放了多少帧之后停止,但我没有试成功。所以要另外装个 timeout 工具,但是这个工具好像不能用 Ctrl +C 杀掉……
再考虑到网络传输的延时,所以最后的思路是:用 timeout 设置一个 mplayer 的超时时间,比实际需要的多 30 秒,然后用 ffmpeg 转换格式,同时设置准确的持续时间。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #!/bin/bash DUMPFILE=/tmp/tmpdump$$ function usage() { echo -e "Usage: `basename $0` [duration] [duration] is the time your want to record specified in minutes." exit 1 } if [ "$#" == "0" ]; then usage fi LIMIT=$(($(($1*60))+30)) echo "Start to record, please wait for $1 minutes..." timeout $LIMIT mplayer http://radio.gigigaga.com/fm997 -dumpstream -dumpfile $DUMPFILE > /dev/null 2>&1 echo "Record finished, outputing..." ffmpeg -y -t $(($1*60)) -i $DUMPFILE $HOME/`date +%Y%m%d%H%M`.mp3 > /dev/null 2>&1 rm -f $DUMPFILE echo "done" |
我把这个脚本取名为 netrec,于是直接执行
就可以即时录制 30 分钟的节目了~录制完毕后,它会生成一个以日期命名的 mp3 文件到主目录下。
这里(鸣谢 ptt 网友 demintree 帮我提供)有台北爱乐电台的节目表,结合 cron,就可以在有事情的时候也不会落下按时播出的喜欢的节目了~
也许也可以调 amarok、rhythmbox 之类的 iPod 插件把 mp3 直接输出到 iPod 里面,但 Linux 始终没有对 iPod 原生支持特别好的软件,经常弄乱我的封面,所以就不考虑了~
发现 mplayer + ffmpeg 的功能很好很强大~以前只是拿它来看片子。深圳天威宽带的网站有在线电视提供,下次有空的时候再看看能不能录一下球赛什么的~




发表评论