解决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