解決m3u8視頻合並問題


 

1 下載m3u8list  

里面的格式

#EXTM3U
#EXT-X-TARGETDURATION:12
#EXT-X-VERSION:3
#EXTINF:6.0,
http://ykugc.cp31.ott.cibntv.net/6974DEC89F430713631873C87/03000A01005CCEBCC7455BB019BE2EC589B876-5A1C-47C5-9BCC-284665146B78.mp4.ts?ccode=0502&duration=64&expire=18000&psid=49907f0c4782e68903acdbabd2a86784&ups_client_netip=758800f5&ups_ts=1557102628&ups_userid=&utid=3Cr6EGfGcGUCAXL%2BcIGbC9Bm&vid=XNDE2NzA3NDEzMg&sp=&vkey=A2c7687ca7743a1a0e0d1e364dcc5bafd&ts_start=0.0&ts_end=5.9&ts_seg_no=0&ts_keyframe=1
#EXTINF:3.933,
http://ykugc.cp31.ott.cibntv.net/6974DEC89F430713631873C87/03000A01005CCEBCC7455BB019BE2EC589B876-5A1C-47C5-9BCC-284665146B78.mp4.ts?ccode=0502&duration=64&expire=18000&psid=49907f0c4782e68903acdbabd2a86784&ups_client_netip=758800f5&ups_ts=1557102628&ups_userid=&utid=3Cr6EGfGcGUCAXL%2BcIGbC9Bm&vid=XNDE2NzA3NDEzMg&sp=&vkey=A2c7687ca7743a1a0e0d1e364dcc5bafd&ts_start=5.9&ts_end=9.833&ts_seg_no=1&ts_keyframe=1
#EXTINF:3.733,
http://ykugc.cp31.ott.cibntv.net/6974DEC89F430713631873C87/03000A01005CCEBCC7455BB019BE2EC589B876-5A1C-47C5-9BCC-284665146B78.mp4.ts?ccode=0502&duration=64&expire=18000&psid=49907f0c4782e68903acdbabd2a86784&ups_client_netip=758800f5&ups_ts=1557102628&ups_userid=&utid=3Cr6EGfGcGUCAXL%2BcIGbC9Bm&vid=XNDE2NzA3NDEzMg&sp=&vkey=A2c7687ca7743a1a0e0d1e364dcc5bafd&ts_start=9.833&ts_end=13.566&ts_seg_no=2&ts_keyframe=1
#EXTINF:9.667,
http://ykugc.cp31.ott.cibntv.net/6974DEC89F430713631873C87/03000A01005CCEBCC7455BB019BE2EC589B876-5A1C-47C5-9BCC-284665146B78.mp4.ts?ccode=0502&duration=64&expire=18000&psid=49907f0c4782e68903acdbabd2a86784&ups_client_netip=758800f5&ups_ts=1557102628&ups_userid=&utid=3Cr6EGfGcGUCAXL%2BcIGbC9Bm&vid=XNDE2NzA3NDEzMg&sp=&vkey=A2c7687ca7743a1a0e0d1e364dcc5bafd&ts_start=13.566&ts_end=23.233&ts_seg_no=3&ts_keyframe=1
#EXTINF:10.933,
http://ykugc.cp31.ott.cibntv.net/6974DEC89F430713631873C87/03000A01005CCEBCC7455BB019BE2EC589B876-5A1C-47C5-9BCC-284665146B78.mp4.ts?ccode=0502&duration=64&expire=18000&psid=49907f0c4782e68903acdbabd2a86784&ups_client_netip=758800f5&ups_ts=1557102628&ups_userid=&utid=3Cr6EGfGcGUCAXL%2BcIGbC9Bm&vid=XNDE2NzA3NDEzMg&sp=&vkey=A2c7687ca7743a1a0e0d1e364dcc5bafd&ts_start=23.233&ts_end=34.166&ts_seg_no=4&ts_keyframe=1
#EXTINF:11.8,
http://ykugc.cp31.ott.cibntv.net/6974DEC89F430713631873C87/03000A01005CCEBCC7455BB019BE2EC589B876-5A1C-47C5-9BCC-284665146B78.mp4.ts?ccode=0502&duration=64&expire=18000&psid=49907f0c4782e68903acdbabd2a86784&ups_client_netip=758800f5&ups_ts=1557102628&ups_userid=&utid=3Cr6EGfGcGUCAXL%2BcIGbC9Bm&vid=XNDE2NzA3NDEzMg&sp=&vkey=A2c7687ca7743a1a0e0d1e364dcc5bafd&ts_start=34.166&ts_end=45.966&ts_seg_no=5&ts_keyframe=1
#EXTINF:7.6,
http://ykugc.cp31.ott.cibntv.net/6974DEC89F430713631873C87/03000A01005CCEBCC7455BB019BE2EC589B876-5A1C-47C5-9BCC-284665146B78.mp4.ts?ccode=0502&duration=64&expire=18000&psid=49907f0c4782e68903acdbabd2a86784&ups_client_netip=758800f5&ups_ts=1557102628&ups_userid=&utid=3Cr6EGfGcGUCAXL%2BcIGbC9Bm&vid=XNDE2NzA3NDEzMg&sp=&vkey=A2c7687ca7743a1a0e0d1e364dcc5bafd&ts_start=45.966&ts_end=53.566&ts_seg_no=6&ts_keyframe=1
#EXTINF:11.267,
http://ykugc.cp31.ott.cibntv.net/6974DEC89F430713631873C87/03000A01005CCEBCC7455BB019BE2EC589B876-5A1C-47C5-9BCC-284665146B78.mp4.ts?ccode=0502&duration=64&expire=18000&psid=49907f0c4782e68903acdbabd2a86784&ups_client_netip=758800f5&ups_ts=1557102628&ups_userid=&utid=3Cr6EGfGcGUCAXL%2BcIGbC9Bm&vid=XNDE2NzA3NDEzMg&sp=&vkey=A2c7687ca7743a1a0e0d1e364dcc5bafd&ts_start=53.566&ts_end=64.833&ts_seg_no=7&ts_keyframe=1
#EXT-X-ENDLIST

 

 

使用ffmpeg

ffmpeg.exe -i https://v6.438vip.com/2018/10/17/3JAHPTdvPhQb9LrE/playlist.m3u8 -c copy  OUTPUT.mp4

 

如果自己一個一個下載后再寫入合並會有一些卡頓問題

 

 之前自己手寫合並

import os
import sys

def viedo_list():
    list = []
    for i in range(0,449):
        viedo_name = "index-{}.ts".format(i,)
        list.append(viedo_name)
    return list

def merg_viedo(viedo_list):
    f = open("2.mp4","ab",)
    for i in viedo_list:
        vi = os.path.abspath(i)
        print('_____________')
        print(i)
        with open(vi,"rb")as f1:
            
            f.write(f1.read())
    f.close()
    return "1.mp4"


if __name__ == '__main__':
    v = viedo_list()
    s = merg_viedo(v)
print(s)

 

 

 參考:

https://blog.csdn.net/Shuang_Mo/article/details/81867261

 


免責聲明!

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



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