分享
 
 
 

如何在 FreeBSD 下压 MP3

王朝system·作者佚名  2006-11-23
窄屏简体版  字體: |||超大  

以下是在 FreeBSD 下先抓音轨再压 mp3 的方法,

至於直接由 CD 压的方法则在最後讨论。

目前在 FreeBSD 下有两个由 SCSI CDROM 抓音轨的程式,

一是 tosha-0.05 一是 cdd-1.0。

这两个程式你都可在 freebsd.csie.nctu.edu.tw 找到。

所支援的 SCSI CDROM 厂牌也有限,

如果不认得的厂牌会给你 Warning 的 message。

你可以先试压一首看看,再修改原程式。

tosha and cdd 抓的 size 有点不同,cdd 会小一点,但内容又没错。

tosha 与 DOS 下的 cdgrabp 抓的大小、内容一样,至少在我的

Pioneer DR-U124X 4.4 倍速 CDROM 是如此。

至於 IDE CDROM 的抓音轨程式就要靠你写了。

压 mp3 的程式即 l3enc linux 版,目前尚无 FreeBSD 版,

因此你要 load linux module,这部分就不讨论了,假设你会。

l3enc 的 register code 你可以问问你的朋友,应该不难找到。

假设你要压第一首,可以如此做:

tosha -t 1 -o tmp.raw

l3enc tmp.raw track01.mp3 -br 128000 -sr 44100

这样就产生 track01.mp3 的档案。play 看看有没有问题。

l3enc 有个 -hq 的参数,但压的速度是三倍慢。

下面这个 shell script 可以将整张 CD 一一压成 mp3。

所以,晚上睡前放一张,隔天就压好了。

你可以放在 background run,又不影响你的正常工作。

但是请你先看一下程式,测一下,确定你知道每一步骤在作什麽。

---------------- cut here -----------------------------------

#!/bin/sh

# usage: makemp3.sh [from_which_track]

#

LD_LIBRARY_PATH=/compat/linux/lib;export LD_LIBRARY_PATH

LOGFILE=./makemp3.log

TMPFILE=./tmp.raw

NTRACK=`tosha -i 2>&1 | tail -n 3 | head -n 1 | colrm 7`

if [ $# -gt 0 ]; then

CURRENT=$1

if [ ${CURRENT} -le 0 ]; then

CURRENT=1

break

fi

if [ ${CURRENT} -gt ${NTRACK} ]; then

echo "The request track larger than total number of track"

exit 0

fi

else

CURRENT=1

fi

cp /dev/null ${LOGFILE}

cp /dev/null ${TMPFILE}

tosha -i 2>> ${LOGFILE}

echo "total ${NTRACK} track" >> ${LOGFILE}

while [ ${CURRENT} -le ${NTRACK} ]

do

# if there is a file named "stop" on the current directory

# then the job will stop

if [ -f stop ]; then

echo "job stop at `date`" >> ${LOGFILE}

rm ${TMPFILE}

scsi -f /dev/rcd0c -c "1b 0 0 0 0 0"

exit 0

fi

if [ ${CURRENT} -ge 10 ]; then

OUTPUT="track${CURRENT}"

else

OUTPUT="track0${CURRENT}"

fi

echo "compress track ${CURRENT} begin at `date`" >> ${LOGFILE}

tosha -q -t ${CURRENT} -o ${TMPFILE} 2> /dev/null

l3enc ${TMPFILE} ${OUTPUT}.mp3 -br 128000 -sr 44100 > /dev/null 2>&1

echo "track ${CURRENT} completed at `date`" >> ${LOGFILE}

CURRENT=`expr ${CURRENT} + 1`

done

echo "job completed at `date`" >> ${LOGFILE}

rm ${TMPFILE}

scsi -f /dev/rcd0c -c "1b 0 0 0 0 0"

--------------------- cut here -----------------------------------

l3enc 这个程式是不从 stdin 读 wav or pcm data 的,当然你也可以这样作:

tosha -q -t 1 -o - | l3enc /dev/stdin track.mp3 -br 128000 -sr 44100

而且也可压出一样大小的 mp3,但是与用读暂存档的方式压出来的不一样。

而用 l3dec 反解回去的 pcm file 也不同。

原因我猜是 l3enc 这个程式用了 ftell 及 fseek。

当然,pipe 是无法作 seek 的,也无法知道 file size。

那有没有方式直接由 CD -> mp3? 我认为有两个方法,

一是改 linux shared library,骗 l3enc。

一是自己写个 audio file system,直接支援 audio track 的读取。

後者有点杀鸡用牛刀,但是比较有趣。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有