下載m3u8視頻及在Linux下將ts合并為mp4格式

背景

在爬取視頻時(shí)偶爾會(huì)遇見m3u8格式的視頻鏈接,視頻下載后為多個(gè)ts文件,下面分享如何下載m3u8格式視頻以及在Linux下將ts文件合成mp4
文件。

m3u8格式鏈接解析

url = xxxxx.m3u8

#獲取m3u8文件的文本信息
all_content = requests.get(url=url, verify=False).text
#解析文本信息
file_line = all_content.split("\n")
if file_line[0] != "#EXTM3U":
    raise BaseException(u'非M3U8的鏈接')
else:
    unknow = True
    for index, line in enumerate(file_line):
        try:
            if "#EXTINF" in line:
                unknow = False
  
                pd_url = 'http://v2.ricebook.com' + '/' + file_line[index + 1]
                res = requests.get(pd_url, verify=False)
                c_fule_name = str(file_line[index + 1]).split('/')[-1]
                with open(download_path + '/' + c_fule_name, 'ab') as f:
                    f.write(res.content)
                    f.flush()
                print('下載完成')
        except Exception as e:
            print(e)

下載完成后是多個(gè)ts文件,播放器也是可以播放的,可以將多個(gè)ts文件合成一個(gè)mp4文件。

Linux下合并ts文件

在windows下可以直接使用copy,將ts合成mp4,但如果要部署到服務(wù)器就不行了,下面介紹使用ffmpeg進(jìn)行合并(windows和Linux下都可使用),如何下載安裝請(qǐng)自行搜索。

#ts文件絕對(duì)路徑
 ts_path = xxx/xxx   
 #讀取ts文件夾下所有的ts文件
 path_list = os.listdir(ts_path)
 #對(duì)文件進(jìn)行排序
 path_list.sort()
 #將排序后的ts的絕對(duì)路徑放入列表中
 li = [os.path.join(ts_path,filename) for filename in path_list]
 #類似于[001.ts|00.2ts|003.ts]
 input_file = '|'.join(li)
 #指定輸出文件名稱
 output_file = ts_path + '.mp4'
 #使用ffmpeg將ts合并為mp4
 command = 'ffmpeg -i "concat:%s" -acodec copy -vcodec copy -absf aac_adtstoasc %s'%    (input_file,output_file)
 #指行命令
 os.system(command)

得到mp4文件之后原來ts文件夾不需要也可以刪除

def delete_ts(ts_path):
    try:
        shutil.rmtree(ts_path)
        print('ts文件已經(jīng)刪除')
    except:
        print('ts文件刪除失敗')
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 點(diǎn)擊下載 Demo 一、 M3U8文件簡(jiǎn)介 M3U8文件是指UTF-8編碼格式的M3U文件。M3U文件是記錄了一個(gè)...
    張聰_2048閱讀 32,490評(píng)論 5 30
  • 1、通過CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請(qǐng)求組件 FMDB本地?cái)?shù)據(jù)庫(kù)組件 SD...
    陽(yáng)明AI閱讀 16,203評(píng)論 3 119
  • 我知道再過十年、二十年、三十年、四十年、五十年,我會(huì)慶幸自己寫過這篇文章。 大學(xué)生活真的就要結(jié)束了…… 有很多歡喜...
    楊書研閱讀 524評(píng)論 6 11
  • 前兩天天馬行空的在回憶里面搜尋了一些東西拼湊出的文字似乎嚇到了neyo哥哥。所以今天不再寫那些了。(還是希望以后可...
    Ting_t閱讀 431評(píng)論 0 0
  • 年輕時(shí)不懂找那一半要看原生家庭,只覺得脾氣好就行,而原生家庭的劣性在多年以后便逐漸暴露,自私、自負(fù)、狂妄,看不...
    錦官居士閱讀 141評(píng)論 0 0

友情鏈接更多精彩內(nèi)容