いぶろぐのガジェット日記

いぶろぐのガジェット日記

ガジェットやOSS、その他興味のあるITニュースをぽつらぽつら投稿します。

【FFmpeg】Raspberry Pi 3 でTSファイルをハードウェアエンコード


はじめに

明けましておめでとうございます。
今年もどうぞ、よろしくお願いします。

正月明けの先週末は関西では(関西人にとっては)大雪でした。
近所の公園では子供達が遊んでいて、元気だなあとしみじみしましたね。

前回の記事では、PX-Q3PEなどのPlex製チューナーでChinachuを使うお話をしました。
その後、Chinachuサーバがラズパイだと少々力不足ということで、Chinachuサーバは使っていないノートPCに置き換えました。

今回は余ったラズパイの有効活用をしようじゃないかというお話です。


FFmpegコンパイル

H264_omxに対応したFFmpegコンパイルします。やり方は下記のサイトを参考にしました。

Rapberry Pi 3 のハードウエアエンコーダh264_omxが使えるFFmpegをビルドする

Alsaは最新版を使いました。(2017.01.17現在 ver1.1.3)


エンコード

あとはエンコードします。エンコード時間はそんなに気にしていないので画質はできるだけ高くします。

私は下のスクリプトをcrontabに登録して毎分走らせています。
同時に2ファイルまでエンコードする設定です。同時エンコード数を変えたい場合は$count -lt 2の数字を変えてください。

#! /bin/bash

count=`ps -ef | grep ffmpeg | grep -v grep | wc -l`
echo $count
if [ $count -lt 2 ]; then
        DIR1="/some/where/エンコード"
        DIR2="/some/where/処理中"
        DIR3="/some/where/処理済"
        cd $DIR1
        TS=(`find $DIR1 -type f -name "*.ts"`)
        FNAME=`basename -s .ts $TS`
        echo $FNAME
        mv $FNAME.ts $DIR2

        cd $DIR2
        X264="-f mp4 -c:v h264_omx  -r 30000/1001 -aspect 16:9 -s 128$
        /usr/local/bin/ffmpeg -i $FNAME.ts $X264 $FNAME.mp4
        mv $FNAME.mp4 $DIR3
fi

複数起動せず単体でエンコードしていた時のエンコ速度はx0.2くらいでした。
1時間のテレビ番組のエンコードに5時間かかる計算です。


感想

ラズパイなんであまり期待していませんでしたが、やっぱり速度は遅いです。

消費電力はかなり低いので、まったりエンコードしたい人向け。

撮り溜めたTSのエンコード、全部終わるのに1ヶ月くらいかかりそう...


P.S.

エンコードしてると熱がやばそうなので、ファン付きのラズパイケースを買おうと思います。