テスト用各種mp3の作成方法
仕事とは関係なく、テスト用にmp3ファイルを各種作成したことがありました。
だれかいる人がいるかもしれないので、lameのwrapperを置いておきます。
mp3用(lameのwrapper)
これをwritemp3として保存して、
writemp3 hoge.mp3 1
とすると、hoge.mp3をMPEG 1 layer 3で、サンプリングレート高中低、ビットレート高中低、モード(モノラル、ステレオ、ジョイントステレオ、デュアルモノ、フォースMS)、固定ビットレート+可変ビットレート(品質高中低)の組み合わせで変換し、作成します。
最初のhoge.mp3は別にlameが読めればなんでもいいです。
#!/bin/bash # writemp3 -- make mp3 files from original mp3 # Usage # writemp3 original-file {1:MPEG 1 layer 3, 2:MPEG 2 layer 3, 3:MPEG 2.5 layer3} # if number is not given, treat as 1 # Author:fu7mu4 # Licence:NEW BSD LICENCE # Var ORGMP3=$1 # source file MPEGVER=$2 # 1: MPEG1 Layer3 2: MPEG2 Layer3 3:MPEG3 Layer3 LOW="1" MID="2" HIGH="3" STR[$LOW]="1LOW_" STR[$MID]="2MID_" STR[$HIGH]="3HIGH" MONO="1" STER="2" JOINT="3" DUAL="4" FORCE="5" TYPE[$MONO]="1MONO_" TYPE[$STER]="2STERO" TYPE[$JOINT]="3JOINT" TYPE[$DUAL]="4DUAL_" TYPE[$FORCE]="5FORCE" STYPE[$MONO]="m" STYPE[$STER]="s" STYPE[$JOINT]="j" STYPE[$DUAL]="d" STYPE[$FORCE]="f" #if $MPEGVER is not given, treat as MPEG1 MPEGSTR="MPEG1.0" SAMPLE[$LOW]="32" SAMPLE[$MID]="44.1" SAMPLE[$HIGH]="48" BITRATE[$LOW]="32" BITRATE[$MID]="128" BITRATE[$HIGH]="320" if [ $MPEGVER == "2" ]; then MPEGSTR="MPEG2.0" SAMPLE[$LOW]="16" SAMPLE[$MID]="22.05" SAMPLE[$HIGH]="24" BITRATE[$LOW]="8" BITRATE[$MID]="128" BITRATE[$HIGH]="160" fi if [ $MPEGVER == "3" ]; then MPEGSTR="MPEG2.5" SAMPLE[$LOW]="8" SAMPLE[$MID]="11.025" SAMPLE[$HIGH]="12" BITRATE[$LOW]="8" BITRATE[$MID]="48" BITRATE[$HIGH]="64" fi CBR="0" VBR1="1" VBR2="2" VBR3="3" BRTYPE[$CBR]="0CBR---" BRTYPE[$VBR1]="1VBR-LQ" BRTYPE[$VBR2]="2VBR-MQ" BRTYPE[$VBR3]="3VBR-HQ" VBROP[$VBR1]="9" VBROP[$VBR2]="4" VBROP[$VBR3]="0" for s in $LOW $MID $HIGH ; do for b in $LOW $MID $HIGH; do for mode in $MONO $STER $JOINT $DUAL $FORCE ; do #CBR #name output outputfilename="${MPEGSTR}_" outputfilename="${outputfilename}${TYPE[$mode]}_" outputfilename="${outputfilename}${BRTYPE[$CBR]}_" outputfilename="${outputfilename}${STR[$s]}${STR[$b]}_" outputfilename="${outputfilename}${SAMPLE[$s]}kHz" outputfilename="${outputfilename}${BITRATE[$b]}kbps.mp3" #make CBR file by lame lame -m "${STYPE[$mode]}" --resample "${SAMPLE[$s]}" \ -b "${BITRATE[$b]}" $ORGMP3 $outputfilename #VBR for v in $VBR1 $VBR2 $VBR3 ; do #name output outputfilename="${MPEGSTR}_" outputfilename="${outputfilename}${TYPE[$mode]}_" outputfilename="${outputfilename}${BRTYPE[$v]}_" outputfilename="${outputfilename}${STR[$s]}${STR[$b]}_" outputfilename="${outputfilename}${SAMPLE[$s]}kHz" outputfilename="${outputfilename}${BITRATE[$b]}kbps.mp3" #mae VBR lame -m "${STYPE[$mode]}" --resample "${SAMPLE[$s]}" \ -v -V "${VBEOP[$v]}" -b "${BITRATE[$b]}" \ $ORGMP3 $outputfilename done done done done
mp2用(twolameのwrapper)
こちらは、soxとtwolameのwrapperです。
MPEG1/22.5のlayer2を上と同じように生成します。
#!/bin/bash # writemp2 -- make mp2 files from original mp3 # Usage # writemp3 original {1 for MPEG 1, 2 for MPEG 2} # Author : fu7mu4 # Licence: NEW BSD LICENCE #Var ORGMP3=$1 # source file MPEGVER=$2 # 1: MPEG1 Layer3 2: MPEG2 Layer3 LOW="1" MID="2" HIGH="3" STR[$LOW]="1LOW_" STR[$MID]="2MID_" STR[$HIGH]="3HIGH" MONO="1" STER="2" JOINT="3" DUAL="4" FORCE="5" TYPE[$MONO]="1MONO_" TYPE[$STER]="2STERO" TYPE[$JOINT]="3JOINT" TYPE[$DUAL]="4DUAL_" STYPE[$MONO]="m" STYPE[$STER]="s" STYPE[$JOINT]="j" STYPE[$DUAL]="d" #if [ $MPEGVER == "1" ]; then MPEGSTR="MPEG1.0" SAMPLE[$LOW]="32000" SAMPLE[$MID]="44100" SAMPLE[$HIGH]="48000" BITRATE[$LOW]="32" BITRATE[$MID]="192" BITRATE[$HIGH]="320" #fi if [ $MPEGVER == "2" ]; then MPEGSTR="MPEG2.0" SAMPLE[$LOW]="16000" SAMPLE[$MID]="22050" SAMPLE[$HIGH]="24000" BITRATE[$LOW]="8" BITRATE[$MID]="40" BITRATE[$HIGH]="144" fi CBR="0" VBR1="1" VBR2="2" VBR3="3" BRTYPE[$CBR]="0CBR---" BRTYPE[$VBR1]="1VBR-LQ" BRTYPE[$VBR2]="2VBR-MQ" BRTYPE[$VBR3]="3VBR-HQ" VBROP[$VBR1]="-10" VBROP[$VBR2]="0" VBROP[$VBR3]="+10" for s in $LOW $MID $HIGH ; do for b in $LOW $MID $HIGH; do for mode in $MONO $STER $JOINT $DUAL ; do #CBR #name output outputfilename="${MPEGSTR}_" outputfilename="${outputfilename}${TYPE[$mode]}_" outputfilename="${outputfilename}${BRTYPE[$CBR]}_" outputfilename="${outputfilename}${STR[$s]}${STR[$b]}_" outputfilename="${outputfilename}${SAMPLE[$s]}Hz" outputfilename="${outputfilename}${BITRATE[$b]}kbps.mp2" #make CBR file by lame sox "$ORGMP3" -r "${SAMPLE[$s]}" - | \ twolame -r -s "${SAMPLE[$s]}" -b "${BITRATE[$b]}" \ -m "${STYPE[$mode]}" - "$outputfilename" #VBR for v in $VBR1 $VBR2 $VBR3 ; do #name output outputfilename="${MPEGSTR}_" outputfilename="${outputfilename}${TYPE[$mode]}_" outputfilename="${outputfilename}${BRTYPE[$v]}_" outputfilename="${outputfilename}${STR[$s]}${STR[$b]}_" outputfilename="${outputfilename}${SAMPLE[$s]}Hz" outputfilename="${outputfilename}${BITRATE[$b]}kbps.mp2" #mae VBR sox "$ORGMP3" -t raw -r "${SAMPLE[$s]}" - | \ twolame -r -s "${SAMPLE[$s]}" -b "${BITRATE[$b]}" \ -m "${STYPE[$mode]}" -V "${VBEOP[$v]}" - "$outputfilename" done done done done