katsuwoのぐだぐだ話

ライフログを綴って行こうかと

Raspberry Pi 3 でCMカットを導入(comskip)

TSファイルからCMカットをするには、linuxだとcomskipぐらいしか選択肢がないのですが、普通のPCならともかく、ラズパイだとちょっと導入までが面倒なのでメモ。

  1. ffmpeg をインストール
    用意されているパッケージを使ってもいいのですが、そのままだとハードウェアエンコードできないので、ソースからコンパイルするのがいいかと。

    Raspberry Pi で MPEG-2 TS の動画を H.264 にハードウェアエンコードする(ffmpeg版) - Qiita

    あたりを参考に。
    ハードウェアエンコードは別途ライセンスを購入する必要があるので、念のため。
  2. comskip をコンパイル
    "comskip linux" とかでググると、wine を使ってやるのがいい的な事を書いてある記事が結構あるのですが、ラズパイでは wine が動作しない(やり方はあるっぽいけど)のと、redhat系には comskip のパッケージがあるっぽいんだけど、raspbian にはパッケージがないので、自分でコンパイルする必要があります

    comskipのUNIX化 - なんとな~くしあわせ?の日記 
    という記事があって、ソースを用意してくれている人がいるのですが、これだとarmでコンパイルができないっぽいので

    GitHub - erikkaashoek/Comskip: A free commercial detector
    を利用してコンパイル

  3. スクリプトを用意
    comskip はTSファイルからcmの位置を探してくれるだけなので、実際のカット作業は ffmpeg を使用してcmをカットする必要があります。
    その辺をよしなにやってくれるスクリプトが色々あるのですが、今回は

    cmカットスクリプト『ComskipBatch.rb』の紹介(Linux / Windows両対応) – UbuntuによるEco Linuxサーバ構築記
    を使うことに。

これでインストールはできたものの、それだけだと色々問題が。それは

comskip のメモリ消費が半端ない

事。
標準の1GBメモリだとおそらくシステム不安定になるので、swapを広げておくことをおすすめします。

ラズパイ(Raspbian Jessie)とスワップメモリ容量の変更(環境設定の続き) - ながいものには、まかれたくない
あたりを参考に。
SDカードにswapを作るとカードの寿命に影響するみたいなので、今回はUSBハードディスクにswapを作ってみました。