ffmpeg合并视频
安装ffmpeg命令工具:
1.下载ffmpeg工具 【官网】
2.如果需要下载 7-zip解压该文件【官网】
3.解压后重名解压文件夹为ffmpeg
4.复制ffmpeg文件夹到 "C:\Program Files"
5.添加系统环境变量 “C:\Program Files\ffmpeg\bin”
6.可以通过 ffmpeg 查看
7. 对于需要合并的ts 参考如下代码ffmpeg -f concat -i mylist.txt -c copy output.mp4
下载ts合并
import requests
import time
import threading
import queue
import random
def write_ts(start_num, end_num):
for i in range(start_num,end_num):
a = random.randint(1,4)
print(a)
time.sleep(a)
url = 'https://cagnagb/aaax%s.ts' % i
response = requests.get(url, headers=headers)
with open("./ts_files/%s.ts" % i, "wb") as f:
f.write(response.content)
print('%s 的 %s 完成' % (threading.current_thread().name,i))
def create_thread(total_num,thread_num):
count_num = thread_num - 1
int_num = int(total_num/count_num)
mod_num = total_num%count_num
every_num = (total_num - mod_num)/count_num
for x in range(count_num):
start_num = every_num*x
end_num = every_num*(x + 1)
num2 = x + 1
threading.Thread(target=write_ts,args=(int(start_num), int(end_num)), name='t%s' % int(num2)).start()
threading.Thread(target=write_ts,args=(int(every_num * count_num),int(every_num * count_num + mod_num)), name='t%s'%int(thread_num)).start()
def write_mylist(num,path1):
arr1 = ["file '%s.ts'" % x for x in range(num)]
with open(path1, "w") as file:
file.write('\n'.join(arr1))
print('mylist.txt写入完成,请执行命令 【ffmpeg -f concat -i mylist.txt -c copy output.mp4】')
if __name__ == '__main__':
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36'}
total_num = 2308
thread_num = 60
threading.Lock()
create_thread(total_num, thread_num)
write_mylist_path = r"D:\pagcd\mylist.txt"
write_mylist(total_num,write_mylist_path)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)