【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.
エンコードしてると熱がやばそうなので、ファン付きのラズパイケースを買おうと思います。