日韩性视频-久久久蜜桃-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视频下载 准备下载视频的你确定不进来看看吗的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 囯产精品久久久久久 | 麻豆av在线播放 | 亚洲自偷自偷偷色无码中文 | 麻豆av影视| 91av一区 | 99热日本| 男女激情视频网站 | 国产亚洲精品aaaaaaa片 | 精品999久久久一级毛片 | 杨贵妃颤抖双乳呻吟求欢小说 | 少妇高清精品毛片在线视频 | 色爽爽爽爽爽爽爽爽 | 国产精品一区二区三区久久 | 欧洲精品久久久久毛片完整版 | 亚洲激情免费 | 日本三级全黄 | 欧美三级在线看 | www色网站| 欧美日韩中文在线观看 | 国产三级漂亮女教师 | 成人国产免费视频 | 亚洲激情视频 | 尤物在线免费视频 | 天天干天天草 | 在线观看你懂的视频 | 美女隐私无遮挡 | 美女网站视频在线观看 | 国产在线观看h | 岛国片免费在线观看 | 欧美激情午夜 | 黄色三级网络 | 国产女主播一区二区 | 日韩一区二区三区视频 | 在线观看涩涩 | 超碰激情在线 | 亚洲福利视频网 | 9cao| 超碰88| 天天操天天干天天操 | 伊人蕉久| 一本一道波多野结衣一区二区 | 国产精品第 | 成年免费在线观看 | 夜夜摸夜夜操 | 国语久久 | 亚洲av成人一区二区 | 久久国产精品国语对白 | 一级日批片 | 黄色三极片 | 日日摸夜夜添狠狠添欧美 | 亚洲成人精 | 国产毛片毛片毛片 | 日本人三级 | 精品综合 | 日本www高清| 男人喷出精子视频 | 福利视频免费看 | 影音先锋色小姐 | 夜夜嗨av禁果av粉嫩av懂色av | 中文字幕一区二区在线老色批影视 | 午夜插插 | 91精品国产91久久久久 | 成年人精品视频 | 日韩欧美视频一区二区 | 国产ts变态重口人妖hd | 催眠调教后宫乱淫校园 | 涩漫天堂 | 成人av免费网站 | av网站大全在线 | 天天躁夜夜躁 | 天堂在线8 | 人妻巨大乳hd免费看 | 日本三级韩国三级三级a级中文 | 欧美精品一区二区三区四区五区 | 黄色三级av | 日韩三级一区二区三区 | 精品一区91| 天天看天天操 | 原神女裸体看个够无遮挡 | 国产精品久久99 | 青青草综合视频 | 亚洲av成人无码久久精品老人 | 91高清视频| 九色蝌蚪视频 | 日b视频免费观看 | 中文字幕免费高清在线 | 天降女子在线 | 91 免费看片 | 超碰人人射| 非洲黄色大片 | 超碰九七| 国产精品9191 | 娇妻玩4p被三个男人伺候电影 | 日韩av一区二区三区在线观看 | 精品美女视频 | 亚洲激情中文 | aa一级片| 国产亚洲精品久久久久丝瓜 | 黄色免费网页 |