きゃらりこ日誌

2018年12月

技術

RaspberryPiでテレビのストリーミング配信実験をしてみたものの…

旅行先のホテルでも、自宅と同じチャンネルをリアルタイムで観たいなと思ったので、RaspberryPiを使ったテレビのストリーミング配信実験をしてみました。

サーバは、今年の3月までファイルサーバとして使っていた、RaspberryPi 2 Model B(2015年発売)。OSは、Raspbian Stretch(Debian 9ベース)を使用しました。
キャプチャーは、AliExpressで購入した、メーカー・型番不詳のUSBキャプチャー EasyCAP(変換チップはUTV007)。USB Video Classに対応しています。
映像ソースは、RCA端子(ピンジャック)出力がある、Panasonicのブルーレイレコーダ(2010年発売)。
受信には、同じネットワーク内にあるWindowsパソコンにインストールした、VLC media playerを使用しました。

まず以下の設定で、ストリーミング配信してみました。
ffmpeg -threads 4 -f v4l2 -i /dev/video0 -f alsa -thread_queue_size 2048 -i hw:1 -c:v mpeg4 -b:v 2M -c:a aac -b:a 64k -vsync 0 -async 0 -f mpegts udp://224.0.0.1:123

格安USBキャプチャを使ってるので画質が悪いのは仕方がないのですが、一番問題なのはコマ落ち。
コマ落ちが酷くて、音もとぎれがちです。
どうやらCPU負荷が高くなりすぎて、エンコード処理が間に合わないようです。

CPU負荷を軽減すべく、RaspberryPiをオーバークロックしたり、エンコード設定をワンセグと同じ320×240ピクセル・15fpsにしたり、音質を落としたりモノラル・mp3にしたり、ユニキャストにしたり、いろいろ設定を変えてみました。
音声はたまに途切れる程度までに改善しましたが、映像はコマ落ちが若干ましになった程度。
根本的な改善には至りませんでした。
RaspberryPi 2 Model Bは、Broadcom BCM2836(ARM Cortex-A7 4コア 900 MHz)なので、こういった用途には非力なのかもしれません。
[ | この記事のURL ]