如何将本地下载的切片电影进行合成一个视频

合成后的时长1:41

没有合成前是50个电影切片

注明:电影切片不是真实的切片名称而是自定义从0-50的数字

复制代码
import requests
# with open("电影.m3u8","r") as f:
#     n=0
#     for line in f:
#         if line.startswith("#"):
#             continue
#         line=line.rstrip('\n')
#         url = 'https://m3u8i.vodfile.m1905.com/202408031023/c223719502f4f3e2d4f49e3e5118cab5/movie/2019/07/17/m201907170JDB59JXFDRK2YS3/'+line
#         res1=requests.get(url)
#         open(f'ts/{n}.ts','wb').write(res1.content)
#         n += 1

以上代码是打开本地m3u8文件,按行对文件内容进行数据处理,去掉带#开头的,还是对每个视频地址进行去掉末尾的\n,用到rstrip(),得把切片地址补全,然后请求得到响应把内容保存到本地ts文件夹下。

复制代码
import os
 # os.system(f"copy /b {s} dianyi.mp4")
个别视频讲解在window中可以利用os模块中的system,发现不能执行。
对于MAC os.system(f"cat  {s} > dianyi.mp4")
因为没有平板没有验证
这里设计到{s}中将视频地址连接
s=" ".john(list)   s="+".join(list)

#合成视频用到moviepy 中的VideoFileClip,concatenate_videoclips

from moviepy.editor import VideoFileClip,concatenate_videoclips
#定义了一个合成的函数
def merge_ts():
    list = []#定义一个空列表存放地址
    with open("电影.m3u8","r",encoding="utf-8") as f:
        i=0
        for line in f:
            if line.startswith("#"):
                continue
            list.append(f"ts/{i}.ts")
            i += 1
            if i==50: #因为下载了50个切片到50结束循环
                break
        # 
        # os.system(f"copy /b {s} dianyi.mp4")
        # print(s)
        print(list)
        clips=[VideoFileClip(path) for path in list]
        fina_clip=concatenate_videoclips(clips)
        fina_clip.write_videofile("第.mp4")
        print(“合成成功”)
复制代码
if __name__=="__main__":
        merge_ts()
复制代码
 
相关推荐
z落落34 分钟前
C# 四种特殊类:抽象类、密封类、静态类、部分类
开发语言·c#
摇滚侠1 小时前
Maven 入门+高深 单一架构案例 54-59
java·架构·maven·intellij-idea
Electrolux1 小时前
[onlyoffice-v9]纯前端怎么实现编辑预览office
前端·javascript·github
VidDown1 小时前
Webhook 调试器:让第三方回调“原形毕露”
java·开发语言·javascript·编辑器·postman
折哥的程序人生 · 物流技术专研1 小时前
Java 23 种设计模式:从踩坑到精通 | 原型模式 —— 克隆对象,深拷贝与浅拷贝的坑你踩过吗?
java·设计模式·架构·原型模式·单一职责原则
装不满的克莱因瓶1 小时前
基于 OpenResty 扩展开发实现动态服务注册与发现能力
java·开发语言·架构·openresty
程序员小羊!2 小时前
06Java 异常机制与常用类
java
kyriewen2 小时前
我读了一遍 Babel 编译后的 async/await,终于搞懂了它的原理(附 20 行手写实现)
前端·javascript·面试
weixin_523185322 小时前
Java基础知识总结(四):引用数据类型与参数传递机制
java·开发语言·python
Nayxxu2 小时前
Claude API 生产稳定性设计:超时、降级、备用模型和告警怎么做
开发语言·php