樹莓派家庭劇院 第9章 • Pi DLNA 伺服器 媒體播放機實作 • 媒體播放廣告機(參考) • 數位像框實作(參考) • Pi USB Webcam 縮時攝影(參考)
Total Page:16
File Type:pdf, Size:1020Kb
2017/10/11 內容 • 樹莓派家庭劇院 第9章 • Pi DLNA 伺服器 媒體播放機實作 • 媒體播放廣告機(參考) • 數位像框實作(參考) • Pi USB WebCam 縮時攝影(參考) 家庭劇院 • Kodi • 其他參考 – 原 XBMC – Windows Media 樹莓派家庭劇院 Center • Plex – Emby – 基於 Kodi – NextPVR – MediaPortal – MythTV – JRiver Media Center – Steam Big Picture – HDHomeRun DVR 1 2017/10/11 Kodi/Plex 比較 Raspberry pi 家庭劇院 Features Kodi Plex Media Server • Kodi Based • Plex Based Client Based (or Database Location Central Server Centrally with MySQL) – OSMC (原 Raspbmc) – RasPlex Database Management Client Interface Web Interface – OpenELEC Transcoding Handled by Client Handled by Server XBian Client Hardware Support A Lot A Lot More – Add-ons Lots Limited – GeeXbox 停止開發 Visual Customization Very Flexible Limited Add-on Maintenance Community Professional Free, $5 per Client Cost Free and/or Optional Subscription Remote Streaming Impossible/Difficult Possible Kodi 作業系統 http://kodi.tv/ Kodi 2 2017/10/11 Pi 安裝指引 http://kodi.wiki/view/HOW-TO:Install_Kodi_on_Raspberry_Pi Raspbian Kodi 安裝 安裝 啟動 kodi apt-get install –y kodi • Desktop 版本 • 進⾏安裝 3 2017/10/11 注意 • Kodi 無法經由 rdp 遠端桌面顯示 • 原 rdp 桌面保留原 lxde 桌面 紅外線遙控 • 因使⽤桌面系統加上 Kodi 播放時較不順暢,建議 改⽤優化的 – OpenElec, OSMC 等軟體 購買 USB 界面遙控器 遙控器 DIY (1) • LIRC 遙控器-DIY – http://kodi.wiki/view/LIRC – 使⽤ LIRC (http://www.lirc.org/) 4 2017/10/11 遙控器 DIY (2) • 參考 – http://wiki.openelec.tv/index.php/Guide_T o_lirc_rpi_GPIO_Receiver – http://www.msldigital.com/pages/support ssh 連線控制 -for-remote – http://haegi.org/blog/2015/03/raspberry- pi-osmc-hyperion-ir-remote/ – http://alexba.in/blog/2013/06/08/open- source-universal-remote-parts-and- pictures/ – ….. Openelec ssh 連線控制 OSMC ssh/sftp • 帳號:root • username: osmc • 密碼:openelec • password: osmc • 密碼可變更 • Root 密碼設定 – sudo passwd root 5 2017/10/11 Xbian ssh 相關命令 • 帳號:root • 重啟 • 密碼:raspberry – systemctl restart kodi • 其他 linux 命令 • Serial Console 需要設定才可 • CPU 使⽤量 – top • 關機重啟 – poweroff – reboot 字幕檔格式 • 圖形資料格式 • 文字資料格式 – SUB格式 – SRT格式 影⾳字幕檔 – SST格式 – SSA、ASS格式 – SON格式 – SMI格式 – PSB格式 – PJS格式 – STL格式 – TTS格式 – VSF格式 – ZEG格式 6 2017/10/11 SUB 格式 SRT 格式 • 組成 • SRT(Subripper)是最簡單的文字字幕格式,副 檔名為.srt – 字幕圖片檔案(.sub文件) • 組成為: – 字幕索引檔案(.idx文件) ⼀⾏字幕序號 – ⼀個.sub文件可同時包含多個語言的字幕, ⼀⾏時間代碼 顯示時間從該影片開始的 由.idx進⾏呼叫。 第2分32.164秒到第2分 ⼀⾏字幕資料 33.317秒 • 如: 38 00:02:32,164 --> 00:02:33,317 字幕資料 Srt 格式編碼 • BIG5 建議轉為 UTF-8 • GB 建議轉為 UTF-8 • UTF-8 建議的編碼格式 Pi DLNA 伺服器 • UCS-2-Little Endian 可接受格式 7 2017/10/11 DLNA伺服器 何謂串流(stream) • 數位生活網路聯盟 (Digital Living Network • 串流: • 非串流 Alliance ,DLNA) – 影新資料封包得以 – 先將所有資料,都 • 多媒體串流影⾳伺服器 像流⽔⼀樣傳送 下載到硬碟上,再 • ⾳樂、影片、圖片 – ⽤⼾可以⼀邊下載 開啟應⽤軟體觀看 • 經由使⽤者 Windows、手機App播放 ⼀邊觀看 – 如 1G 影片,可能需 – 也容易觀看影片的 要⼀⼩時才能下載, 任何⼀段 ⼀⼩時之後再觀看 下載、燒錄、網路 更新 • Raspbian Lite 版本即可 • 更新 • 參考相關單元 sudo apt-get update – 參考基本操作 sudo apt-get upgrade – 參考終端機 (如網路不佳,可能要⼀點時間) – 參考無線網路設定 8 2017/10/11 支援掛載 USB 安裝 • 支援 NTFS 檔案系統 • sudo apt-get install -y minidlna sudo apt-get install -y ntfs-3g • 建立掛載點(先不要插入 USB Stick) • 參考 sudo mkdir /media/USB • ReadyMedia (MiniDLNA) sudo chmod a+rw /media/USB • http://minidlna.sourceforge.net/ • 編輯 sudo nano /etc/fstab 加入(視需要選⼀) /dev/sda1 /media/USB vfat defaults,noatime,nodiratime 0 0 /dev/sda1 /media/USB ntfs-3g defaults,noatime,nodiratime 0 0 設定檔 設定檔(續) • sudo nano /etc/minidlna.conf #埠號(預設值8200) #多媒體存放目錄,也可以在隨身碟 port=8200 media_dir=A,/media/USB/DLNA/music # 名稱 media_dir=V,/media/USB/DLNA/video friendly_name= [在UPnP網路上的名稱] media_dir=P,/media/USB/DLNA/picture # MiniDLNA使⽤sqllite資料庫來索相關檔案 db_dir=/home/pi/dlna_db #如要 log log_dir=/var/log 9 2017/10/11 目錄及多媒體準備 如果要自動啟動 • DLNA • 開機時就自動啟動: – music sudo update-rc.d minidlna defaults – video – picture • mkdir -p /home/pi/dlna_db • sudo chmod 777 /home/pi/dlna_db 啟⽤ 測試- Windows • 啟動 • Windows 檔案總管-媒體裝置可以看到 sudo service minidlna start – 在影片地方按滑鼠右鍵,選 Windows Media • 重啟動 Player 即可播放串流影⾳ sudo service minidlna restart (要使⽤有支援串流的播放器) • 更新 MiniDLNA 資料庫內容以符合目錄內檔案, 在新增或刪除影⾳圖檔案內容⼀定要執⾏ sudo service minidlna force-reload • 如無效則刪除 files.db 重新執⾏(不是好方法) 10 2017/10/11 Windows 操作-1 Windows 操作-2 測試- Android 檢視訊息 • 安裝 • http://Raspberry Pi 的IP位址:8200/ – MediaHouse UPnP / DLNA Browser App 其內容包括了Audio、Video及 Image 檔案數量 • 或其他 11 2017/10/11 目的 • 循環播放 USB 目錄下所有合格影片 • 影片媒體存於 USB 媒體播放廣告機 • 支援 – mp4,avi,mkv,mp3,mov,mpg,flv,m4v – 支援到 1920x1080 • 使⽤樹莓派 Pi 2B 或 Pi 3B 基本設定 更新 • 下載安裝 • 更新 – Raspbian Lite sudo apt-get update (如 Desktop 版本不要啟動圖形桌面) sudo apt-get upgrade • 參考相關單元 – 映像檔寫入 • 更新 firmware, kernel – 網路設定 rpi-update – 系統更新 12 2017/10/11 編輯 config-聲⾳ 編輯 config-顯示解析度 • 如要支援 hdmi • 內定顯示器解析度 1024x768 ,寬銀幕需要調整 • sudo nano /boot/config.txt 參考 config.txt 編輯 … hdmi_drive=2 hdmi_force_hotplug=1 … #Pretend all audio formats are supported hdmi_force_edid_audio=1 … 編輯 config-顯示解析度 編輯 config-GPU 記憶體 hdmi_group=2 #1280x1024 • 如解析度設太高,如出現 hdmi_mode=35 COMXAudio::Decode timeout #1920x1080 #1024x768 • 可以編輯 config.txt 設定加大 GPU memory , hdmi_mode=82 hdmi_mode=16 如原 64M 改為 128M (加以下資料到 config.txt) #1080x720 #800x600 gpu_mem=128 hdmi_mode=85 hdmi_mode=9 13 2017/10/11 支援掛載 USB • 支援 NTFS 檔案系統 sudo apt-get install -y ntfs-3g 如要支援掛載 USB • 建立掛載點(先不要插入 USB Stick) sudo mkdir /media/USB sudo chmod a+r /media/USB • 編輯 sudo nano /etc/fstab 加入(視需要選⼀) /dev/sda1 /media/USB vfat defaults,noatime,nodiratime 0 0 /dev/sda1 /media/USB ntfs-3g defaults,noatime,nodiratime 0 0 安裝軟體 sudo apt-get install -y omxplayer Omxplayer 操作 • 針對樹莓派設計的 command line 媒體播放器 • http://elinux.org/Omxplayer 14 2017/10/11 Omxplayer 操作 Omxplayer 選項 1 speed - d subtitle delay (- 250 ms) -w --hw Hw audio decoding 2 speed + f subtitle delay (+ 250 ms) -r --refresh Adjust framerate/resolution to video < rewind q exit -b --blank Set background to black > fast forward p/space pause/resume --loop Loop file. Ignored if file not seekable z show info - Volume - j previous audio stream +/= volume + --vol n set initial volume in millibels (default 0) k next audio stream seek -30 sec. --amp n set initial amplification in millibels i previous chapter seek +30 sec. (default 0) o next chapter seek -600 sec. --subtitles path External subtitles in UTF-8 srt n previous subtitle stream seek +600 sec. format m next subtitle stream s toggle subtitles w show subtitles x hide subtitles 操作 • omxplayer rtmp://... • omxplayer -o local rtsp://192.168.3.100:8554/stream1 廣告播放機 15 2017/10/11 自動登入 建立腳本 Raspbian jiessie 沒有 /etc/initab nano /home/pi/startvideos.sh • 故新增檔案 #!/bin/bash 存放目錄 sudo nano /etc/systemd/system/[email protected]/autologin.conf FILES=/media/USB/vedioloops/ [Service] current=0 無換⾏ ExecStart= for f in `ls $FILES | grep ExecStart=-/sbin/agetty --autologin pi --noclear %I 38400 linux ".mp4$\|.avi$\|.mkv$\|.mp3$\|.mov$\|.mpg$\|.flv$\|. m4v$"` • 自動登入 pi user do sudo systemctl enable [email protected] vids[$current]="$f" let current+=1 • 重啟 done sudo reboot 建立腳本 ( 續) 登入後執⾏腳本 max=$current 登入後執⾏腳本 current=0 while true; do sudo nano /etc/profile let current+=1 最後⼀⾏加入 if [ $current -ge $max ] clear then current=0 . /home/pi/startvideos.sh fi /usr/bin/omxplayer -o both -b "$FILES${vids[$current]}" • 重新開機 done 無換⾏ sudo reboot chmod 755 /home/pi/startvideos.sh 16 2017/10/11 Boot logo sudo apt-get install fbi • 腳本(下頁) 如要建立 boot logo /etc/init.d/asplashscreen • 圖片檔案 1920x1080 png 格式 /etc/splash.png sudo chmod a+x /etc/init.d/asplashscreen sudo insserv /etc/init.d/asplashscreen asplashscreen #! /bin/sh do_start () { /usr/bin/fbi -T 1 -noverbose -a /etc/splash.png exit 0 } case "$1" in start|"") do_start 數位像框實作 ;; restart|reload|force-reload) echo "Error: argument '$1&' not supported" >&2 exit 3 ;; stop) # No-op ;; status) exit 0 ;; *) echo "Usage: asplashscreen [start|stop]" >&2 exit 3 ;; esac 17 2017/10/11 軟體 • 文字命令模式顯示圖形程式 • fbi 顯示圖片 • fim (Fbi IMproved) fbi 安裝 操作 sudo apt-get update fbi -T 2 pic.jpg sudo apt-get -y install fbi fbi -d /dev/fb0 note-icon.jpg fbi -d /dev/fb0 -a *.jpg -a autozoom -autoup autozoom, but scale up only. --autodown autozoom, but scale down only 18 2017/10/11 鍵盤操作 應⽤ +, - zoom in/out • How can I refresh image displayed by fbi ESQ, Q quit without black screen transition? PgUp previous image PgDn,Space next image • fbi -T 1 -d /dev/fb0 -a -noverbose - Return next image t 60 -cachemem 0 /tmp/display- P pause (-t, toggle) image.png /tmp/image-alias-1.png V enable/disable status line /tmp/image-alias-2.png <number>g jump to image #<number> <number>s set zoom to <number>% fim 安裝 操作 sudo apt-get update fim -a example.jpg sudo apt-get -y install fim 所有圖形 fim -a *.jpg PageUp/PageDown 控制 產生 ASCII fim -a -t example.jpg 19 2017/10/11 操作選項 鍵盤控制 -a, --autozoom PageUp/Down Prev/Next image -t, --no-framebuffer (ascii art) +/- Zoom in/out -w, --autowidth a Autoscale w Fit to width h Fit to height j/k Pan down/up f/m flip/mirror R/r Rotate 10o CW/CCW ESC/q Quit 自動登入 Raspbian jiessie 沒有 /etc/initab • 故新增檔案 sudo nano 數位像框實作 /etc/systemd/system/[email protected]/autologin.conf [Service] ExecStart= ExecStart=-/sbin/agetty --autologin pi --noclear %I 38400 linux • 自動登入 pi user sudo systemctl enable [email protected] • 重啟 sudo reboot 20 2017/10/11 自動照片腳本 登入後執⾏腳本 • nano ~/slideshow.sh sudo nano /etc/profile #!/bin/bash INTERVAL=5 最後⼀⾏加入 #sequential play clear fbi -noverbose -a -t $INTERVAL /home/pi/slides/*.jpg #rabdom play . /home/pi/slideshow.sh #fbi -noverbose -a -t $INTERVAL -u /home/pi/slides/*.jpg • Chmod 755 ~/slideshow.sh • 重新開機 sudo reboot 目的 • 使⽤ Raspberry Pi 作為視訊監控伺服器 Pi USB WebCam 縮時攝影 • 需求 – USB WebCam – Raspberry Pi 21 2017/10/11 Check USB Camera Chech dev video • pi@raspberrypi:~ $ lsusb • ls video* • Bus 001 Device 005: ID 0781:5151 SanDisk Corp.