・準備するもの ffmpeg 動画からの音声抽出に使います。 環境変数 FFMPEG で指定可能 mp4box mp4ファイルの分割に使用 環境変数 MP4BOX で指定可能 sox 分割したwaveファイルを結合するのに利用 環境変数 SOX で指定可能 aacplusenc 結合したwaveファイルをaacエンコードするのに利用 環境変数 AACENC で指定可能 AACENCPOT でオプション指定可能 mplayer サムネイル出力に利用 環境変数 MPLAYER で指定可能 ・使い方 waveファイルを読み込み判定 例: cmcheckwave out.wav mp4ファイルからwaveファイルをpipe出力し判定 例: ffmpeg -v 0 -i 録画ファイル.mp4 -f wav pipe: | cmcheckwave - mp4ファイル直接指定(-bが指定されたとして動作します) (プログラムにはmp4を読み込む機能はなく上記例のffmpegコマンドを発行しています。) cmcheckwave 録画ファイル.mp4 出力は標準出力に区切りとカット用のコマンドサンプルが出力されます。 例: mp4ファイルを読み込み一連のカット処理を実行。サムネイル出力も行う。 再処理のため判定内容ファイルを 録画ファイル.mp4-sh として保存します。 cmcheckwave -t -x 録画ファイル.mp4 > 録画ファイル.mp4-sh コマンドのオプション -b ファイル名 :出力するコマンドに使う元ファイル名を指定します。 指定されない場合mp4boxのsplitコマンドのみ出力します。 指定された場合はファイル名-new.mp4ファイルを作成するよう 一連のコマンドを出力します。 -m 無音判定秒数 :無音と判定する秒数を指定します デフォルト 250ms -v 判定ボリューム:無音と判定する最小ボリューム デフォルト 9 -a 音声の再エンコードコマンドを出力しない(MP4のカット結合のみ) -t サムネイル出力用コマンドを出力 -x コマンドテキストを出力せず、そのまま実行します。(-bのファイル名必須) --以下未実装 -c コマンドテキストを読み込み出力したサムネイルファイルの削除やmp4ファイルの リネームなどを行う一連のコマンドを出力(チェック済みファイルの置き換えに利用) 判定は無音の秒数のみでみるため不正確です。そのため出力をファイルに保存して修正 してCM判定を調整することができます。 例:ffmpeg -v 0 -i 録画ファイル -f wav pipe: | cmcheckwave -b 録画ファイル - > コマンドファイル コマンドファイル内の -- # 1745.11 1746.01 diff 14.92 CM # 1760.10 1761.61 diff 15.60 ^^^ この部分を書き換え 誤判定部分のCM文字列を書き換えます。 修正後のコマンドファイルに対して 例:cmcheckwave -b 録画ファイル コマンドファイル とすることでコマンドファイルの修正内容を反映した、一連のコマンドが再出力されます。