2014年12月14日日曜日

[mp3] ffmpeg, lame の windows binary

ffmpeg
Zeranoe FFmpeg

lame
RareWares
→MP3→LAME Bundles

[mp3] フォルダ内にある mp3 ファイルのCBR 48 kbps, Sampling rate 44.1 KHz, Monaural に一括変換

フォルダ内にある mp3 ファイルのCBR 48 kbps, Sampling rate 44.1 KHz, Monaural に一括変換する bat ファイル
for %%a in (*.mp3) do (
 rem mp3 ファイルを CBR 48 kbps, 44.1 KHz, mono に変更する
 rename "%%a" "back_%%a"
 lame.exe -b 48 -a --resample 44.1 "back_%%a" "%%a"
)

[mp3] flv ファイルから音声を抜き出して mp3 に変換する

  1. flv ファイルから音声を抜き出し wav に書き出す
    ffmpeg.exe -i .\test.flv test.wav
    
  2. wav ファイルを mp3 に変換する
    lame.exe test.wav test.mp3
    
mp3 変換時に CBR (constant bitrate, 固定ビットレート) 48 kbps, Sampling rate (サンプリング周波数) を 44.1 KHz, Stereo からモノラル (Monaural) にする。
lame.exe -b 48 -a --resample 44.1 test.wav test.mp3
フォルダ内にある flv ファイルを mp3 に変換する bat ファイル
for %%a in (*.flv) do (
 rem flv ファイルから音声を抜き出して wav ファイルに書き出す
 ffmpeg.exe -i "%%a" temp.wav
 rem wav ファイルを CBR 48 kbps, 44.1 KHz, mono にして mp3 に書き出す
 rem %%~na はファイル名部分のみ切り出している
 lame.exe -b 48 -a --resample 44.1 temp.wav "%%~na.mp3"
 del temp.wav
)

2014年12月9日火曜日

[awk]BEGINブロック, ENDブロック

BEGIN ブロック
初期化用のコードを定義する
END ブロック
入力ファイルのすべての行の処理が終了した後に実行される。一般的には最終的な計算や、出力ストリームの最後に合計を出力するために使用される。
入力ファイルの各行にある 1 つめの要素を表示する。
test02.awk
BEGIN {

}
{
 print $1
}
END {

}
a.txt
500 1000 1000
500 1001 1001
500 1002 1002
550 1500 1500
550 1500 1500
645 1800 1800
720 2000 2000
実行結果
> awk -f test02.awk a.txt
500
500
500
550
550
645
720
入力ファイルがコロン ":" で区切られている場合。
d.txt
500:1000:1000
500:1001:1001
500:1002:1002
550:1500:1500
550:1500:1500
645:1800:1800
720:2000:2000
実行結果
> awk -f .\test02.awk .\d.txt
500:1000:1000
500:1001:1001
500:1002:1002
550:1500:1500
550:1500:1500
645:1800:1800
720:2000:2000
BEGIN ブロックで FS (Field Separator) を使って区切り文字を指定する。
test03.awk
BEGIN {
 FS=":"
}
{
 print $1
}
END {

}
実行結果
> awk -f .\test03.awk .\d.txt
500
500
500
550
550
645
720

[awk]スクリプトを指定

-f で awk スクリプトを指定する。 test01.awk に記載されたスクリプトに a.txt を入力し、結果を a_new.txt に出力する。
awk -f test01.awk a.txt > a_new.txt

[awk]基本文法

printコマンドがa.txtの各行に対し順次実行される。
awk "{ print }" a.txt
a.txt
1 Hello
2 Good morning
3 Good night
実行結果
> awk "{ print }" a.txt
1 Hello
2 Good morning
3 Good night