日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ts视频下载 准备下载视频的你确定不进来看看吗

發布時間:2024/8/1 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ts视频下载 准备下载视频的你确定不进来看看吗 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ts視頻下載

  • 前言
  • 開發工具
  • 解決思路
  • 代碼實現
    • 解析m3u8文件,獲取ts下載列表
    • 多線程下載ts文件,以及ts文件順序的存儲
      • 總代碼
      • ts文件順序存儲到本地文件中
      • 多線程下載ts文件
    • ts文件合成mp4
  • 成果
    • ts文件
    • mp4文件
  • 總結

前言

之前一直爬取的內容都是完整的文件,例如一整個mp3或則mp4,但是目前很多視頻網站都開始采用ts流媒體視頻的方式進行視頻的展示,不知道你有沒有這樣的體驗,興致勃勃的打開一個電影網站,準備開始施展爬蟲大法

查看xhr請求之后,本以為可以找到一個返回mp4的接口,沒想到返回的是這一堆ts文件

今天我們就來聊一聊怎么下載這些ts文件并將他們拼接為一個mp4

開發工具

ffmpeg,pycharm

解決思路

首先打開谷歌瀏覽器,F12,查看xhr請求,這一步相信兄弟們已經輕車熟路了。如下圖

有兩個詭異的m3u8,木錯,這就是今天我們的突破口,一般第一個m3u8中存儲的都是第二個m3u8文件的url,第二個m3u8文件則是存儲的ts文件的urll。因為我們這次主要是講怎么下載ts文件,所以直接用解析第二個m3u8文件,即可。
雙擊這個請求,就可以查看詳情,其中Request URL就是調用的接口或則遠程文件,直接調用則會下載該m3u8文件,然后解析一下,拿到ts的url列表就可以進行下載了。

先看一下這個m3u8文件的內容

很明顯文件中存儲的不是ts文件的完整地址,需要我們根據實際情況進行拼接就可以,查看的方式就是點擊ts文件xhr請求進行查看如下圖,很明顯,紅框圈中的就是我們要拼接在文件名之前的。這就拿到了真實的ts文件地址。

那么開整代碼吧

代碼實現

解析m3u8文件,獲取ts下載列表

要使用到m3u8這個庫來解析m3u8文件

import m3u8 tss = [] order = []#realurl就是存儲ts文件地址的m3u8文件的url ,這樣返回的數據是json格式的,方便讀取數據 data = m3u8.load(realurl).data# appendurl就是要拼接在前面的那個地址 這樣存入tss的ts文件地址都是真實地址 # order的作用是在將多個ts文件合成一個mp4時,由這個order提供各ts文件拼接的順序 for i in data["segments"]:tss.append(appendurl + "/" + i["uri"])order.append(i["uri"])

到現在為止,ts文件拼接的順序以及ts文件的真實地址就全部拿到了

多線程下載ts文件,以及ts文件順序的存儲

有一說一,這些ts文件不僅多,而且小,如果我們只是一個線程下載文件,未免太浪費時間了,而且效率太低了,這次我們采用多線程的方式進行大量ts文件的下載

總代碼

def download(url, name):#記錄創立的線程task_list = []# 獲取ts的真實地址和順序tss, order = getTss(url)# 這里將ts文件順序存儲在m3u8,至于為啥這么做,因為ts文件數量太多了file = open("E://file//order.m3u8", 'w')# 這里將下載ts文件的本地路徑輸入到order.m3u8之中for i in order:file.write(f"file 'E:\\file\\ts\\" + i + "'");file.write("\n")#線程池的創立 pool = ThreadPoolExecutor(max_workers=50)for i in range(0, len(order)):# 啟動多個線程下載文件task_list.append(pool.submit(FileDownload.downloadFile, 'E://file//ts//' + order[i], tss[i]))# 判斷所有下載線程是否全部結束while (True):if len(task_list) == 0:breakfor i in task_list:if i.done():task_list.remove(i)# 進行多個ts文件的合并VideoUtil.mixTss(name)# 合并結束之后把ts文件都刪了,不然太占空間了for u in order:turl = f"E:\\file\\ts\\" + uos.remove(turl)

ts文件順序存儲到本地文件中

主要代碼

# 這里將下載ts文件的本地路徑輸入到order.m3u8之中for i in order:file.write(f"file 'E:\\file\\ts\\" + i + "'");file.write("\n")

最終文件中存儲的內容

最好按照這種格式存入,之前在網上找的其他格式都會報錯,但這個是ok的

多線程下載ts文件

yysy,多線程真的強,尤其是下載這些小文件,多線程真的是絕了

本文采用線程池的方式,為什么采用線程池呢,因為線程池可以幫我們保留一段時間空閑線程,可以減少線程創建和銷毀所耗費的時間,大大提高多線程的效率,同時可以幫助我們限制線程的數量
主要代碼

#線程池的創立 pool = ThreadPoolExecutor(max_workers=50)for i in range(0, len(order)):# 啟動多個線程下載文件task_list.append(pool.submit(FileDownload.downloadFile, 'E://file//ts//' + order[i], tss[i]))# 判斷所有下載線程是否全部結束while (True):if len(task_list) == 0:breakfor i in task_list:if i.done():task_list.remove(i)

ts文件合成mp4

主要思路就是利用剛剛生成的那個ts順序文件(order.m3u8),按照文件中的順序進行ts文件的拼接。

這里拼接ts文件時還是要使用ffmpeg,沒有的兄弟們可以看下這個安裝一下
ffmpeg安裝教程
主要代碼

def mixTss(name):com = r'D:\\tool\\ffmpeg\\bin\\ffmpeg.exe -f concat -safe 0 -i E:\\file\\order.m3u8 -c copy E:\\file\\video2\\{}.mp4'.format(name)os.system(com)

這里解釋一下
D:\tool\ffmpeg\bin\ffmpeg.exe : 本地ffmpeg的位置,設置了環境變量直接ffmpeg即可

E:\file\order.m3u8:剛剛生成的存儲ts文件的順序的文件路徑

E:\file\video2\{}.mp4:視頻最終合成之后存放的位置

至此,ts視頻的下載以及合成一個mp4就實現了

成果

ts文件

這是下載過程中截的圖,有一說一,看著這些文件爆炸式增加,還挺爽

mp4文件


具體就不給你們康了,你們猜猜是啥

總結

總之沒有想象的這么難,做之前以為很復雜,其實還好,最后歡迎各位大佬指點。

總結

以上是生活随笔為你收集整理的ts视频下载 准备下载视频的你确定不进来看看吗的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 碰超在线| 在线免费| 亚洲熟妇色自偷自拍另类 | 制服一区二区 | 自拍偷拍第2页 | 一级国产片 | 人人看人人射 | 国产精品久久久久影院老司 | 超污视频网站 | 精品不卡一区 | 视频免费观看在线 | 国产精品片| 日韩久久精品 | 在线xxxx| a级片免费播放 | 亚洲欧美一区二区三区不卡 | 好姑娘在线观看高清完整版电影 | 精品日韩一区二区三区四区 | 国产精品久久综合视频 | 少妇紧身牛仔裤裤啪啪 | 亚洲熟伦熟女新五十路熟妇 | 久久嫩草视频 | 欧美黄色一级视频 | 婷婷在线一区 | 免费视频中文字幕 | 亚洲视频一区在线观看 | 久久综合五月婷婷 | 国产精品一区二区三区在线免费观看 | 午夜精品福利一区二区蜜股av | 97在线免费公开视频 | 五月天丁香社区 | 五月天丁香社区 | 人人妻人人爽欧美成人一区 | 国产无遮挡裸体免费视频 | 日本欧美一区二区三区不卡视频 | 一级视频在线播放 | 日韩射吧 | 国产97色在线 | 国产 | 欧美日韩中文字幕一区二区 | 久青草免费视频 | 日韩精品字幕 | 2019自拍偷拍 | 成人在线精品视频 | 日日夜夜免费精品 | 99视频+国产日韩欧美 | 国内自拍小视频 | 成人一级片在线观看 | 国产高潮呻吟久久 | av在线影音 | 亚洲成人黄色网 | 国产日韩欧美精品 | 1区2区3区在线观看 久久久久久久久久久影院 成人网址在线观看 | 一本之道av | 亚洲最大的黄色网 | 日韩操| 僵尸叔叔在线观看国语高清免费观看 | 宅男视频污 | 16一17女人毛片 | 精品日韩在线视频 | 日韩久久精品一区二区 | 国产第一福利影院 | 在线麻豆 | 国产成人精品a视频 | 成人激情站 | 亚洲av乱码一区二区 | 欧美一区二区最爽乱淫视频免费看 | 国产精品久久久久久久久久 | 精品人妻二区中文字幕 | 亚洲一区二区在线免费 | 九色在线观看视频 | 日本熟妇浓毛 | 欧美男女视频 | 牲欲强的熟妇农村老妇女视频 | 成人av免费在线 | 在线观看网站av | 日韩三级视频在线 | 国产乱仑视频 | 一级片免费播放 | 三上悠亚亚洲一区 | 欧美一级淫 | 伊人影院在线观看视频 | 理想之城连续剧40集免费播放 | 91在线 | 中文精品在线 | 东北少妇露脸无套对白 | 天天做日日干 | 日日操夜夜骑 | 老司机午夜免费精品视频 | 日韩av不卡在线 | av中文在线资源 | 成人www视频 | 成人做爰69片免费观看 | 影音先锋波多野结衣 | 亚洲成网| 成人午夜视频免费观看 | 日本a级黄色 | 久久精品动漫 | 国产亚洲片 | 国产亚洲欧美精品久久久www |