Raspberry Pi mp4を再生する

最新のRaspbianではVLCメディアプレイヤーがデフォルトアプリケーションとなって入っています。(当サイトのvlcはまだ動いてないのですが)
Pi3A+,3B+のcpu,networkではmp4もある程度快適に視聴できるものと想像しています。
以前と比べるとX環境でもmp4の再生は随分良くなりましたがPi3BのCPUは今一歩力及ばずといったところでしょうか。それでも少しでも良くなるよう設定(努力)してみたいと思います。

環境

Raspberry Pi 3 + pulseaudio(client)

クロックアップ

現在のraspbianはほとんどデフォルトのconfig.txtを編集することが無いのでバックアップしといて必要な項目のみを書いて新たに作成しています。
/boot/config.txt

# Overclock the arm
arm_freq=1300
over_voltage=5
sdram_freq=450
core_freq=450
gpu_freq=450
gpu_mem=256

# Enable audio (loads snd_bcm2835)
dtparam=audio=on
dtoverlay=vc4-kms-v3d

OpenGLを有効にしています。
当サイトの環境ではオーバークロックはcpu使用率90%〜99%で一晩中稼働しても現在の設定でハングアップすることはありません。

# apt install cpufrequtils


default ondemand
以前作成したダイアログを使っています。
performanceで実行することで音声と映像間の遅延を抑えることができます。但し大幅な改善は見込めません。
ローカルの低速なネットワーク(ファイルサーバ)からは遅延が発生することがあります。(特にmplayer)

$ cpufreq-info | grep "current CPU"
  current CPU frequency is 1.30 GHz.
  current CPU frequency is 1.30 GHz.
  current CPU frequency is 1.30 GHz.
  current CPU frequency is 1.30 GHz

再生プレーヤー(CLI)

# apt install mpv mplayer

mpvをインストールすると依存関係でffmpeg(ffplay)もインストールされます。

ffplay


当サイトのデフォルトプレーヤー
左右上下キーでそれぞれ10秒、1分の移動
ウインドウのX軸方向を右クリックすることで任意の時間に移動
細かいことは抜きにして最軽量、最速のプレーヤー

mplayer


ffplayに次ぐ軽量プレーヤー
大きな動画ファイルは遅延出やすい

~/.mplayer/config

# Write your default config options here!
[default]
vo=gl
zoom=1
cache=1024
font=Sans
osdlevel=3
subfont-autoscale=0
subfont-osd-scale=12

mpv


mplayerの後継
ネットワーク経由のファイルはキャッシュを読み込む間不安定
もう少しキャッシュの読み込みが早くなればベストなプレーヤーと思います。

~/.config/mpv/mpv.conf

vo=opengl
osd-font-size=30

再生プレーヤー(GUI)

VLCメディアプレイヤー


現時点の当サイトの環境では
mp4は再生不可(音声のみ)
m2tc(tc),wmv,rmは再生可能

GNOME MPV

# apt install gnome-mpv


mpvベース
mpv設定ファイルを指定する(~/.config/mpv/mpv.conf)

ビデオ

# apt install totem


GNOME3のデフォルトプレーヤー(旧名称 Totem)
若干重め

SMPlayer

# apt install smplayer


mpv or mplayerベース
mpv opengl
mplayer x11(低速)

SMPlayerはサイズ、位置を指定して起動することができます。

$ smplayer -size 340 60 -pos 680 25

これをpcmanfmに登録して音楽プレーヤーとして使っています。操作ボタンは機能の範囲内で自由に配置することができます。
mplayerを指定した場合はビデオドライバはx11(低速)にします。
pcmanfmには拡張子ごとに登録が必要です。GUIなプレーヤーとしてはかなりコンパクトになりました。

再生プレーヤーを使い分けるにはやはりpcmanfmが便利と思います。GUIなプレーヤーは自動で登録されますがCLIなプレーヤーはpcmanfmの右クリックメニューに登録が必要です。

SMPlayer再生中”SMPlayerでエンキュー”に送ると現在再生中の動画(音楽)終了後に再生を開始します。

mpvからインターネット越しの再生も一旦右クリック(pause)してキャッシュを読み込めば(数十秒)映像、音声ともほぼ問題なく再生します。

Raspberry Pi OpenBoxのダウングレードとfontconfig

20181206日辺りのupdateでOpenBoxの設定ツール(obconf lxappearance)が起動しなくなってしまいました。

また当サイトの環境ではやはりupdateでMonospace fontの見え方も変わってきています。

OpenBox


obconf lxappearance共Segmentation faultで起動不可

動作としては設定ファイルのとおり動いているので設定ツールから変更できない点を除けば問題ないのですがやはり気になるのでupgrade前のバージョンに戻したいと思います。

openbox関係で変更になったパッケージは次のとおり

$ dpkg -l | grep openbox
ii  libobrender32v5 3.6.1-4+rpi8 armhf rendering library for openbox themes
ii  libobt2v5       3.6.1-4+rpi8 armhf parsing library for openbox
ii  openbox         3.6.1-4+rpi8 armhf standards-compliant, fast, light-weight and extensible window manager

ダウングレード可能なバージョンは次のとおり (3.6.1-4+rpi8 –> 3.6.1-4)

$ apt-cache madison openbox libobt2v5 libobrender32v5
openbox | 3.6.1-4+rpi8 | http://archive.raspberrypi.org/debian stretch/ui armhf Packages
openbox | 3.6.1-4 | http://raspbian.raspberrypi.org/raspbian stretch/main armhf Packages
libobt2v5 | 3.6.1-4+rpi8 | http://archive.raspberrypi.org/debian stretch/ui armhf Packages
libobt2v5 | 3.6.1-4 | http://raspbian.raspberrypi.org/raspbian stretch/main armhf Packages
libobrender32v5 | 3.6.1-4+rpi8 | http://archive.raspberrypi.org/debian stretch/ui armhf Packages
libobrender32v5 | 3.6.1-4 | http://raspbian.raspberrypi.org/raspbian stretch/main armhf Packages

ダウングレード実行

# apt install openbox=3.6.1-4 libobt2v5=3.6.1-4 libobrender32v5=3.6.1-4


ダウングレードできました。


obconf起動しました。


lxappearanceも起動しました。

次のupdateまでupgradeを抑止する。(解除はapt-mark unhold)

# apt-mark hold openbox libobt2v5 libobrender32v5
openbox は保留に設定されました。
libobt2v5 は保留に設定されました。
libobrender32v5 は保留に設定されました。

fontconfig

依存関係で/etc/fonts/conf.d/31-mono-substitute.confが追加されているようです。
このファイルはシステムフォントとしてMonospaceにLiberation Monoを割り当てています。
当サイトではMonospaceにRicty Diminishedを設定しているためLiberation Monoの優先順位を変更してあげます。
/etc/fonts/conf.d

# mv 31-mono-substitute.conf 66-mono-substitute.conf


いつものフォント設定が戻ってきました。

Raspberry Pi SSDの/bootについて

Pi3B+そしてPi3A+もリリースになっていますね。あとはPi4のリリースを待つのみでしょうか。
根拠のない勝手な推測(希望、期待)を言うとGbE、wifi(802.11ac)は確定としてあとはUSB3.0そしてメモリ(2GB)でしょうか。
cpuはA55ベースになるといいな。(非公式クロックアップ可、放熱次第)
メモリ(2GB)は単純にコストアップに繋がるため公式価格$35と考えると厳しいところかなと思いますが期待だけはしておこうと思います。
USB3.0は少なくとも1ポートは実装されるものと思っています。
当サイトのPi3はSSD+USB2.0でもマイクロSDと比較して良好な結果が得られているのでUSB3.0になればかなりのパフォマンスを発揮してくれるものと期待しています。
リリース時期についてはPI財団は祭り好きと思えるためきっとPi day(π day)に合わせてくるのではないかと予想しています。(間に合えば)

USB-SSDからの起動

Pi3ではUSBブートモードを有効にして内蔵SDカードを外すとSSDから起動を開始します。
当サイトのPi3では電源投入10秒後にSSDの起動を開始します。メインで使用するディスクトップ用途ではこの10秒は妙に長く感じてしまいます。

この10秒のロスタイムを解消するには内装スロットにあるSDカードのbootを利用することでロスタイムをなくすことができますがカーネルバージョンが一致している必要があります。

Raspbianのupdateは時折カーネルの更新も入ります。そのためraspberrypi-kernelのupdateがあった時は自動で更新しないようにapt-mark hold raspberrypi-kernelを設定しておきます。

内装スロットに使用するSDカードは通常のRaspbianをインストールしたものとbootだけを用意したカードを使用することができます。

RaspbianのSDカード

内装スロットのSDカード(Raspbian)は最低限update && upgradeをできる環境を作ります。
カーネルの更新があった場合は保留として通知されます。
SDカードを外してSSDで起動(boot)してカーネルを更新

# apt-mark unhold raspberrypi-kernel
# apt update && apt upgrade
# reboot

再度SSDで起動(boot)したらスロットにSDカードを挿し込んでSDカードで起動するようcmdcmdline.txtを編集
/media/pi/boot/cmdcmdline.txt

root=PARTUUID=xxxxxxxx-02 //SDカードのUUID

内装スロットに起動可能なSDカードがあればこちらが優先するのでSDカード側もupdate && upgradeを実行
SDカードのカーネルを更新したらまた/boot/cmdcmdline.txtを編集してSSDに振り向け直します。

bootのSDカード

現在当サイトで採用しています。

T社のSDカード(64GB)ですがOSとして使うとよくファイルが壊れます。(当時かなり安かった)このカードをboot用に使います。
boot以外の領域はデータ用として大事なファイルは保存できませんが一時ファイルや実験用として利用します。

bootはFAT32で適当なサイズを割り当て、フラグにbootを指定します。

マウントポイントの作成

# mkdir /boot_sd

/etc/fstabの編集(通常時オートマウントしない。noautoを入れておくこと)

PARTUUID=xxxxxxxx-01  /boot_sd  vfat    defaults,noauto 0    2

カーネル更新時は上記の方法でSSDのカーネルを更新
SDカードのbootを/boot_sdにマウント
SSDのbootを/boot_sdにコピー

# mount /boot_sd
# rm -r /boot_sd/*
# cp -r /boot/* /boot_sd

#raspi-configなどで起動オプションを変更した場合は/boot/config.txtに追記変更されます。(uartなどはcmdcmdline.txtも)
SDカード(Raspbian)のbootは手作業で変更箇所を追記、修正する必要があります。
SDカード(boot only)は変更ファイルをコピーまたは修正する必要があります。

勝手気儘に予想してみましたが次期Pi4はディスクトップ用途としても充分実用になる仕様になるものと期待しています。

Raspbian LXDE 自動起動(スタートアップ)を利用する

前回インストールしたRaspbian 2018-11-13版ですがインストール後の初回起動時セットアップウイザードはどこから(どうやって)なにを起動しているのかなと思ってRaspbian imageを少し眺めてみました。

/etc/xdg/autostart


Raspberry Pi First-Run Wizard
オートスタートはこのファイルが実行しています。
ターミナルから見ると実際のファイル名は
piwiz.desktop
となっています


Name=Raspberry Pi First-Run Wizard
拡張子desktopファイルはファイルマネージャーからはName=で指定した名称が使われます。

Exec=sudo piwiz
実際に起動するプログラムは/usr/bin/piwizですね。
セットアップウイザードを終了するとpiwiz.desktop(Raspberry Pi First-Run Wizard)は削除されるので実際にはこのファイルを目にすることは無いことになります。

スタートアップ設定

仕組みが大体わかったところでこのスタートアップ機能を利用してみたいと思います。
試しにchromium-browserを起動してみます。
/etc/xdg/autostart/chromium.desktop

[Desktop Entry]
Type=Application
Name[ja]=Chromium Browser
Exec=chromium-browser

起動OKですね。

これまで当サイトのPi3はxdotoolとスクリプトを作成してOS起動後zentyダイアログから必要なアプリケーションを起動していました。zentyの代わりにスタートアップに登録してOS起動後は自動で起動してみます。
/etc/xdg/autostart/desktop-start.desktop

[Desktop Entry]
Type=Application
Name[ja]=DeskTop
Exec=/home/pi/bin/work.sh

作成したスタートアップはlxsession-editで有効、無効を切り替えることができます。

$ lxsession-edit


lxsession-editはメニューに登録しておくといいでしょう。
当サイトでは右クリックメニューに登録しています。


自動起動するアプリケーションはwork space6から
sylpheed
terminator lxterminal gnome-terminal
pcmanfm lxterminal gnome-terminal terminator
pavucontrol surf2(browser)
chromium-browser guake(Terminal)
表示位置(サイズ)やタイミングは少しずつ修正してきたのでだいぶ使い勝手もよくなってきています。

Raspbian 2018-11-13をインストールする

Raspberry Pi 3A+リリースの関係と思われますがRaspbian 2018-11-13がリリースされています。

当サイトのPi3はRaspbian 2018-10-09版を新しいSSDに新規インストールしたばかりなのですが若干気になるところがあり2018-11-13版がリリースされたこともあり再度インストールしてみることにしました。

SSD


64GBのSSDはサーバー用に流用する予定で比較的安かった120GBを購入しました。($22.98)

パーテーション構成

2018-10-09版で作成したパーテーション
/dev/sdb1 boot
/dev/sdb2 OS領域
/dev/sdb3 ユーザーディレクトリ、ユーザーデータ
/dev/sdb4 dockerデータ

OSのインストール

bootも最新のカーネルになっておりまたユーザー設定やデータ関連も構築したばかりなので今回は/dev/sdb2のOS領域のみ入れ替えてみます。

Raspbianの場合OSのインストールはRaspbian imageを前回の要領でマウントできれば単純にコピーするだけで可能です。
例としては

# cp -Rp /media/pi/rootfs/* /media/pi/rootfs1 //各マウント先を確認

* /media/pi/rootfs Raspbian image
* /media/pi/rootfs1 SSD /dev/sdx2 デバイス名確認
* 設定ファイルなど必要なものはバックアップを取っておく
* 一旦マイクロSDなど別のメディアからOSを起動する
* インストール先の/dev/sdx2内のファイルは全て削除しておく
* SSDのパーテーション構成は変更しない
* dockerデータのmountはインストール、動作確認後に(defaultに置き換わってしまう)
コピーが完了したらインストールOK
バックアップのfstabからコピー

PARTUUID=xxxxxxxx-01  /boot
PARTUUID=xxxxxxxx-02  /
その他
/etc/dhcpcd.conf 
/etc/wpa_supplicant/wpa_supplicant.conf

起動する

初回起動時セットアップウイザードが起動します。

NEXT セットアップ開始


Japan
Japanese
Tokyo


Password 変更


Network 設定


Update 少々時間がかかる
日本語入力(fcitx-mozc)もインストールされます。


セットアップ終了 再起動
初期設定はすごく簡単になりました。


メニュー 設定 Recommended Software
Raspbian 2018-10-09以前にデフォルトでインストールされていたアプリケーションはこのプログラムからインストールができます(通常版)
LibreOfficeにチェックを入れてインストールすると日本語版が導入されます。


さて気になっていたところですがtopでみるとzombieがひとつ出ているんですね。
初期設定後の確認ではやはり2018-11-13版でも出るようです。
取り敢えずは問題ないのですが原因はまだ掴めていません。

2018-11-13版からはデフォルトでVLCメディアプレイヤーがインストールされていますがこれが動かない。
2018-10-09版でインストールしたVLCは正常に動いていたのですが2018-11-13版のリリースと共に更新が入りそれ以来やはり動かなくなってしまいました。
推測ですがRaspbianのリリースとたまたま偶然に更新が入ったVLC側に問題があるように思います?
当サイトの環境に問題があるかもしれませんがいずれ解決すると思います。
mpv mplayerは問題ないので(使わなくてもいい)という選択肢もあります。

Top