首页 > 编程 > Python > 正文

python实现m3u8格式转换为mp4视频格式

2020-01-04 15:47:05
字体:
来源:转载
供稿:网友

开发动机:最近用手机QQ浏览器下载了一些视频,视频越来越多,占用了手机内存,于是想把下载的视频传到电脑上保存,可后来发现这些视频都是m3u8格式的,且这个格式的视频都切成了碎片,存在电脑里不方便查看,于是想把它转换为其他可以直接打开播放的完整视频,到网上找了一些工具,都不怎么好用,后来发现一个手机端的“缓冲合并工具”,倒是可以用,但是合并的视频顺序是乱的,碎片的视频顺序还需要用户手动调整,感觉太耽误时间了,于是自己打算写一个转换工具。

直接上代码:(程序的文件名为:convert_m3u8.py)   

# -*- coding:utf-8 -*- import sys import os from glob import glob #获取需要转换的路径 def get_user_path(argv_dir):   if os.path.isdir(argv_dir):     return argv_dir   elif os.path.isabs(argv_dir):     return argv_dir   else:     return False #对转换的TS文件进行排序     def get_sorted_ts(user_path):   ts_list = glob(os.path.join(user_path,'*.ts'))   #print(ts_list)   boxer = []   for ts in ts_list:     if os.path.exists(ts):       #print(os.path.splitext(os.path.basename(ts)))       file,_ = os.path.splitext(os.path.basename(ts))       boxer.append(int(file))   boxer.sort()   #print(boxer)   return boxer #文件合并   def convert_m3u8(boxer,o_file_name):   #cmd_arg = str(ts0)+"+"+str(ts1)+" "+o_file_name   tmp = []   for ts in boxer:     tmp.append(str(ts)+'.ts')   cmd_str = '+'.join(tmp)   exec_str = "copy /b "+cmd_str+' '+o_file_name   #print("copy /b "+cmd_str+' '+o_file_name)   os.system(exec_str)           if __name__=='__main__':   #print(sys.argv[1:])   argv_len = len(sys.argv)   if argv_len == 3:     o_dir,o_file_name =sys.argv[1:]     #print(o_dir+":"+o_file_name)     user_path = get_user_path(o_dir)     #print(user_path)     if not user_path:       print("您输入的路径不正确,:-(");     else:       if os.path.exists(os.path.join(user_path,o_file_name)):         print('目标文件已存在,程序停止运行。')         exit(0)       os.chdir(user_path)       #convert_m3u8('2.ts','4.ts',o_file_name)       boxer = get_sorted_ts(user_path)       convert_m3u8(boxer,o_file_name)       #print(os.getcwd())   else:     print("参数个数非法");    

注:代码不多,原理也很简单,就是把各个碎片视频按照顺序合并为一个视频文件。
使用方法如下:

python  convert_m3u8.py    m3u8视频的目录   要转换后文件的名字

其中第一个参数为m3u8视频的目录(m3u8的碎片视频在手机里是隐藏的,需要将隐藏文件显示出来才可以将文件导出到电脑里,在安卓手机里将隐藏文件夹前面的.重命名去掉就可以了),第二个参数为要转换后文件的名字。

python,m3u8,mp4

python,m3u8,mp4

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VEVB武林网。


注:相关教程知识阅读请移步到python教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表