[python]如何把從網站下載ts的文件合並成視頻


某些網站使用ts文件來播放視頻,有些視頻資料值得珍藏,便有了下面的文章。

ts是日本高清攝像機拍攝下進行的封裝格式,全稱為MPEG2-TS。ts即"Transport Stream"的縮寫。MPEG2-TS格式的特點就是要求從視頻流的任一片段開始都是可以獨立解碼的。

用chrome打開某些網站的視頻,同時打開“開發者工具”,我們就能在network選項卡里找到動態下載的ts文件,取得url后放到迅雷里就能得到一段視頻片段。

對於播放時間不長的小視頻,我們可以用下面的手工方法將一批視頻片段合並成一個完整的視頻:

一.打開迅雷,先確保沒有別的在下載。

二.播放視頻時打開Chrome的“開發者工具”中netowrk選項卡,看到諸如828EbZ1743007.ts的文件出現后雙擊用迅雷下載,有多少個下載多少個,漏了就會丟失信息。

三.將下載好的批量ts文件拷貝到一個目錄中,如d:\temp,然后打開cmd,進入這個目錄,輸入如下命令:copy /b *.ts final.ts ,注意這個命令分四段(1.copy 2./b 3.*.ts 4.final.ts)。 

之后,新的文件final.ts就被創建好了,用視頻播放工具比如迅雷自帶的“迅雷播放組件”或是“wndows media player”就可以看了。

但是,如果視頻片段數量過多,手工下載就會又繁重又容易出錯,好在我們可以讓python來幫忙:

#encoding=utf-8
import urllib.request
import os

# 下載文件到本地的函數
def download(fileUrl):    
    # 獲取網絡文件的文件名
    filename = os.path.basename(fileUrl) 
    rsp=urllib.request.urlopen(fileUrl)
    img=rsp.read()
    with open(filename,'wb') as f:
        f.write(img)

for i in range(109,203):
    s = '%03d' % i
    url="https://dada-do.com/20181221/emrct0as/800kb/hls/hBNS5261"+s+".ts"
    print(url)
    download(url)
    print("downloaded")

這段文章能生成一堆ts文件的地址,然后挨個下載。

 

使用這個程序似乎快捷了,但是片段過多還是會有兩個問題:

1.下載時間慢,遠不如迅雷。

2.有可能被遠程網站突然關閉連接。

 

如何改進?再寫一點斷點續傳的代碼?還是尋求更高效的下載手段?其實都不必,我們用程序把要下載文件的url得到就好了:

#encoding=utf-8

text=""
for i in range(111,203):
    s = '%03d' % i
    url="https://dada-do.com/20181221/emrct0as/800kb/hls/hBNS5261"+s+".ts"
    text=text+url+"\n"

        
with open('result.txt','a') as file_handle:   
    file_handle.write(text)    
    

執行完這段后,要下載的文件地址就被寫到result.txt里面去了,示例如下。

https://dada-do.com/20181221/emrct0as/800kb/hls/hBNS5261186.ts
https://dada-do.com/20181221/emrct0as/800kb/hls/hBNS5261187.ts
https://dada-do.com/20181221/emrct0as/800kb/hls/hBNS5261188.ts
https://dada-do.com/20181221/emrct0as/800kb/hls/hBNS5261189.ts
https://dada-do.com/20181221/emrct0as/800kb/hls/hBNS5261190.ts
https://dada-do.com/20181221/emrct0as/800kb/hls/hBNS5261191.ts
https://dada-do.com/20181221/emrct0as/800kb/hls/hBNS5261192.ts
https://dada-do.com/20181221/emrct0as/800kb/hls/hBNS5261193.ts
https://dada-do.com/20181221/emrct0as/800kb/hls/hBNS5261194.ts

然后,把這些網址交給迅雷,讓它快速又安全的完成任務就好了。

最后用以下命令將視頻片段合成完整的文件:

copy /b *.ts final.ts

這樣,將網站播放的視頻保存成本地文件的任務就完成了,方便而快捷,你不妨試試!

-2020年9月7日11點49分-

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM