ラズパイ+UMS [Raspberry Pi]
多分,需要無いよね…って事で,やってみた(おい
録画PCに入れてあるUMSを超〜久々にアップデート… したのが事の始まり。 まぁ,いつもの "気まぐれ発動" です。 元々,ラズパイでNASっぽい事は無理って決めつけていたので,試す気も無かったのですが,『4Bではどうだろう?』って興味が,今回の燃料になってます。 ただ,今更,DLNAってどうなの? 需要あるの? ググっても今ひとつピンとこないし…
では,早速(ちょ待てぇ!!
ハードウエアは,あり物で…
- Raspberry Pi4 (4GB)
- 外付けHDD
- 3.5inch 3TB
- SATA-USB3ケース
と,実験なので,どこのご家庭にも有るモノで間に合わせます。
特に外付けHDDは,Windowsで使っていた物を,そのまま使用します。
動画ファイルなどの操作(配置)は,Windows上でやる方が楽チンなので,新規フォーマットもしません。
ただ,フォーマットがNTFSだったので,RaspiOSでNTFSを扱える様に,ntfs-3gを入れて対応します。
# Linuxカーネル 5.4で,exFATに対応した様なので,NTFSのntfs-3gだけ追加すればOK…らしいのだが,RaspiOSってそうでもない?
あくまで実験なので,いつも以上の やっつけ感です(笑
セットアップの流れは…
- Boot用SD作成
- Update & Upgrade, OS setup
- raspi-configやら
- ntfs-3g, ffmpeg 追加
- 外付けHDDをマウント などなど
- UMSのセットアップ
- 依存関係
- UMS インストール
- 設定などなど
- 動作確認
- PS3で…
- VLCで…
な感じ
1〜2はいつもの作業なので,まぁ適当に(笑
HWエンコードを試したかったので,ffmpegを入れますが,aptで入るもので動くっぽいです。
で,実際どうなの?
やはり実機で確認… って言う事で,久々にPS3(Slim)の電源を入れました(笑
実験する前,漠然とダメなんだろうな〜って,思っていたのですが…
意外とちゃんと動く。。。
- XMBの操作に違和感なし。高レスポンス。
- 逐次生成なサムネの表示,言うほど遅くない。 意外とガンバっている。
で,再生の方は…
トランスコードなしは… 問題無し。
- TSやMP4を垂れ流すだけなので,CPUは10%程度
- 再生開始,早送り
巻き戻し早戻しなどの操作も高レスポンス!ストレスフリー! - クライアント2,3台なら大丈夫(な感じ)
トランスコードありは… ちょっと
- SWで,CPU 常時 250%以上,しかも動画はしょっ中,止まるので実用不可。
- HW(h264_omx)を使って 〜150% 程度,動画が途切れたりする事もなく安定。
- でも,クライアントは1台が限界(笑
- トラコンすると早送りや早戻しとか出来ない… 実行すると色々死ぬ(笑),これは結構痛い。
そういえば,昔むかし,録画したTSファイルをUMS+PS3で視聴していた頃,UMSを動かしたPCが非力な上,早送りや早戻しもしたかったので,トラコン無しで運用してたっけ。。。
感想
4Bでやっと 使える ってところまで来たって感じです。
外付けHDDをぶら下げて "ラズパイでNAS" ってネタ,古くからありますが,3B+まではUSBやLANがボトルネックになり "ちっ,使えね" って感じでしたが,4BではUSB3になり,その点に関しては大分改善されています。
# あ,あと有線LANのスループット強化も…
DLNAサーバーとしても,外付けHDDにソースを格納するので,同様に有意に働いている様です。
トラコンに関しては,従来でも HW Encode が使えていたけど,USBやLANの遅さがアダとなり,十分な効果が望めていない感じでした。
それも,ボトルネック解消で "使える" 感じになっています。
# と,言ってもクライアントは1台が限界ですけど(笑
"ラズパイでNAS,時々DLNA" は,条件さえ合えば 有り… かな。
- 取り急ぎ(仮設で良いので),HDDをNAS化したい。
- クライアントがCIFS/SMBを扱えず,DLNAのみ。
- 『クライアント数=自分だけ』くらい,小規模運用。
- 単に やってみたい 。
で,いつも通り,『当方,これ使うか?』 ですが。。。
まぁ今回は,実験なので継続使用しません(笑
NASやら何やらは,すでに大量にあるし…
ご参考
ざっくり手順。(UMSを入れるところから,Userは "pi" で行ってます)
# って,これをメインにする様なブログが多いのに,当ブログは『ご参考』です(笑
依存関係 インストール
$ sudo apt update && sudo apt upgrade -y$ sudo apt install -y ntfs-3g exfat-fuse # 要不要は,外付けHDDに依る$ sudo apt install -y openjdk-8-jre mediainfo dcraw vlc p7zip # ちょっと長い…10分位?$ sudo apt install -y ffmpeg # HW Encodeするなら必要
UMSインストール (/opt以下に設置,バージョンは要確認!)
$ cd /opt$ sudo wget --trust-server-names https://sourceforge.net/projects/unimediaserver/files/10.5.0/UMS-10.5.0-armhf.tgz/download$ sudo tar -xvzf UMS-10.5.0-armhf.tgz$ sudo ln -fs ums-10.5.0 ums # update時,上書きしない様に…$ sudo rm UMS-*.tgz
一度UMSを起動して,設定ファイルなどを作らせます。(起動後,すぐにCtrl+Cで止めてOK)
$ cd ums$ ./UMS.sh # UMS起動!$ ^c
設定ファイルを修正 (最低限,公開するディレクトリを記述する)
$ sudo nano ~/.config/UMS/UMS.conf # 以下3行は,UMS起動時に勝手に追加される(た)ので,記述不要。 uuid = 1dfeb920-ddca-4291-a9c4-bdc5059e60db ffmpeg_available_gpu_acceleration_methods = none,auto,vdpau,vaapi,drm,rpi cred.path = /home/pi/.config/UMS/UMS.cred # 公開ディレクトリ # 設定したフォルダには,実行ユーザーに読み取り権限を付ける事 folders = /path/to/video, /path/to/music, /path/to/picture
UMSをサービス化
$ sudo tee -a /etc/systemd/system/ums.service <<_EOF_
中身(以下コピペ)
[Unit]
Description=Universal Media Server
After=network.target
[Service]
ExecStart=/opt/ums/UMS.sh
ExecStop=/bin/kill -INT $MAINPID
ExecReload=/bin/kill -HUP $MAINPID
Type=simple
User=pi
[Install]
WantedBy=multi-user.target
_EOF_
サービス有効化,起動,起動確認
$ sudo systemctl enable ums.service # サービス有効化$ sudo systemctl start ums.service # 起動$ systemctl status ums.service # 起動確認 ● ums.service - Universal Media Server Loaded: loaded (/etc/systemd/system/ums.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2021-05-20 11:28:56 BST; 10s ago Main PID: 7308 (java) Tasks: 88 (limit: 4915) CGroup: /system.slice/ums.service ├─7308 java -Xmx1280M -Xss2048k -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -Djna.nosys=true -classpath ├─7431 ping -c 5 -s 1476 192.168.99.88 ├─7436 ping -c 5 -s 1476 192.168.99.3 ├─7442 ping -c 5 -s 1476 192.168.99.7 ├─7448 ping -c 5 -s 1476 192.168.99.36 └─7455 ping -c 5 -s 9100 192.168.99.78 5月 20 11:29:02 rpi4ums UMS.sh[7308]: Pragma: no-cache 5月 20 11:29:02 rpi4ums UMS.sh[7308]: INFO 11:29:02.146 [HTTPv2 Request Worker 8] Media renderer was not recognized. Possi 5月 20 11:29:02 rpi4ums UMS.sh[7308]: User-Agent: UMS/10.5.0 Windows10/10.0 UPnP/1.0 Cling/2.0 5月 20 11:29:02 rpi4ums UMS.sh[7308]: Cache-Control: no-cache 5月 20 11:29:02 rpi4ums UMS.sh[7308]: Pragma: no-cache 5月 20 11:29:02 rpi4ums UMS.sh[7308]: INFO 11:29:02.165 [HTTPv2 Request Worker 2] Media renderer was not recognized. Possi 5月 20 11:29:02 rpi4ums UMS.sh[7308]: User-Agent: LINUX UPnP/1.0 Denon-Heos/165840 5月 20 11:29:02 rpi4ums UMS.sh[7308]: INFO 11:29:02.180 [HTTPv2 Request Worker 3] Media renderer was not recognized. Possi 5月 20 11:29:02 rpi4ums UMS.sh[7308]: User-Agent: LINUX UPnP/1.0 Denon-Heos/165840 5月 20 11:29:03 rpi4ums UMS.sh[7308]: INFO 11:29:03.378 [main] Universal Media Server is now available for renderers to fi lines 1-23/23 (END)
ご参考2
”短時間でサックっとやっつけ” するつもりが,色々はまってしまいました。
ハマりポイントは,主に,トラコンで使うffmpegのオプションと,その設定方法。
UMSを動作させる事自体は,そう難しくないです。
と,言ったものの…
Windows版などならGUIで設定を行えますが,RaspiOS LiteなのでCUI。
しかもUMSって設定項目が盛りだくさん(爆
真面目にやると日が暮れるので,最低限の設定を以下へ(注: 4B以外で試してません
ご参考:
UMS.conf
# 以下3行は,UMS起動時に勝手に追加される(た)ので,記述不要。
uuid = 1dfeb920-ddca-4291-a9c4-bdc5059e60db # 値は都度変化する
ffmpeg_available_gpu_acceleration_methods = none,auto,vdpau,vaapi
cred.path = /home/pi/.config/UMS/UMS.cred
# クライアントに見せたいフォルダ(複数ある場合は","区切り)
folders = /mnt/hdd0
network_interface = eth0
external_network =false
language =ja
audio_thumbnails_method = 0
hide_extensions = false
show_media_library_folder = false
show_transcode_folder =false
resume = false
# トラコンなしなら
disable_subtitles = true
disable_transcode_for_extensions =ts,m2ts,mp4,m4v
# トラコンありなら
#TranscodeVideo = MPEGTS-H264-AC3
#TranscodeExtensions = mkv,flv,mpg,mpeg,mp4,webm,3gp,m4v,avi,mov,qt,wmv,asf,ts,m2t,m2ts
#CustomFFmpegOptions = -preset veryfast -c:a aac -ab 320K -c:v h264_omx -b:v 20000k -maxrate 20000k -minrate 20000k -bufsize 10000k
# 以下は要らんかも…
alternativeffmpegpath = /usr/bin/ffmpeg
コメント 0