highlight.js

星期四, 4月 13, 2017

使用 Raspberry 硬體加速播放影片當影片展示機

在 Raspberry Pi 中播放影片檔可能會發現有嚴重的卡頓, 這是因為你所使用的播放程式並沒有使用硬體解碼的功能, 要解決這個問題, 最簡單的方式就是使用 omxplayer 程式, 因為這個程式本來就是專為 Raspberry Pi 設計。不過 omxplayer 並沒有播放清單的設計, 如果你想重複連續播放多個檔案, 就無法完成。還好, 網路上已經有善心人士提供了簡易的 shell script, 可以幫你將指定的資料夾當成播放清單, 自動重複一一播放資料夾中影音檔案的工作。

像是我就將所有的影音檔放在 /home/pi/share/pv 下, 然後在 /home/pi 下建立一個 play.sh 檔:

#!/bin/sh

# get rid of the cursor so we don't see it when videos are running
setterm -cursor off

# set here the path to the directory containing your videos
VIDEOPATH="/home/pi/share/pv" 

# you can normally leave this alone
SERVICE="omxplayer"

# now for our infinite loop!
while true; do
 if ps ax | grep -v grep | grep $SERVICE > /dev/null
 then
  sleep 1;
 else
  for entry in $VIDEOPATH/*
  do
   clear

   # -r for stretched over the entire screen
   omxplayer -r $entry > /dev/null
  done
 fi
done

再使用以下的指令將 play.sh 變更為可執行檔:

sudo chmod +x videoloop.sh

就可以執行 /home/pi/play.sh 來重複一一播放 /home/pi/share/pv 下的所有影音檔了。如果你想要讓 Raspberry Pi 在開機後自動執行上述的 play.sh 檔, 可以修改 /home/pi/.config/lxsession/LXDE-pi/autostart 檔, 在最後加上一行執行 /home/pi/play.sh 的指令即可:

@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no-splash
@point-rpi
@/home/pi/play.sh

上述方法只對開機後會登入圖形化介面的設定有效, 如果你是設定成開機後進入文字介面, 就要使用別的方式, 這裡不再多做介紹。