Python实现批量下载ts文件并合并为mp4
作者:Gosick_Geass_Gate 发布时间:2022-07-15 20:24:09
标签:Python,下载,ts
(一)ts文件下载
网页文件下载其实都可以通过requests.get
以文件流的形式获取,并以字节的形式写入本地文件即可。
代码如下:
import os
import requests
def download(url, filenames, dirname):
session = requests.Session()
for filename in filenames:
print(u"downloading: %s" % filename)
r = session.get(url + filename, stream=True).iter_content(chunk_size=1024 * 1024)
filepath = os.path.join(dirname, filename)
print(u"saving: %s" % filename)
with open(filepath, 'wb') as f:
for chunk in r:
chunk and f.write(chunk)
print(u"finished: %s" % filename)
我发现在保存这一步会存在性能卡点(打印saving之后等了很久都没有生成文件),暂时没有想到很好的优化方法,不过下载这一步其实可以借用迅雷来批量处理,步骤如下:
1.点击新建。
2.切换为批量任务,这样就可以使用通配符去批量下载文件了。
(二)ts文件合并为mp4
这个需要借助ffmpeg工具去实现。Windows平台可以直接到官网下载压缩包,解压之后把bin目录加入到环境变量中即可。
最后使用ffmpeg合并ts文件的代码如下:
import os
def merge(filenames, dirname, video='video.mp4'):
# 先用一个文件保存所有的文件路径(格式:file '***.ts')
path = os.path.join(dirname, 'path.txt')
with open(path, 'w+') as f:
for filename in filenames:
f.write("file '%s'\n" % os.path.join(filename))
os.chdir(dirname)
os.system('ffmpeg -f concat -safe 0 -y -i %s -c copy -strict -2 %s' % (path, os.path.join(dirname, video)))
来源:https://blog.csdn.net/Gosick_Geass_Gate/article/details/130920186
0
投稿
猜你喜欢
- 加班时抽空弄的,javascript图片链接定时轮换,自适应图片大小,支持预载,进行了简单封装,方便调用。发现自己还是菜得很,一个简单效果被
- 一、什么是框架框架的本质就是一个socket服务,可以完成不同主机之间的通信。它是一个半成品的项目,其中可能已经封装好了基本的功能,比如路由
- 跨浏览器方法function getStyle(elem, cssprop, cssprop2){ if(elem.currentStyle
- 对于大多数web应用来说,数据库都是一个十分基础性的部分。如果你在使用PHP,那么你很可能也在使用MySQL—LAMP系列中举足轻重的一份子
- 毫无疑问,这个世界设计无处不在,优美的设计会得到会心的微笑和由衷的赞赏。然而,想从事设计或在设计边缘的人们未必有机会学习专业的设计。实际上,
- 在如今的Web设计中,图片的应用是必不可少的,为了更好地设计网站效果,大体积的图片被越来越多地应用到Web设计中来,所以,更好地优化图片文件
- Francesc (@francesc) 是 Go 核心团队的一员, 是提倡 Google Cloud 平台的开发者. 他是一个编程语言的爱
- 一.GO程序目录结构在GOPATH目录下的结构--bin(存放编译后生成的可执行文)|----hello.exe(可执行文件)--pkg(存
- matplotlib官方除了提供了鼠标十字光标的示例,还提供了同一图像内多子图共享光标的示例,其功能主要由widgets模块中的MultiC
- 富文本编辑器,Rich Text Editor, 简称 RTE, 它提供类似于 Microsoft Word 的编辑功能,容易被不会编写 H
- 需要的软件phpStudy 用来导入一个数据库api-server 数据库功能可以开启一个服务器,让开发环境可以使用生产环境的网址请求安装
- 其实小程序上面也可以使用 echart 等开源图表库得,而且支持代码包得裁切功能,但是可能我不会用吧,效果不太好,而且我这就一个图,也没什么
- 示例代码: BulkStockBll bll = new BulkStockBll(); DataSet ds = bll.GetBulkS
- int connectDb() { EXEC SQL BEGIN DECLARE SECTION; char username[20]; c
- 仿google的asp分页代码index.asp(文件1)<%@LANGUAGE="VBSCRIPT" CODEP
- 有的时候取出全部数据库记录也许正好满足你的要求,不过,在大多数情况下我们通常只需得到部分记录。这样一来该如何设计查询呢?当然会更费点脑筋了,
- 1.SQL Server 2005中的存储过程并发问题问:我在SQL Server2005中遇到了并发问题。我持有车票的公共汽车上有一些空闲
- 瞬间设计是什么?良好的用户体验,全在于那些完美的瞬间。在第一个瞬间,假设当一位用户从购物搜索结果页面跳转到某个店铺的时候,他此刻可能是想看看
- 转发时请保留此声明信息,这段声明不并会影响你的速度! @author:  
- var a= new Array(new Array(1,2),new Array('b','c')); d