記一次簡(jiǎn)單的腳本使用(ffmpeg、shell根悼、IFS)

場(chǎng)景

? mac上想將avi格式的視頻轉(zhuǎn)mp3文件凶异,然后就是百度啊百度啊。

ffmpeg

? FFmpeg是一套可以用來(lái)記錄挤巡、轉(zhuǎn)換數(shù)字音頻剩彬、視頻,并能將其轉(zhuǎn)化為流的開(kāi)源計(jì)算機(jī)程序矿卑。采用LGPL或GPL許可證喉恋。它提供了錄制、轉(zhuǎn)換以及流化音視頻的完整解決方案粪摘。它包含了非常先進(jìn)的音頻/視頻編解碼庫(kù)libavcodec瀑晒,為了保證高可移植性和編解碼質(zhì)量,libavcodec里很多code都是從頭開(kāi)發(fā)的徘意。

? 接著安裝苔悦,因?yàn)閙ac中已經(jīng)有brew了,所以呢椎咧,直接brew installffmpeg玖详,然后就是complete;

ffmpeg的簡(jiǎn)單使用

音頻轉(zhuǎn)換:

1.轉(zhuǎn)換amr到mp3:

ffmpeg -i shenhuxi.amr amr2mp3.mp3

2.轉(zhuǎn)換amr到wav:

ffmpeg -acodec libamr_nb -i shenhuxi.amr amr2wav.wav

3.轉(zhuǎn)換mp3到wav:

ffmpeg -i DING.mp3 -f wav test.wav

4.轉(zhuǎn)換wav到amr:

ffmpeg -i test.wav -acodec libamr_nb -ab 12.2k -ar 8000 -ac 1 wav2amr.amr

ffmpeg.exe -i PA003.wav -ar 8000 -ab 12.2k -ac 1 target.amr  此方法驗(yàn)證通過(guò) 
文章來(lái)自http://blog.csdn.net/tylz04/article/details/9041739
測(cè)試程序下載:http://files.cnblogs.com/xiaofengfeng/WavConvertAmr.zip 已測(cè)試過(guò)將WAV轉(zhuǎn)AMR格式勤讽。
下載地址http://ftp.pconline.com.cn/d56bb83a0a66440d54ef5473f548e4b9/pub/download/201010/ffmpeg-20131021.zip

5.轉(zhuǎn)換wav到mp3:

ffmpeg -i test.wav -f mp3 -acodec libmp3lame -y wav2mp3.mp3

實(shí)踐

? 難道你要一個(gè)程序員command+c/v蟋座,然后就想到了shell腳本,吭哧吭哧的開(kāi)車(chē)脚牍。

shell腳本實(shí)踐

1向臀、寫(xiě)好自己的 腳本,比如aa.sh

2诸狭、打開(kāi)終端 執(zhí)行券膀,方法一: 輸入命令 ./aa.sh ,

方法二:直接把 aa.sh 拖入到終端里面君纫。

注意事項(xiàng):

如果 沒(méi)有成功報(bào)出問(wèn)題::

Permission denied。就是沒(méi)有權(quán)限芹彬。

解決辦法:

修改該文件aa.sh 的權(quán)限 :使用命令:

chmod 777 aa.sh 蓄髓。

shell代碼

function getdir(){
    IFS=$'\n';
    for element in `ls $1`
    do  
        dir_or_file=$1"/"$element
        if [ -d $dir_or_file ]
        then 
            getdir $dir_or_file
        else
            ffmpeg -i $dir_or_file $dir_or_file.mp3
            echo $dir_or_file
        fi  
    done
}
root_dir="/Users/y/Documents/y/Prepare/audio"
getdir $root_dir

補(bǔ)充一下

if...fi 語(yǔ)句的基本控制語(yǔ)句,它允許Shell有條件作出決定并執(zhí)行語(yǔ)句舒帮。

語(yǔ)法

if [ expression ]
then
   Statement(s) to be executed if expression is true
fi

Shell expression求值会喝。如果結(jié)果值是true,給定statement被執(zhí)行玩郊。如果 expression 為false 肢执,則沒(méi)有語(yǔ)句將不會(huì)被執(zhí)行。大部分的時(shí)候译红,會(huì)使用比較操作符決策蔚万。

關(guān)注對(duì)括號(hào)和表達(dá)之間的空間。這個(gè)空間是強(qiáng)制性的临庇,否則語(yǔ)法錯(cuò)誤。

如果expression 是一個(gè)shell命令昵慌,那么它會(huì)被假定如此假夺,如果它執(zhí)行后返回0。如果它是一個(gè)布爾表達(dá)式斋攀,那么返回true已卷。

例子:

#!/bin/sh

a=10
b=20

if [ $a == $b ]
then
   echo "a is equal to b"
fi

if [ $a != $b ]
then
   echo "a is not equal to b"
fi

語(yǔ)法

for var in word1 word2 ... wordN
do
   Statement(s) to be executed for every word.
done

var是一個(gè)變量,word1 到 wordN 是由空格分隔的字符(字)序列的名稱(chēng)淳蔼。每次for 循環(huán)的執(zhí)行侧蘸,變量var的值被設(shè)置為下一個(gè)單詞的列表中的字,word1 到 wordN 鹉梨。

例子:

下面是一個(gè)簡(jiǎn)單的例子讳癌,它使用for循環(huán)跨越通過(guò)給定的數(shù)字列表:

#!/bin/sh

for var in 0 1 2 3 4 5 6 7 8 9
do
   echo $var
done

這將產(chǎn)生以下結(jié)果:

0
1
2
3
4
5
6
7
8
9
  • 注意:一開(kāi)始沒(méi)有加IFS=$'\n'的時(shí)候,遍歷文件名帶空格的時(shí)候存皂,會(huì)將空格符單做分隔符晌坤,然后拆成多個(gè)文件。
  • 原因:默認(rèn)情況下'\n'會(huì)被當(dāng)做分隔符進(jìn)行解析旦袋,通過(guò)IFS骤菠,可以會(huì)略掉'\n',這就是問(wèn)題的原因嘍。
參考

http://blog.csdn.net/whuslei/article/details/7187639

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末疤孕,一起剝皮案震驚了整個(gè)濱河市商乎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌祭阀,老刑警劉巖鹉戚,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鲜戒,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡崩瓤,警方通過(guò)查閱死者的電腦和手機(jī)袍啡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)却桶,“玉大人境输,你說(shuō)我怎么就攤上這事∮毕担” “怎么了嗅剖?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)嘁扼。 經(jīng)常有香客問(wèn)我信粮,道長(zhǎng),這世上最難降的妖魔是什么趁啸? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任强缘,我火速辦了婚禮,結(jié)果婚禮上不傅,老公的妹妹穿的比我還像新娘旅掂。我一直安慰自己,他們只是感情好访娶,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布商虐。 她就那樣靜靜地躺著,像睡著了一般崖疤。 火紅的嫁衣襯著肌膚如雪秘车。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天劫哼,我揣著相機(jī)與錄音叮趴,去河邊找鬼。 笑死权烧,一個(gè)胖子當(dāng)著我的面吹牛疫向,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播豪嚎,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼搔驼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了侈询?” 一聲冷哼從身側(cè)響起舌涨,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎扔字,沒(méi)想到半個(gè)月后囊嘉,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體温技,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年扭粱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了舵鳞。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡琢蛤,死狀恐怖蜓堕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情博其,我是刑警寧澤套才,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站慕淡,受9級(jí)特大地震影響背伴,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜峰髓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一傻寂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧携兵,春花似錦崎逃、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)勒葱。三九已至浪汪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間凛虽,已是汗流浹背死遭。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留凯旋,地道東北人呀潭。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像至非,于是被迫代替她去往敵國(guó)和親钠署。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容