Ubuntu16.04上へのComskipBatchのインストール


Ubuntu16.04 LTSで深夜の間にCMカットして、H.264エンコードを自動的に実行するようにセットアップします。インストールの流れは下記のとおり。

  1. Ubuntu16.04 LTSのインストール
  2. epgrec UNAのインストール
  3. rubyスクリプト『ComskipBatch.rb』をUbuntu16.04上にインストール(本投稿)
  4. cronで実行されるようにする(本投稿)

なお、ComskipBatchの使い方は『cmカットスクリプト『ComskipBatch.rb』の紹介(Linux / Windows両対応)』を見てください。

必要パッケージのインストール

下記のように必要パッケージをインストールします。

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install wine libav-tools ffmpeg ruby

最後にcomskipと、ComskipBatchダウンロード。下記のwget先のリンクが変更になっていた場合にはこちらからリンク先を確認して下さい。

sudo mkdir -p /opt/comskip_batch/comskip
cd /opt/comskip_batch/comskip

# comskipをダウンロードする
sudo wget http://www.kaashoek.com/files/comskip81_092.zip

# zipファイルを展開する
unzip comskip81_092.zip

# comskip_batchをダウンロードして、展開する
# ダウンロードしたファイルを下記に配置する。comskip.iniはダウンロードしたファイルで上書き修正する。
/opt/comskip_batch/ComskipBatch.rb
/opt/comskip_batch/comskip/comskip.ini

バッチ処理で使うディレクトリの事前準備

処理成功したら。『ENCODE_ONLY』ディレクトリへ、処理失敗(例えば、カットし過ぎて30分のTSが15分になった場合)したら『CMカット失敗』へファイルを移動させるため、事前にそれらのディレクトリを作成しておきます。

# epgrecUNAを使っている前提なので、tsは下記ディレクトリに作成されると仮定。
# 他のソフトを使っている場合には、適宜変更します。
export epgrecDIR=/var/www/html/epgrec/video/

mkdir $epgrecDIR/ENCODE_ONLY
mkdir $epgrecDIR/CMカット失敗

ComskipBatchの動作確認

自動的に実行されるように、Cron登録する前に、単体での動作確認を実行しておきます。なお、対象のファイルをmvしたりするので、事前にバックアップを取得してから実行してください。

ruby /opt/comskip_batch/ComskipBatch.rb --margin 3 --file "$epgrecDIR/TSファイル.ts"   --move_to $epgrecDIR/ENCODE_ONLY/ --failed_to $epgrecDIR/CMカット失敗

# 成功していたら、こちらにファイルが出来ているはず。
ls $epgrecDIR/ENCODE_ONLY

# 失敗したら、こちらにファイルが置かれているはず。
ls $epgrecDIR/CMカット失敗

Cronから呼び出されるcmcut.shの準備

/opt/comskip_batch/cmcut.shとして、下記を保存して、cronに登録すればいいと思います。

#! /bin/bash -

source ~/.bashrc
source ~/.bash_profile

export PATH=$PATH:/usr/local/bin
export RUN_DIR=/opt/comskip_batch
export epgrecDIR=/var/www/html/epgrec/video
export MOVE_TO=$epgrecDIR/ENCODE_ONLY/
export FAILED_TO=$epgrecDIR/CMCUT_FAILED/

cd $RUN_DIR

# Comskipで処理
find /var/www/html/epgrec/video -type d \( -name 'ENCODE_ONLY' \) -mmin +1 -prune -o -type f  -name "*.ts" ! -name "*CS16*" | xargs  -I% ruby $RUN_DIR/ComskipBatch.rb --margin 3 --and_encode --file % --move_to $MOVE_TO --failed_to $FAILED_TO

cronへ登録する

crontab -e

実行する時間帯ですが、下記の条件を出来るだけ満たすようにしてください。日中時間帯に外出している事が多ければ、日中時間帯の実行でも良いと思います。H.264エンコードを含む処理時間はCPU性能によるので、余り遅いようならCPUを変更してもいいかもしれません。

  • 節電の為、電気使用量が少ない時間帯
  • あまり録画されない時間帯
  • サーバの負荷が低い時間帯
2 3 * * * /bin/bash -l /opt/comskip_batch/cmcut.sh

最後に

手作業でCMカット、エンコードしていたら、それだけで一日が終わってしまいますが、それを自動化することは『コンピュータに仕事をさせる事が出来る技術者の特権』ですね。記載内容に不備があったり、『こういう機能があればもっと便利なのに』と言う場合には遠慮なくコメントしてください。

タグ付けされた , , , . ブックマークする へのパーマリンク.

コメントを残す

メールアドレスが公開されることはありません。