關於「m3u」和「mpv」和「smplayer」的操作使用 [論壇 - Ubuntu 與工具程式及軟體推薦]
正在瀏覽:
1 名遊客
關於「m3u」和「mpv」和「smplayer」的操作使用 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 36
HP : 179 / 899
![]() |
這篇文章放在我的硬碟一段時間了,一直沒收尾,所以也沒發表在這個論壇,
今天稍微整理一下收尾,終於可以發表了。 下面一些內容拆解,放在「GitHub」上。 ![]() ================================================================================ ## 撰寫本文時的環境 * Xubuntu 16.04 amd64 英文界面 ================================================================================ ## Wikipedia * Playlist (中文頁面) * M3U (中文頁面) ================================================================================ ## 緣起 之前看到這篇「[分享] 建立數位電視頻道表檔」,有稍微做了一點探索,學到一些設定, 只不過有些東西跟該篇原本議題無關,所以就沒回文了。 剛好這幾天在整理一些東西,又碰觸到這個議題了,一些想寫的靈感又來了,所以就紀錄下來。 這些靈感也是在「回文」的時候,找到自己之前寫的「回覆」, 然後又跟最近有碰到的一些工具,觸發了一些心得可以寫出來。 此篇主要在介紹「smplayer」和「mpv」的用法。 我之前在這篇「回覆#2」,有稍微提到一些用法。 然後此篇再加上「m3u」的用法說明。 當然對這部份,我也還沒研究到很深入,只有研究到滿足自己需要的功能而已。 其他人也許有更多心得,也可以來補充說明,感恩先。 老實說,雖然我在「這篇」提到的一些影音播放軟體「smplayer」,「vlc」,「audacious」,雖然都有安裝, 不過我發現我每天常開的軟體就那幾個,「Terminal」「vim」「dolphin」「atom」, 而像是影音,目前大多都是在「瀏覽器Firefox」上面搞定,都看網頁上面的,例如「Youtube」,節省「硬碟的空間」和「整理的時間」:p,不過若要「重複看或聽」有可能需要整理連結就是了,所以整理的時間,有可能還是無法省略,除非是看了一次就「Let it go」,再不然就依賴「搜尋引擎」,「重新找尋」,享受「網路衝浪」或是「溫故知新」的樂趣。 以上囉唆了一堆,以下正文開始, 不過還是繼續囉唆,因為文會很長 :p ================================================================================ ## 前置作業 執行下面指令安裝「smplayer」這個套件。
顯示
因為在「Ubuntu 16.04」,「smplayer」預設會使用「mpv」來播放, 所以安裝了「smplayer」,也會一併安裝「mpv」這個套件。 在安裝前,可以先執行下面指令,觀看套件相依性
顯示
在「Ubuntu 14.04」,「smplayer」應該是使用「mplayer」,可以參考「這一頁」來觀看相依的套件。 一些套件探索的技巧,請參考「[索引] 套件操作實務」。 另外安裝好系統後,我也會根據「[教學] Ubuntu 14.04的調校」這篇,安裝一些相關的套件,在「<三、補足篇> / 2」。 ================================================================================ ## 如何使用 「mpv」這個指令 先執行「man mpv」 可以看到下面這一段 SYNOPSIS mpv [options] [file|URL|PLAYLIST|-] mpv [options] files 大概就可以了解,如何給參數。 ### 播放單一檔案 執行下面指令,就可以透過「mpv」來播放「demo.mp3」這個檔案。
執行下面指令,就可以透過「mpv」來播放「demo.mp4」這個檔案。
以上是使用「相對路徑」,也可以採用「絕對路徑」 例如
或是
或是
### 播放遠端檔案 透過「mpv」,也可以播放遠端的檔案,例如:透過「http」。 可以先在自己的機器測試, 先在剛剛的「demo.mp3」上的資料夾,執行下面指令
然後執行下面指令,來播放。
註: 關於「Streaming media(串流媒體)」的議題,我尚未深究, 以上只是舉例,用來說明「mpv」後面可以接「網址」, 其他深入的技術細節,就需要另外再研究了。 關於「PHP Built-in web server」的用法,我在「這篇」和「這篇」有提到, 另外也可以採用「python2」或「python3」來起一個簡易的「http server」。 ## 播放「Youtube」上的影片。 而「mpv」也支援播放「Youtube」上的影片,就不需要在瀏覽器上觀看了。 以下面這個網址為例 https://www.youtube.com/watch?v=AGW40bNJ-xk 可以執行下面指令,就會播放上面網址的影片了。
## 播放多個檔案或網址 執行下面指令,就可以播放多個檔案
執行下面指令,就可以播放多個「Youtube」上的影片
上面的指令,也可以拆成多行的方式
## 播放「playlist」 也可以將剛剛要播放的檔案,編成一個檔案叫做「demo.m3u」, 內容如下
然後就可以執行下面指令播放上面兩個檔案
我本來以為副檔名可以任意使用,結果我使用「demo.txt」就會出現下面提到的訊息 執行
顯示
所以指令,要改成以下的下法,就可以成功播放了 執行
至於「m3u」或「m3u8」,上面只是簡易的格式, 進一步的內容格式,請參考「Wi / M3U (中文頁面)」, 以下討論到「smplayer」的時候,會再度提到「M3U」。 ## 播放遠端的「m3u檔」 再來做個有趣的測試 產生一個檔案叫做「remote.m3u」,內容一樣是剛剛「demo.m3u」的內容 可以執行下面指令來產生「remote.m3u」
或是執行下面指令來產生「remote.m3u」
上面的技巧,可以參考「這篇」。 然後執行下面指令,起一個簡易的「http server」。
接下來就可以執行
然而我們也可以再產生一個檔案「local.m3u」,內容如下
可以執行下面指令產生「local.m3u」
然後執行下面指令,播放「local.m3u」
就會看到
另外也可以參考「[影片教學][TOSSUG] Debian 套件打包工作坊」這個討論案例,將「m3u」檔案放在「GitHub」上。 關於「mpv」的使用方法,以上簡易介紹完畢,接下來要來談「smplayer」。 ================================================================================ 剛一開始提到「smplayer」,在「16.04」,預設是使用「mpv」來播放, 我們可以先執行「smplayer, 然後點選,功能選單「Options / Preferences」,會出現一個設定視窗「SMPlayer - Preferences」。 在左半部「General」,右半部第一個頁籤「General」, 有一個選項「MPlayer/mpv executable:」,一開始預設的值是「/usr/bin/mpv」, 您也可以改成「/usr/bin/mplayer」, 這裡我們不改,維持原狀。 然後點選,功能選單「Open / URL...」,會出現一個對話框「SMPlayer - Enter URL」。 然後在「URL:」填入「https://www.youtube.com/watch?v=AGW40bNJ-xk」,按下「OK」按鈕,就會播放影片了。 再來在「Terminal」執行下面指令
顯示
可以看到上面藍色字的部份,是透過「/usr/bin/mpv」來播放, 下面「...略...」是被我省略掉的部份,請自行執行指令,觀看完整的內容。 ================================================================================ 接下來提,剛剛說會再度提到的「m3u」和「m3u8」, 點選「smplayer」的功能選單「Help / Open configuration folder」, 就會透過您桌面環境,預設的「File Manager」開啟「~/.config/smplayer」這個資料夾, 可以執行
顯示
可以看到有三個副檔名是「m3u8」的檔案
可以對照「smplayer」的功能選單
我們以「Open / Favorites」為例 剛剛在播放「https://www.youtube.com/watch?v=AGW40bNJ-xk」的時候, 我們就可以點選「Open / Favorites / Add current media」。 然後執行下面指令,觀看「~/.config/smplayer/favorites.m3u8」的內容。
顯示
重複上面的動作,我們播放另一個影片「https://www.youtube.com/watch?v=Lqe3MuCyh9o」。 一樣點選「Open / Favorites / Add current media」。 然後執行下面指令,觀看「~/.config/smplayer/favorites.m3u8」的內容。
顯示
然後再度點選功能選單「Open / Favorites」, 就可以看到剛剛紀錄的兩則影片標題,列在選單上面, 接下來點選「Open / Favorites / Edit」,就可以編輯剛剛的列表, 可以在這裡做「CRUD」的動作,比上面的方式更簡便操作。 我們在剛剛第二筆的紀錄, 點選「Name」那個欄位,修改為「COSCUP 2015 紀錄片-完整版」,按下「OK按鈕」。 然後執行下面指令,觀看「~/.config/smplayer/favorites.m3u8」的內容。
顯示
================================================================================ 接下來, 複製一份「~/.config/smplayer/favorites.m3u8」到「~/Videos/favorites.m3u8」
複製一份「~/.config/smplayer/favorites.m3u8」到「~/Videos/original.m3u8」
然後用純文字編輯器,修改「~/Videos/favorites.m3u8」這個檔案
最後修改成如下的內容
把「,,0」拿掉。 然後點選「Options / Playlist」或是「功能列的第六個ICON按鈕」, 會出現「Playlist」的操作畫面, 然後點選「下方功能列的第一個ICON按鈕」或是「Open / Playlist」, 會出現一個「Choose a file」的對話框, 選擇「~/Videos/original.m3u8」,按下「Open」按鈕載入。 會發現「Name」那個欄位是「0」。 若是選擇把「,,0」拿掉的「~/Videos/favorites.m3u8」哪個檔案載入。 會發現「Name」那個欄位就會正常顯示
註:播放的時候,「Playlist」顯示的「Name」會在重新抓取,「Name」那個欄位顯示會被修改掉, 但不會更改到「~/Videos/favorites.m3u8」這個檔, 除非您按下存檔,選擇該檔,覆蓋掉,才會修改到「~/Videos/favorites.m3u8」這個檔的內容。 ================================================================================ 上面的功能介紹完了,我們就可以拿來應用, 到「YouTube」,使用「新聞直播」當關鍵字查詢,就可以查到一些「新聞臺」的直播頻道。 就可以按照上面介紹的方式,設定在「Open / TV」那裡, 也可以用純文字編輯器,直接編輯「~/.config/smplayer/tv.m3u8」這個檔案,依據上面提到的「M3U8」的格式來編輯。 要注意的就是在編輯時,請先把「smplayer」關掉,不然編輯的內容,會在「smplayer」關掉時,就覆蓋掉了。 除了在「瀏覽器」查詢這些「Youtube」的網址, 在「Xubuntu 16.04」,「smplayer」也可以搭配另一個軟體「smtube」。 我之前在這篇「回覆#2」,有稍微提到。 執行下面指令安裝「smtube」這個套件,
然後就可以在「smplayer」的功能選單「Options / YouTube Browser」,呼叫起「smtube」, 就可以在「smtube」查詢,例如用「新聞直播」當關鍵字查詢,就會出現列表, 然後點選要看的那筆,就會在「smplayer」播放該影片了。 另外在手機也有「YouTube」的「App」,所以也可以直接在這個「App」查詢「新聞直播」,一樣可以收看「新聞臺」。 ================================================================================ 而「Radio」也可依樣畫葫蘆,在「Google」,用「internet radio」查詢, 就會查詢到一些網站。 除了可以直接在瀏覽器上面聆聽廣播,也可以找到該廣播的來源網址, 就可以按照上面提到的方式,設定在「smplayer」的功能選單「Open / Radio」那, 對照的檔案是「~/.config/smplayer/radio.m3u8」, 注意,除了使用「smplayer」也可以使用「mpv」或「mplayer」來下指令聆聽喔,或是「vlc」也行。 當然也可以參考「[教學] Ubuntu 14.04的調校」提到的「radiotray」。 最近在「GitHub」上「查詢的時候」,發現到還有另一個專案「radiotray-ng」, 原本的「radiotray」,「radiotray-ng」則是採用「C++」來撰寫,可以到「releases」來下載「Deb檔」安裝, 安裝「Deb檔」,請參考「這篇」和「這篇」討論。 目前裝起來,操作方式跟以前沒多大差別,目前我注意到的差異是設定檔, 「radiotray」是採用「xml」, 「radiotray-ng」是採用「json」。 * ~/.local/share/radiotray/bookmarks.xml <-- radiotray * ~/.config/radiotray-ng/bookmarks.json <-- radiotray-ng 另外安裝完後,當您重開機,就會自動啟動 您可以執行
顯示
就可以知道安裝過程產生了「/etc/xdg/autostart/radiotray-ng.desktop」這個檔。 這個檔就是讓「radiotry-ng」開機自動執行的設定。 另外還有一個套件「betaradio (GitHub) (Blog)」,雖然現在台灣的站台目前應該不能使用外部的程式來連線聆聽了。 ================================================================================ ## Desktop Entry 接下來也可以透過撰寫「Desktop Entry」來放在下面的路徑,可以來點選啟動。 ### 桌面 * ~/Desktop * ~/桌面 <-- 若是中文語系界面,請參考「$ man xdg-user-dir」或「/etc/xdg/user-dirs.defaults」 ### 應用程式啟動選單 (App Launcher) * /usr/share/applications * ~/.local/share/applications 或是透過來放在下面的路徑,來達成「Desktop Application Autostart」的機制。 ### 開機進入桌面自動啟動 * /etc/xdg/autostart * ~/.config/autostart ## 相關文章 * UnityLaunchersAndDesktopFiles 以下範例,先以「http://www.youtube.com/watch?v=Lqe3MuCyh9o」這個網址為範例來說明,請再自行修改「網址」或「mpv的參數」。 ================================================================================ ### 範例 - 桌面 執行下面指令,產生「~/Desktop/tv-news.desktop」這個檔案,並設定擁有者執行權限。
也就是「~/Desktop/tv-news.desktop」內容如下
這樣就可以在桌面看到一個「啟動圖示」,標題是「TV-新聞」, 只要「點選」該「啟動圖示」,就會播放剛剛的影片了。 相關討論: * #2 回覆: mint linux 可在卓面建立 SHORT CUT 嗎? * #11 回覆: 如何安裝 StarUML-v2.8.0-64-bit.deb ? * #8 回覆: Chrome 45 以上及Firefox 52以上 版本不再支援網路ATM.. ================================================================================ ### 範例 - 應用程式啟動選單 (App Launcher) 執行下面指令,產生「~/.local/share/applications/tv-news.desktop」這個檔案
也就是「~/.local/share/applications/tv-news.desktop」內容如下
這樣就可以在您的「桌面環境」的「應用程式啟動選單」,可以找到「啟動圖示」。 以我的環境「Xubuntu 16.04 amd64 英文界面」為例, 桌面環境是「XFCE」, 使用的是「Whisker Menu」。 所以就可以除了可以使用「關鍵字」查到剛剛設定的「啟動圖示」, 也可以在「Multimedia」和「Internet」這兩個分類,找到剛剛設定的「啟動圖示」, 並且也可以在該「啟動圖示」按下滑鼠右鍵,會出現一個「功能選單」,有三個選項可以選, * Add to Favorites * Add to Desktop * Add to Panel 選「Add to Favorites」,該「啟動圖示」就會出現在「Favorites」這個分類。 選「Add to Desktop」該「啟動圖示」就會在「桌面」出現。 選「Add to Panel」該「啟動圖示」就會在「Panel」上出現。 相關討論: * #11 回覆: 如何安裝 StarUML-v2.8.0-64-bit.deb ? * #8 回覆: Chrome 45 以上及Firefox 52以上 版本不再支援網路ATM.. ================================================================================ ### 範例 - 開機進入桌面自動啟動 執行下面指令,產生「~/.config/autostart/tv-news.desktop」這個檔案
也就是「~/.config/autostart/tv-news.desktop」內容如下
這樣在進入桌面時,就會自動播放剛剛的設定的影片了。 相關討論: * #4 回覆: 開機自動啟動程式在ubuntu14.04 * #2 回覆: mint linux 可在卓面建立 SHORT CUT 嗎? ================================================================================ ## 注意事項 * 有時候「mpv」無法播放「youtebe影片」,請先確認網址是否存在, 再來則是可以執行「youtube-dl --update」更新「youtube-dl」。 * 關於「mpv」支援的不只是「YouTube」,可以參考「這一頁」瞭解支援的網站, 例如,也有支援「Twitch」,所以也可以執行「mpv $twitch_url」。 ================================================================================ 我用「Python」寫了一個「原型(Prototype)」放在「GitHub」上, 執行下面指令,下載
執行下面指令,執行「yuply」。
目前功能很簡單,只是使用「webkit2」載入「YouTube頁面」, 可以瀏覽「YouTube頁面」,跟一般瀏覽器瀏覽「YouTube頁面」的功能是一樣的。 而「YouTube頁面」有自動播放的機制,也可以查詢影片。 寫這個程式的原型功能,主要是要讓mpv來播放「YouTube影片」, 也就是在逛到某個「YouTube影片頁面時」時,在「indicator」那選「使用mpv播放」,或是「按下F5」。 就會使用mpv來播放該影片。 不過目前我只有在我的環境「Xubuntu 16.04 amd64」測試過,還沒有很嚴謹的去測試它,有些例外可能沒考慮到, 有興趣深究的人,可以把它當個探索的起點,來研究程式碼用到那些lib,達成這樣的效果。 也可以研究如何改寫,例如:改寫成有「Bookmark」的功能,用「m3u」的格式來儲存。 這部份我就不再特別去維護它了。 另外這個我是直接寫在一個檔案,並且全部放在一個class裡,也可以參考這個「專案」來拆開重構程式碼 ================================================================================ 後記 (2017-07-10): * #3 回覆: ubuntu搭建推流服務器Nginx+rtmp ================================================================================ 後記 (2018-02-23): * #6 回覆: MP4檔案播放問題 (播放工具整理) ================================================================================ 以上提供參考 報告完畢 ![]()
2017/5/27 15:44
|
||||||||||
![]() |
回覆: 關於「m3u」和「mpv」和「smplayer」的操作使用 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 36
HP : 179 / 899
![]() |
剛剛「回文」時,
聯想到之前在討論「另一篇」時, 後來在看「mpv / ytdl_hook.lua」,測試的時候,額外發現到一件事,有些靈感想要寫了一篇, 不過當下沒寫,隔天就忘了,先簡單寫文如下備忘,其實腦袋中還有其他想寫的,也許有空再來重新整理。 以下測試的環境在「Ubutnu 18.04」。 先連到下面的網址 https://www.youtube.com/channel/UCIm-u7l65hp5jboSJrB7U5w/playlists 選其中一個播放列表如下的網址 https://www.youtube.com/watch?v=qAVdTrC7YyU&list=PL6S9AqLQkFpqAHXlqoH2JpvOSmku7WjRU 接著開啟「Terminal」, 執行下面指令 (注意: 下面網址有將「v=qAVdTrC7YyU」拿掉喔)
或是也可以執行
就可以播放該「Playlist」裡面的影片, 接著在畫面上,滑鼠游標移到下方,就會出現一個「panel(儀表板)」, 在「panel(儀表板)」左方就有「左」和「右」的「圖示按鈕」, 按下「右」的「圖示按鈕」,就可以播放下一個影片。 也可以使用鍵盤的快速鍵,「<」和「>」,來切換上一個影片和下一個影片。 ================================================================================ 若是使用「smplayer」,則是執行下面指令
就我所知,關於「smplayer」預設應該也是使用「mpv」來播放。 ================================================================================ 以上提供參考 報告完畢 ![]()
2018/12/26 13:29
|
||||||||||
![]() |
回覆: 關於「m3u」和「mpv」和「smplayer」的操作使用 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 36
HP : 179 / 899
![]() |
2019/4/11 18:46
|
||||||||||
![]() |
回覆: 關於「m3u」和「mpv」和「smplayer」的操作使用 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 36
HP : 179 / 899
![]() |
關於「mpv --wid」的用法,
之前簡單寫了一些範例,放在「GitHub」上, 是探索「smplayer」原始碼,所學到的。 以上提供參考,報告完畢 ![]() ## 相關討論 跟這個議題有點相關的討論,可以對照著看 * 不知如何能不顯示標題最小化最大化關閉
2019/4/11 18:57
|
||||||||||
![]() |
回覆: 關於「m3u」和「mpv」和「smplayer」的操作使用 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 36
HP : 179 / 899
![]() |
2019/4/12 8:44
|
||||||||||
![]() |
回覆: 關於「m3u」和「mpv」和「smplayer」的操作使用 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 36
HP : 179 / 899
![]() |
關於「mpv --ytdl-format」的用法
範例如下 先執行
或是執行
顯示 [youtube] Lqe3MuCyh9o: Downloading webpage [youtube] Lqe3MuCyh9o: Downloading video info webpage [youtube] Lqe3MuCyh9o: Downloading MPD manifest [info] Available formats for Lqe3MuCyh9o: format code extension resolution note 139 m4a audio only DASH audio 50k , m4a_dash container, mp4a.40.5@ 48k (22050Hz), 3.17MiB 140 m4a audio only DASH audio 130k , m4a_dash container, mp4a.40.2@128k (44100Hz), 8.45MiB 160 mp4 256x144 DASH video 108k , mp4_dash container, avc1.4d400b, 30fps, video only 133 mp4 426x240 DASH video 242k , mp4_dash container, avc1.4d400c, 30fps, video only 134 mp4 640x360 DASH video 635k , mp4_dash container, avc1.4d401e, 30fps, video only, 23.64MiB 135 mp4 854x480 DASH video 1155k , mp4_dash container, avc1.4d4014, 30fps, video only 136 mp4 1280x720 DASH video 2310k , mp4_dash container, avc1.4d4016, 30fps, video only 137 mp4 1920x1080 DASH video 4493k , mp4_dash container, avc1.640028, 30fps, video only, 179.21MiB 43 webm 640x360 medium , vp8.0, vorbis@128k, 43.36MiB 18 mp4 640x360 medium 487k , avc1.42001E, mp4a.40.2@ 96k (44100Hz), 32.39MiB 22 mp4 1280x720 hd720 1708k , avc1.64001F, mp4a.40.2@192k (44100Hz) (best) 原本
可以選擇
可以選擇
================================================================================ 對照上面的用法 原本
可以選擇
或是執行
* https://github.com/ytdl-org/youtube-dl/blob/master/README.md#video-format-options * https://github.com/ytdl-org/youtube-dl/blob/master/README.md#format-selection * https://github.com/ytdl-org/youtube-dl/blob/master/README.md#format-selection-examples ================================================================================ 以上提供參考 報告完畢 ![]()
2019/4/12 9:01
|
||||||||||
![]() |
您可以查看帖子.
您不可發帖.
您不可回覆.
您不可編輯自己的帖子.
您不可刪除自己的帖子.
您不可發起投票調查.
您不可在投票調查中投票.
您不可上傳附件.
您不可不經審核直接發帖.