m0r1_39’s blog

個人的な備忘録。誰かの参考になれば。

Raspberry Pi 4を動画再生機(mp4プレーヤー)にした話

車載の動画再生機としてRaspberry Pi 4をmp4プレーヤーに仕立ててみたので内容をメモしておく。

 

【やりたいこと】
・起動すると特定フォルダ内のmp4ファイルを自動的に全画面でランダムに再生する
・OS用microSDとmp4ファイル格納用microSDは分ける
・再生はハードウェアアクセラレーションを利用する
・リモコンで再生ファイルのスキップ等を行える
・物理ボタンを追加してボタン1つでシャットダウンが行える

 

【構成】
選択したOS:Raspberry Pi OS (32-bit) with desktop(May 2020)
再生アプリ:プリインストールされたomxplayer
リモコン:
電源ボタン:

microSDリーダー:

 

OS用のmicroSDとは別のmicroSDにmp4ファイルを保存し、USBポートに接続して再生させる。
mp4用microSDFAT32とすることでPCでの再生ファイルメンテナンスがしやすくなる。
リモコンはレシーバーをUSBポートに接続するだけで使える2.4FHzワイヤレスタイプのものを選んだ。
上下左右と戻るのボタンしか機能しないが再生ファイルのスキップができればよいのでこれで満足。
上:600秒送り、下:600秒戻し、左:30秒戻し、右:30秒送り
戻る:終了(今回の仕様だと実質再生ファイルのスキップ)

OSはRaspberry Pi OS (32-bit) Liteに追加でomxplayerをインストールでも良かったかもしれない。
KODI(LibreELEC)でもいろいろ試したが、”起動時に自動再生”が実現できなかった。

 

■初期設定
以下を参考に必要なものを設定する。
https://jyn.jp/raspbian-setup/

 

CUIでの起動に変更
sudo raspi-config
 → 3 Boot Options
  → B1 Desktop / CLI

 

CUIでの自動ログイン設定
sudo nano /etc/systemd/system/getty.target.wants/getty@tty1.service

ファイル内に以下を追記する。
ExecStart=-/sbin/agetty --autologin pi --noclear %I $TERM

 

■SDカード自動マウント設定
sudo mkdir /mnt/sd1
sudo nano /etc/fstab

ファイル内に以下を追記する。
/dev/sda1 /mnt/sd1 vfat user,auto,iocharset=utf8,noatime,flush 0 0

 

■mp4自動再生スクリプトの作成
nano ~/playmp4.py

ファイル内に以下を記入する。
# conding: utf-8
import os, sys
import random
media_pass = "/mnt/sd1/"
files = os.listdir(media_pass)
random.shuffle(files)
for file in files:
    base, ext = os.path.splitext(file)
    if ext == '.mp4':
        cmd = "omxplayer -o both " + media_pass + "'" + file + "'"
        result = os.popen(cmd).readline().strip()

 

■mp4自動再生スクリプトの自動実行設定
nano ~/.profile

ファイル内に以下を追記する。
clear
python ~/playmp4.py

 

■シャットダウンボタン追加
シャットダウンのボタン1つしか使わないので、不要なものは割いて剥がす。
以下を参考にGPIO3とGNDに接続する。
https://www.raspberrypi.org/documentation/usage/gpio/

 

■シャットダウンボタンの有効化
nano /boot/config.txt

ファイル内に以下を追記する。
dtoverlay=gpio-shutdown,gpio_pin=3