成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

論如何下載一個在線的m3u8文件到本地成為一個mp4!

開發 開發工具
現在比較常見的視頻流媒體,大部分都是 m3u8 格式的,而對于 m3u8 格式的視頻而言,如果你下載過,你會發現它就是一個文本文件,大概也就只有幾十 kb,從磁盤大小來看,應該也知道它并不是一個直接的視頻文件。

[[210882]]

一、前言

現在比較常見的視頻流媒體,大部分都是 m3u8 格式的,而對于 m3u8 格式的視頻而言,如果你下載過,你會發現它就是一個文本文件,大概也就只有幾十 kb,從磁盤大小來看,應該也知道它并不是一個直接的視頻文件。

而假如我們想要下載對應的視頻文件,直接下載 m3u8,當然是達不到目的的,那么本文就來說說,如何直接下載一個網上的 m3u8 文件,保存成一個比較常規的 mp4 文件。

這個在 Windows 下,應該是有現成的工具可以完成,但是 Mac 就沒有了,我也沒試過 Windows 的工具,有需要自行搜索。

二、下載一個 m3u8

2.1 什么是 m3u8

說到 m3u8 就要先說說 HLS(HTTP Live Streaming)。HLS 是 Apple 公司針對 iPhone、iPod、iTouch 等移動設備,而研發的基于 HTTP 協議的流媒體解決方案。在 HLS 技術中,Web 服務器可以向客戶端提供接近實時的音視頻流,但是它又是使用的標準的 HTTP 協議。所以基本上,比較大型的點播直播類服務,都是基于 HLS 的。

而該技術的原理,就是將視頻文件或者視頻流,進行切片(ts文件),并建立索引文件(m3u8),它支持的視頻流編碼為 H.264,音頻流編碼為 AAC。

簡單來說,基于 HLS 的視頻流,會將完整的視頻,切割成一個個比較小的視頻片段(ts 文件),然后根據協議組合成一個 m3u8 文件。這些比較小的 ts 文件,是可以單獨播放的。而視頻播放器,拿到 m3u8 文件之后,根據對其內 ts 片段的索引,連續播放不同的視頻片段,來達到流暢的播放效果。

2.2 下載的 m3u8 文件

說這些概念都沒用,我們來看兩個真實的被下載的 m3u8 文件。

這種 m3u8 文件就還是比較清晰的,能看到它一個個的片段。但是需要注意的是,這里的片段,全部是基于域名的相對地址,也就是說,這樣一個 m3u8 文件,你丟到播放器里,是無法播放的,但是如果你記錄了原始下載這個 m3u8 的鏈接,它在播放器里是可以正常播放的。

當然,如果你修改這個 m3u8 文件,將它相對路徑拼接上域名地址,也是可以達到播放的效果的。

再來看看另外一種 m3u8 文件,它其內的 ts 片段,都是完整地址。

像這種具有完整地址的 ts 片段,哪怕你將它保存成一個本地的文件,播放器依然是可以直接播放的,不過這里本質上依然是在在線播放。

這兩中 m3u8 文件,雖然有細微的差別,但是它們都是基于標準的協議。

簡單總結一下:

  1. m3u8 不是視頻內容的文件,它占用的磁盤空間非常的小。
  2. m3u8 文件,如果其內的 ts 片段,是完整地址,則可以保存后播放,否者只能在線播放。
  3. 播放器播放 m3u8 文件的時候,實際上,還是在線從線上獲取的視頻流進行播放,所以是存在失效的情況的。

暫時知道這三點就可以了,接下來我們再看如何將一個 m3u8 文件,下載成一個 mp4 視頻文件。

三、ffmpeg

好了,不賣關子了,這里下載 m3u8 會需要使用 ffmpeg。

ffmpeg 是一套可以用來記錄、轉換音視頻,并將其轉化為流的開源程序,采用 LGPL 或 GPL 協議許可證書,很多大型的音視頻軟件,內部都是基于 ffmpeg 的。不了解不要緊,總之知道它對操作 ffmpeg 非常的方便。

如果本機上沒有,就需要安裝了。在 Mac 下,使用 homebrew 下載 ffmpeg 非常的方便。

  1. brew install ffmpeg 

等待安裝成功的提示就好了。

如果已經安裝的,***也使用 brew 命令確認一下,有以下輸出,表示沒問題。

工具配置沒什么好說的,沒安裝的可以借助搜索引擎。

配置好 ffmpeg 的環境之后,只需要一行命令,就可以自動下載一個遠端的 m3u8 文件,并且以一個 mp4 格式保存。

  1. ffmpeg -i "m3u8_file_uri" "save_video.mp4" 

到此,如果 m3u8 的鏈接正確可播放,就會開始下載,等待下載完成就可以了,最終會在指定目錄下,保存 save_video.mp4 文件,它就是最終我們下載的離線視頻文件。

四、you-get

大部分情況下,我們沒辦法直接獲取到 m3u8 的鏈接,一般通過瀏覽器的調試工具,或者抓包的方式來獲取。

而如果我們只是需要下載一些常見的視頻網站的視頻的話,Github 上,還有一個開源庫,soimort/you-get ,就可以解決你的需求。

它只需要傳遞一個視頻的地址,就會全自動下載。它的原理是去解析視頻網站,拿到真實的播放地址,進行下載。而且例如 YouTube 等視頻網站,如果有帶有字母,能識別的話也會自動識別一同下載,最終以 SubRip 格式保存字母。

而 you-get 依賴 Python 和 ffmpeg 的,所以要提前安裝它們。

如果你已經配置好 Pyhone3 的環境,安裝 you-get 非常的簡單。

  1. pip3 install you-get 

安裝之后,就可以通過 you-get 命令進行下載了。

顯示的信息還是很完整的,而且有標準的下載進度。跟多細節,可以直接看 Github 上的文檔。

  1. you-get:  
  2. https://github.com/soimort/you-get 

如果是比較知名的視頻網站,還是推薦使用 you-get ,它本身支持的網站也很多(文檔上有支持的標識),基本上做到了一鍵下載,支持的網站太多了,這里就不一一截圖了,基本上國內外的大點的視頻網站都有,不過具體哪些能下載,就要具體問題具體分析了。

【本文為51CTO專欄作者“張旸”的原創稿件,轉載請通過微信公眾號聯系作者獲取授權】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2022-10-28 21:11:52

m3u8網絡

2011-09-06 16:42:30

FFmpegUbuntu

2011-06-17 11:35:09

夏普復印機

2015-05-13 14:06:03

程序員糟糕的程序員

2009-07-02 09:42:34

JSP程序員

2011-06-13 20:44:06

SEO

2010-12-27 09:24:45

JSP程序員

2015-08-17 10:32:06

前端工程師優秀

2015-08-24 09:02:49

前端工程師

2015-06-25 19:23:03

JavaScript程序員

2015-06-25 09:53:13

JavaScript程序員

2015-06-25 09:32:55

JavaScript程序員

2014-02-27 09:39:30

PHP技巧

2009-01-11 09:52:14

Windows 7微軟補丁

2022-02-10 07:03:32

流量應用架構數據交換

2015-04-30 08:41:04

程序員高效健康

2015-04-30 10:51:37

程序員高效快樂

2010-08-24 08:58:42

開發者

2012-11-20 09:33:02

2009-09-11 08:44:36

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕日韩av | 免费午夜电影 | 久久久久久国产精品免费免费狐狸 | 国产乱码精品一区二三赶尸艳谈 | 国产精品99久久久久久久久久久久 | 九九综合 | 成年人在线视频 | 久久久精品久 | 亚洲国产精品美女 | 精品一二三区在线观看 | 天天天天天天天干 | 久久国 | 亚洲国产自产 | 成人免费在线观看视频 | 欧美午夜激情在线 | 日韩在线小视频 | 日韩中文字幕在线不卡 | 免费在线观看av的网站 | 欧美精品一区二区在线观看 | 日本在线免费 | 日韩中文在线视频 | 日韩在线视频一区 | 日本不卡一区二区三区在线观看 | 日韩视频在线免费观看 | 午夜日韩精品 | 在线亚洲免费 | 免费啪啪 | 国内精品久久影院 | 日韩视频免费看 | 国产精品精品久久久 | 亚洲最大av网站 | www.97国产| av在线视| 91视视频在线观看入口直接观看 | 在线观看中文字幕 | 亚洲综合国产 | av在线免费观看网站 | 成人美女免费网站视频 | 久久久69| 99一级毛片 | 中文字幕一区二区三区四区五区 |