Python实现批量下载ts文件并合并为mp4

 更新时间:2023年06月04日 14:21:36   作者:Gosick_Geass_Gate  
这篇文章主要为大家详细介绍了如何通过Python语言实现批量下载ts文件并合并为mp4视频的功能,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下

(一)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)))

到此这篇关于Python实现批量下载ts文件并合并为mp4的文章就介绍到这了,更多相关Python下载ts文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python requests模块安装及使用教程图解

    Python requests模块安装及使用教程图解

    这篇文章主要介绍了Python requests模块安装及使用教程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • 简单讲解Python中的字符串与字符串的输入输出

    简单讲解Python中的字符串与字符串的输入输出

    这篇文章主要介绍了Python中的字符串与字符串的输入输出,Python3.x版本中默认以Unicode为编码,省去了不少麻烦,需要的朋友可以参考下
    2016-03-03
  • python实现逆波兰计算表达式实例详解

    python实现逆波兰计算表达式实例详解

    这篇文章主要介绍了python实现逆波兰计算表达式的方法,较为详细的分析了逆波兰表达式的概念及实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-05-05
  • Python自然语言处理 NLTK 库用法入门教程【经典】

    Python自然语言处理 NLTK 库用法入门教程【经典】

    这篇文章主要介绍了Python自然语言处理 NLTK 库用法,结合实例形式详细分析了NLTK库的功能、安装、引用以及使用NLTK库进行文本分析的各种常用操作技巧,需要的朋友可以参考下
    2018-06-06
  • python实现时间o(1)的最小栈的实例代码

    python实现时间o(1)的最小栈的实例代码

    这篇文章主要介绍了python实现时间o(1)的最小栈的实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • python中session的使用案例详解

    python中session的使用案例详解

    这篇文章主要介绍了python session使用,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • 解决python-docx打包之后找不到default.docx的问题

    解决python-docx打包之后找不到default.docx的问题

    今天小编就为大家分享一篇解决python-docx打包之后找不到default.docx的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python 分布式缓存之Reids数据类型操作详解

    Python 分布式缓存之Reids数据类型操作详解

    这篇文章主要介绍了Python 分布式缓存之Reids数据类型操作详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Keras框架中的epoch、bacth、batch size、iteration使用介绍

    Keras框架中的epoch、bacth、batch size、iteration使用介绍

    这篇文章主要介绍了Keras框架中的epoch、bacth、batch size、iteration使用介绍,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • Python eval()与exec()函数使用介绍

    Python eval()与exec()函数使用介绍

    exec函数执行的是python语句,没有返回值,eval函数执行的是python表达式,有返回值,exec函数和eval函数都可以传入命名空间作为参数,本文给大家介绍下Python eval()和exec()函数,感兴趣的朋友跟随小编一起看看吧
    2023-01-01

最新评论