TSファイルをCMカットする方法を説明します。FFmpegとの組み合わせでCMカットまで行う自作スクリプトについても紹介します。TSファイルからCMを検出するツールです。CMの開始終了位置が分かるだけで、これ単体ではCMカットはできません。本記事ではCM検出結果を元にFFmpegを使ってCMカットを行う方法を説明します(最後に自作スクリプトの紹介もします)。オリジナルのComskipはWindows用ですが、いくつかの方法でLinuxにも移植されています。そこで、本記事でも当初はLinux版を使用しようとしたのですが、うまくCM検出できなかったり、古いFFmpegを使用する必要があったり、動作的に安定しなかったためWindows版を使用することにしました。具体的にはWindows版のComskipをWine(Windows用アプリケーションをUnix互換OSで動かすためのソフトウェア)を使って動かします。それでも良ければ、本記事の内容を試してみて下さい。頑張ってLinux版を使うのも良いと思います。私は面倒くさくなってやめましたが...最後に注意点があります。Comskipはあくまで簡易的なCM検出ツールなので、保存用の動画には使えません。アニメの次回予告(30秒程度)の前後のCM検出は大抵失敗します。そのため、見て消しの番組などに適用するのが良いかと思われます。CMの無いNHKの番組で使っても意味がないですし、BSやCSの番組もうまく検出できないことが多いと思います。インストールWineのインストールComskipは32bitのコマンドなので、Wineも32bit版をインストールする必要があります。UbuntuとDebianはパッケージをインストールするだけで済みます。7はバイナリのパッケージが存在しません。7で32bit版Wineをビルドする方法」を参照してインストールして下さい(実は本記事を書くためにWineのビルド記事を書きました...)。wine:i386ComskipのインストールWindows用comskip置き場からZipファイルをダウンロードします。wgetで取得する最新のファイル名は置き場のサイトで確認して下さい。解凍先のcomskipディレクトリを/usr/localなどに移動して下さい。Ubuntuは"sudo"で、それ以外はrootユーザーで行います。/usr/local/ComskipはCM検出用の設定ファイル(comskip.ini)が必要です。インターネットで検索すれば色々と見つかるので、それをcomskipディレクトリに置くと良いです。Comskipで作成するVDRファイルを利用してCMカットを行うため、comskip.iniの中で以下は必須の設定です。output_vdr=1Comskipの使い方ComskipによるCM開始終了位置の検出Windows版のComskipを使用するには以下の様に実行します。CM検出結果はVDRファイルに出力されます(TSファイルと同じディレクトリに出力)。endこれは30分番組のCMの開始終了位置を検出した結果です。startが開始、endが終了位置です。番組本編はそれぞれのendからstartの範囲になります。この場合は以下の4つの範囲です。0:27:05.32実際に上記の結果を元にFFmpegで本編の切り出しと結合まで行ったのが以下になります。output.tsこれを手作業で行うのは非常に面倒なので、Comskipの実行から本編結合までの一連の流れを自動で行うスクリプトを作成しました。ChinachuでインストールされるFFmpegでは動画の結合はできません。FFmpegのビルド時に機能を無効化していることが原因と思われます(おそらくprotocols、filters?)。調べた所、chinachuスクリプトのFFmpegのconfigureにてdisableしている機能が結構ありました。Chinachu環境の場合、それらを有効にしてビルドし直すか、本ブログ内の記事「LinuxでFFmpegをほぼ全自動でビルドする(CentOS、Ubuntu等に対応)」を参考にFFmpegをインストールし直して下さい。CMカットスクリプト以下がComskipを利用したCMカットスクリプトになります。exit($exit_num);}ダブルクリックするとスクリプト全体を選択した状態になるのでCtrl+Cでコピーして下さい。/usr/local/bin/ディレクトリなどに”cmcut.pl”として保存して下さい(UTF8の改行コードはLF)。/usr/local/bin/cmcut.plスクリプト内の18行目以降でデフォルト設定を記述する必要があります。環境に合わせて適宜変更して下さい。17:50このプログラムをepgrec-unaのどの部分にどのように入れたらいいのかどなたか教えていただけないでしょうか。付いている欄は必須項目です。書き込まれた内容は確認後にメールアドレス以外を公開します。本名など身元の分かる情報を書かないようにお願いします。yokiLinux系システムが得意分野の個人SEです。このブログでは主に趣味的な内容を扱っていきます。