这个比较好用。

copy /b d:\xxx\download_ts\*   d:\xxx\download_ts\new.mp4

用python ffmpeg也可以,不过我合出来有卡顿或者掉声问题,

参数估计调整不

#!/usr/bin/env/python
#_*_coding:utf-8_*_
#Data:2017-10-02
#Auther:苏莫
#Link:http://blog.csdn.net/lingluofengzang
#PythonVersion:python2.7
#filename:convert_m3u8.py import os
import sys reload(sys)
sys.setdefaultencoding('utf-8') # 检查文件路径及文件是否正确
def check_path_file(_path, _file): # 判断路径是否存在
# os.path.isdir(path) 判断路径是否为目录
# os.path.isabs(path) 判断是否为绝对路径
if os.path.isdir(_path) or os.path.isabs(_path):
# 判断文件是否存在
# os.path.join(path1[, path2[, ...]]) 把目录和文件名合成一个路径
# os.path.exists(path) 路径存在则返回True,路径损坏返回False
if os.path.exists(os.path.join(_path, _file)):
print u'>>>[-] 目标文件已经存在。'
exit(0) return True else:
print u'>>>[-] 路径不存在。'
exit(0) # 更改后缀名为[.ts]
def change_file_name(_path): # 获取路径下的文件名
files = os.listdir(_path) for filename in files:
# 文件名分割 文件名称+后缀
portion = os.path.splitext(filename)
if portion[1] != '.m3u8' or portion[1] == '':
newname = portion[0]+".ts"
# 切换到文件所在路径
os.chdir(_path)
# 更换文件后缀
os.rename(filename,newname) return True # 对[.ts]文件进行排序
def sort_file(_path, num = '1'): if num == '1':
change_file_name(_path)
file_lists = os.listdir(_path) file_list = [] for file in file_lists:
portion = os.path.splitext(file)
if portion[1] == '.ts':
file_list.append(int(portion[0])) file_list.sort()
return file_list # 合并文件
def convert_file(_path, files, filename): tmp = []
for file in files:
tmp.append(str(file) + '.ts')
# 合并ts文件
os.chdir(_path)
shell_str = '+'.join(tmp)
shell_str = 'copy /b '+ shell_str + ' ' + filename
os.system(shell_str)
# 删除ts和m3u8文件
os.system('del /Q *.ts')
os.system('del /Q *.m3u8') if __name__ == '__main__': print '-' * 60 + '\n'
print u'将m3u8格式的视频转换成mp4格式'.center(60) + '\n'
print '-' * 60 try: _path = raw_input(unicode('>>>[+] 请输入m3u8视频所在目录\n>>>[+] ').encode('gbk'))
_file = raw_input(unicode('>>>[+] 请输入mp4的文件名\n>>>[+] ').encode('gbk'))+'.mp4'
print u'>>>[+] 是否需要将m3u8视频后缀名转换为[.ts]'
num = raw_input('>>>[+] Yes:1 No:2\n>>>[+] [1]') flag = check_path_file(_path, _file) if flag:
if num == '2':
files = sort_file(_path, num)
else:
files = sort_file(_path)
print '-' * 60
convert_file(_path, files, _file) except Exception as e:
print e

  

合并ts到mp4的更多相关文章

  1. Linux 下使用 ffmpeg 大批量合并 ts 文件, mp4切割文件为m3u8

    见范例 ffmpeg -i "concat:file001.ts|file002.ts|file003.ts|file004.ts......n.ts" -acodec copy ...

  2. 合并ts文件

    合并ts文件 合并ts文件 参考资料 合并ts文件 文件在手机中的存储: ├── fe2cd5a64fe78a69f90a7c0a2b08a240e1444082.ts ├── ff5b590b44e ...

  3. 关于m3u8格式的视频文件ts转mp4下载和key加密问题

    一,利用网站浏览器F12键,利用谷歌浏览器插件找到视频的.m3u8文件,并打开. 二,打开m3u8文件后,里面有很多.ts的链接,和key的链接. 三,保存为html文件,下载ts文件,代码如下:可加 ...

  4. python爬虫:抓取下载视频文件,合并ts文件为完整视频

    1.获取m3u8文件 2.代码 """@author :Eric-chen@contact :sygcrjgx@163.com@time :2019/6/16 15:32 ...

  5. 如何手动合并ts视频文件

    手动合并ts视频文件一不需要编程,二不需要下载什么特殊软件,用一些最普通的软件即可. 工具: 1.Chrome浏览器 2.迅雷 3.CMD命令行工具 步骤 一.打开迅雷,先确保没有别的在下载. 二.播 ...

  6. linux下将多个ts文件合并为一个MP4文件

    1. 安装ffmpeg工具 sudo apt install ffmpeg 2. 确保所有ts文件无损坏后,确保当前目录(即存放ts文件的目录)无txt文件及mp4文件,在存放ts文件的目录下建立te ...

  7. python爬虫:抓取下载电影文件,合并ts文件为完整视频

    目标网站:https://www.88ys.cc/vod-play-id-58547-src-1-num-1.html 反贪风暴4 对电影进行分析 我们发现,电影是按片段一点点加载出来的,我们分别抓取 ...

  8. 合并.ts文件 无需软件

    cmd 命令直接输入: copy /b D:\temp\*.ts D:\new.ts D盘temp目录的ts文件 合并 并输出到 D盘 new.ts文件

  9. 如何合并ts文件?

    答: 使用ffmpeg工具,使用方法如下: ffmpeg -i <m3u8 file name> <output file name> 注意:要先将m3u8文件中描述的ts文件 ...

随机推荐

  1. (转)java调用python脚本

    这篇博客旨在吐血分享今天遇到的java调用python脚本遇到的坑,折腾了3个多小时终于可以跑通了,代码超级短,但网上的好多资料都是抄来抄去的,很少有能够直接跑通的,尤其是针对你的python文件中用 ...

  2. vi相关

    vi有三种模式: 命令模式:键盘的任意输入都当成“编辑命令”: 输入模式:键盘的任意输入都当成文本内容: 末行模式:键盘的任意输入都当成“文本管理命令” 命令模式(刚打开)==>(i,a,o)输 ...

  3. jenkins 设置钉钉通知--钉钉机器人

    https://blog.csdn.net/workdsz/article/details/77531802

  4. MongoDB--关于数据库及选择MongoDB的原因

    用户用数据库提供的接口将数据写入,数据会以标准的格式存储起来. 不同数据库的区别:存放数据的组织不同,同时提供不同种类的查询,用户按照自己的需求选择合适的数据库. 可以将地理位置存储在MongoDB中 ...

  5. ROSETTA使用技巧随笔--score.sc处理

    对score.sc的便利操作: $ sort -n -k2 example_score_file.sc 此命令会以score文件的第二列进行排序(sort -n -k2,-n表示对数值型数据排序,可用 ...

  6. 【cocos2d-js官方文档】事件分发监听机制(摘录)

    简介 游戏开发中一个很重要的功能就是交互,如果没有与用户的交互,那么游戏将变成动画,而处理用户交互就需要使用事件监听器了. 总概: 事件监听器(cc.EventListener) 封装用户的事件处理逻 ...

  7. selenium元素高亮显示

    selenium元素高亮显示: 采用js注入的方式,通过更改元素样式来实现. border:2px 边框  solid red 红色 def hightlight(self,element): &qu ...

  8. LeetCode104.二叉树最大深度

    给定一个二叉树,找出其最大深度. 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数. 说明: 叶子节点是指没有子节点的节点. 示例:给定二叉树 [3,9,20,null,null,15,7], ...

  9. Python之描述器

    1.描述器的表现 用到三个魔术方法,__get__(), __set__(), __delete__() 方法签名如下 object.__get__(self,instance,owner) obje ...

  10. Lua 可变参数之arg与select

    function TestFunc(...) local arg = { ... } --Lua .2以后不再支持默认arg参数,{}与...之间要有空格 print("输入的参数个数:&q ...