顯示具有 mp4 標籤的文章。 顯示所有文章
顯示具有 mp4 標籤的文章。 顯示所有文章

2021年12月3日 星期五

[Ubuntu] 使用 yt-dlp 取代 youtube-dl 下載 youtube 上的音樂/影片

瀏覽數
系統: Ubuntu 20.04.x64 or Android手機上的Termux

最近使用 youtube-dl 指令下載 youtube 的影音,下載速度真的可以用「龜速」來形容。上網爬文了一下,有一個 youtube-dl 分支程式 yt-dlp,指令使用的方式幾乎一樣,但是下載速度超快的,所以改用 yt-dlp 來 [下載 | 搭配 mpv 即時觀看] youtube上的影音。

安裝方式如下:

1. 安裝

由於使用 python 的 pip 的方式安裝,可以先參考這篇 https://tinyurl.com/2s427cnk 如何安裝 youtube-dl。

升級 python3.8 +pip3:
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.8
sudo update-alternatives --config python
替代項目 python(提供 /usr/bin/python)有 3 個選擇。
  選項       路徑              優先權  狀態
------------------------------------------------------------
  0            /usr/bin/python3.8   3         自動模式
  1            /usr/bin/python2.7   1         手動模式
  2            /usr/bin/python3.7   2         手動模式
* 3            /usr/bin/python3.8   3         手動模式
按下 <enter> 鍵以保留目前選項[*],或是輸入選擇編號:
輸入想要的python版本選項編號: 3


檢查python版本:
python -V
安裝pip3:
sudo apt install python3-pip
檢查pip3版本:
pip3 -V

使用 pip3 安裝更新 pip 及 yt-dlp:
sudo -H pip3 install -U pip yt-dlp

安裝 mp3gain (可以將音量標準化的一個軟體):
sudo apt update && sudo apt install snapd && sudo snap install mp3gain

安裝 mpv 影音播放軟體:
sudo apt install mpv


2. 自訂函數

you2mp3()  #下載 youtube 轉成 mp3
you2mp4()  #下載 youtube 轉成 mp4
youtv()  #直接使用 yt-dlp + mpv 線上聽音樂或觀看影片

編輯 .bashrc 將you2mp3() you2mp4() youtv() 3個自訂函數貼到 .bashrc 檔案的最下方並存檔
vi ~/.bashrc

you2mp3() {
  #如果是下載整個播放清單,網址須符合右方的格式 => https://www.youtube.com/playlist?list=PLf4gvJzKEA1IB_qHaFz4uaIy2Yq6jqFKy
  #youtube-dl -cit --extract-audio --audio-format mp3 $1
  yt-dlp -ci --extract-audio --audio-format mp3 $1
  if [ $2 ] ; then
      find $(pwd) -type f -iname \*.mp3 |
      while read f ;do echo '處理中………"$f"'
        mp3gain -p -a -r -k -d 6 "$f"
        #mid3iconv -e gbk --remove-v1 "$f" &>/dev/null
      done
  fi
  echo "$1" | grep -i "?v=" > /dev/null && f=$(echo "$1" | sed -e "s/^.*\?v=\(.*$\)/\1/") || f=$(echo "$1" | sed -e "s/^.*[a-z]\/\(.*$\)/\1/")
  if [ "$f" != "" ] ; then
    f1=$(find ./ -name "*$f*.mp3")
    echo "mp3gain音量處理 $f1"
    mp3gain -p -a -r -k -d 6 "$f1"
  fi
}
you2mp4() {
  如果是下載整個播放清單,網址須符合右方的格式 => https://www.youtube.com/playlist?list=PLo4HKDlY6L_nWnTF8EYBC0EeykU0LNYis
  #youtube-dl "$1" -ci -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio' --merge-output-format mp4
  yt-dlp "$1" -ci -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio' --merge-output-format mp4
}
youtv() {
  [ $# == 0 ] && echo "請輸入Youtube影片網址URL" && return
  mxy="--autofit=350 --ontop --geometry=100%:97%"
  msync="--autosync=1 --mc=1"
  mm="mpv $mxy $msync --cache=yes --loop=0"
  tv="$mm --no-border"
  #mp3="$mm --no-video --shuffle"
  mp3="mpv --cache=yes --no-video --shuffle"

  url=$1
  border=$2
  if [ "$border" == "" ] ; then
    read -p "只播放音樂(請輸入mp3):" border
  fi
  case $border in
    "mp3") $mp3 $url ;;
    *) yt-dlp -q --no-check-certificate --prefer-ffmpeg -o- $url | $tv - ;;
  esac
}


重新載入 ~/.bashrc
source ~/.bashrc


3. 使用

下載youtube影音儲存為mp3音樂檔(並標準化音量95db)
you2mp3 https://www.youtube.com/watch?v=xxxxx

下載youtube影音儲存為mp4影音檔
you2mp4 https://www.youtube.com/watch?v=xxxxx

觀看公視直播
youtv https://www.youtube.com/watch?v=JAzRXylm3M0

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耗用很小。

2016年2月20日 星期六

[Ubuntu] 使用 peerflix 串流觀看 BT(torrent) 種子的影片

瀏覽數

來源: http://www.webupd8.org/2014/03/peerflix-stream-torrents-with-vlc-or.html


網路上有很多影片,其來源是 BT(BitTorrent),若要觀看必須先使用BT相關軟體(如qBittorrent),先將影片完整下載到電腦上才能觀看。

peerflix 是用 node.js 開發的程式,可以將 BT 下載的影片,在本機電腦上建立一個串流網路服務,播放程式再使用串流方式觀看影片。簡單的說就是,影片可以一邊下載一邊觀看。

首先必須先安裝node.js,再使用 npm (Node Package Manager 是Node.js 的主流套件管理程式) 安裝 peerflix。

假設已經安裝好 node.js 與 npm,安裝只要執行:
npm install -g peerflix


1.使用 手機 or mpv  看影片:
peerflix /tmp/movie.torrent
 



手機 看影片:
用手機瀏覽器開啟串流網址 http://192.168.0.13:8888/ ,再選擇要使用那個影片播放app開啟,(以我的Android 手機為例,我通常使用mxplayer來播放),即可觀看影片。

mpv+字幕檔 看影片:
mpv http://127.0.0.1:8888 --sub-files=/tmp/movie.ass


2.使用 mplayer 看影片:
peerflix http://some-torrent/movie.torrent -m
or
peerflix /tmp/movie.torrent -m

使用 mplayer + 字幕檔 看影片 :
peerflix http://some-torrent/movie.torrent -m -t /tmp/movie.ass
or
peerflix /tmp/movie.torrent -m -t /tmp/movie.ass
 

3.使用 mpv 看影片:
peerflix http://some-torrent/movie.torrent -k 
or
peerflix /tmp/movie.torrent -k

使用 mplayer + 字幕檔 看影片 :
peerflix http://some-torrent/movie.torrent -k -t /tmp/movie.ass 
or
peerflix /tmp/movie.torrent -k -t /tmp/movie.ass

 
PS:
觀看影片的方式,建議使用上述的第1種方式,比較彈性。詳細參數使用請輸入:
peerflix --help

2015年11月27日 星期五

[Ubuntu] 使用 youtube-dl 指令下載 youtube 上的音樂/影片

瀏覽數
來源: http://blogger.gtwang.org/2014/02/youtube-dl.html

youtube-dl 是一個以 Python 所寫成的小工具,適用於各種作業系統,常見的 Windows、Linux 與 Mac OS X 等都可以使用,其原始程式碼亦可從 GitHub 上下載。

1.安裝:

在 Ubuntu Linux 中,可以使用 apt 來安裝 youtube-dl:
sudo apt-get install youtube-dl

雖然使用 apt 安裝很方便,但是由於 YouTube 這類的影音網站更新的速度很快,如果安裝的 youtube-dl 版本不是最新的,就有可能無法使用,這種狀況在使用官方的套件庫時會比較容易出現,如果要避免這樣的困擾,可使用 pip 來安裝:
sudo apt-get install python python-pip
sudo pip install --upgrade youtube-dl

2.下載單一影片:

複製單一影片網址,例如: https://www.youtube.com/watch?v=O84CCjrcmR8

單一影片下載儲存為 mp4
youtube-dl https://www.youtube.com/watch?v=O84CCjrcmR8

單一影片下載儲存為 mp3
youtube-dl --extract-audio --audio-format mp3 https://www.youtube.com/watch?v=O84CCjrcmR8

3.下載播放清單內所有的影片:

複製播放清單網址,例如: https://www.youtube.com/watch?v=O84CCjrcmR8&list=PLf4gvJzKEA1IB_qHaFz4uaIy2Yq6jqFKy
將播放清單網址改成: https://www.youtube.com/playlist?list=PLf4gvJzKEA1IB_qHaFz4uaIy2Yq6jqFKy

播放清單下載儲存為 mp4
youtube-dl -cit https://www.youtube.com/playlist?list=PLf4gvJzKEA1IB_qHaFz4uaIy2Yq6jqFKy

播放清單下載儲存為 mp3
youtube-dl -cit --extract-audio --audio-format mp3 https://www.youtube.com/playlist?list=PLf4gvJzKEA1IB_qHaFz4uaIy2Yq6jqFKy

4.直接使用 mplayer 看 youtube 的影片:

將 youtube-dl 下載的資料流,利用管線導入 mplayer,不需下載就可以直接播放。
echo "youm() {youtube-dl -q -o- \$1 | mplayer -cache 8192 -}" >> ~/.bashrc
source ~/.bashrc
youm https://www.youtube.com/watch?v=O84CCjrcmR8

 

2015年8月7日 星期五

[Ubuntu] 將縮時照片製作成影片

瀏覽數
Ubuntu or Linux 利用 mencoder 指令,將多張照片製作成一個影音檔。

1.安裝指令:
sudo apt-get install mencoder

2.假設縮時照片的目錄在/tmp/myphoto 底下,先切換目錄:
cd /tmp/myphoto

3.製作含有背景音樂的影片:
mencoder mf://*.jpg -mf fps=3:type=jpg -ovc x264 -lavcopts vcodec=mpeg4:mbd=2:trell -vf scale=1920:1440 -audiofile /z/k.mp3 -oac mp3lame -o /tmp/_t.avi

4.製作無聲音的影片:
mencoder mf://*.jpg -mf fps=3:type=jpg -ovc x264 -lavcopts vcodec=mpeg4:mbd=2:trell -vf scale=1920:1440 -o /tmp/_t.avi

5.參數說明:

fps=3 (每秒3張照片幀數)

-audiofile /z/k.mp3 (背景音樂的檔案路徑)



公司窗景,用手機每20秒拍攝一張,製作成縮時影片:

2012年6月1日 星期五

[Ubuntu] mp4影片合併

瀏覽數
來源: http://blog.longwin.com.tw/2012/04/linux-mencoder-video-mp4-merge-2012/

於 Linux 使用 Mencoder 將多個影片合併 (MP4 Merge)


mencoder 1.mp4 2.mp4 3.mp4 -oac pcm -ovc copy -o output.mp4