2019年1月11日 星期五

[Ubuntu] 觀看youtube影片的好幫手,youtube-dl + mpv播放器

瀏覽數
在Ubuntu上使用瀏覽器看Youtube的影片,其實蠻耗CPU的。Ubuntu在12.04以前的版本播放影片使用mplayer+vaapi(GPU硬解),CPU資源耗用非常小,播放體驗很棒!但後來Ubuntu的版本,mplayer 已經不支援 vaapi了。

但沒關係後來有 mpv 播放器,它實際上是從 mplayer 分支出來的,而且支援 VDPAU, VAAPI, DXVA2, VDA (GPU硬解)。

以Ubuntu 16.04 x86_64 作業系統為例:

1.安裝 mpv播放器:
sudo add-apt-repository ppa:mc3man/mpv-tests
sudo apt-get update && sudo apt-get install mpv

2.安裝vaapi及drm庫:
sudo apt-get install libdrm-intel1 libva1 vainfo

3.安裝 GPU 硬解驅動程式:
#Intel driver
sudo apt-get install i965-va-driver
#nvidia driver
sudo apt-get install libvdpau-va-gl1


4.檢查驅動:
vainfo

5.編輯mpv設定檔:
vi ~/.config/mpv/mpv.conf
我是用Intel CPU內建顯卡,底下是我的設定檔提供參考
=================================
#使用intel 顯卡硬解 ------
vo=vaapi
hwdec=vaapi
#--------------------------
#使用nvidia 顯卡硬解----------
#vo=vdpau
#hwdec=vdpau
#-------------------------------
#最上層顯示---
ontop
#--------------
#不顯示視窗外框---
no-border
#-------------------
#lang=zh,chi
#預設字幕語系--------------------------------------
sub-codepage=utf8:cp950:gb2312:gb18030:enus
#----------------------------------------------------
#sub-scale=3
#播放時停用螢幕保護---
stop-screensaver=yes
#-----------------------
###########################
#volume=70
#af=volume=volumedb=10
#af=volume=10.1
###########################
#預設聲音大小---
volume=100
#----------------
#聲音可加大3倍----
volume-max=300
--------------------
#autofit=300
###########################
#預設播放器大小----------
autofit-larger=60%x60%
#--------------------------
#預設播放位置-螢幕正中央-----
geometry=50%:50%
#-------------------------------
#[extension.mjpg]
#demuxer-lavf-probescore=25
#vf-del=vdpaupp
#預設快取-----
#cache=8192
#mpv git-2019-04-25-71ad1e2 以後版本改成 auto/yes/no
cache=auto
#--------------
=================================

6.試試播放本機的影片:
mpv /mp4/myvideo.mp4
按 q 鍵可結束播放
按 f 鍵可全螢幕切換
按 9 鍵聲音小,按 0 鍵聲音大
按 ↑ 鍵前進60秒,按 ↓ 鍵後退60秒
按 → 鍵前進10秒,按 ← 鍵後退10秒

7.安裝 youtube-dl:
可參考: https://goo.gl/c7W3be

8.使用 mpv 直接播放 youtube 影片:
a.直接播放:
mpv https://www.youtube.com/watch?v=X0vK_57vQ7s 
b.使用一些參數播放:
mpv --autofit=350 --ontop --geometry=100%:97% --autosync=1 --mc=1 --cache=8192 --loop=0 --no-border https://www.youtube.com/watch?v=X0vK_57vQ7s

9. youtube-dl + mpv 播放:
youtube-dl -q --no-check-certificate --prefer-ffmpeg -o- https://www.youtube.com/watch?v=X0vK_57vQ7s | mpv --autofit=350 --ontop --geometry=100%:97% --autosync=1 --mc=1 --cache=8192 --loop=0 --no-border -

10.
可將上述指令寫成函數:
將底下的函數程式碼加入 ~/.bashrc
vi ~/.bashrc
在檔案底部加入以下程式碼:

youtv() {
  [ $# == 0 ] && echo "請輸入Youtube影片網址URL" && return
  mxy="--autofit=350 --ontop --geometry=100%:97%"
  msync="--autosync=1 --mc=1"
  mm="mpv $mxy $msync --cache=auto --loop=0"
  tv="$mm --no-border"
  mp3="$mm --no-video --shuffle"
  url=$1
  border=$2
  if [ "$border" == "" ] ; then
    read -p "只播放音樂(請輸入mp3):" border
  fi
  case $border in
    "mp3") $mp3 $url ;;
    *) youtube-dl -q --no-check-certificate --prefer-ffmpeg -o- $url | $tv - ;;
  esac


存檔後,Ctrl+d 關閉 terminal。
再重新開啟 terminal,然後執行youtv "youtu影片網址" 即可,如執行:
youtv https://www.youtube.com/watch?v=X0vK_57vQ7s
若是音樂影片只想聽音樂就輸入mp3,然後按[Enter],就可以聽音樂。
直接按[Enter],即可播放影片。如下圖:


這樣可以一邊工作,有空時欣賞一下水族箱 ,而且CPU耗用很小。

沒有留言: