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


Posted in Python onFebruary 28, 2018

开发动机:最近用手机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视频格式

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python list转dict示例分享
Jan 28 Python
Python函数中定义参数的四种方式
Nov 30 Python
python3实现UDP协议的服务器和客户端
Jun 14 Python
Python 多进程并发操作中进程池Pool的实例
Nov 01 Python
Python+matplotlib实现填充螺旋实例
Jan 15 Python
Python实现的井字棋(Tic Tac Toe)游戏示例
Jan 31 Python
使用PyInstaller将python转成可执行文件exe笔记
May 26 Python
python: 判断tuple、list、dict是否为空的方法
Oct 22 Python
python 重命名轴索引的方法
Nov 10 Python
详解python tkinter教程-事件绑定
Mar 28 Python
Python (Win)readline和tab补全的安装方法
Aug 27 Python
pycharm永久激活超详细教程
Oct 29 Python
浅谈Python中的私有变量
Feb 28 #Python
python中logging包的使用总结
Feb 28 #Python
深入理解Python爬虫代理池服务
Feb 28 #Python
python实现装饰器、描述符
Feb 28 #Python
python安装教程
Feb 28 #Python
深入理解Python 关于supper 的 用法和原理
Feb 28 #Python
TensorFlow实现RNN循环神经网络
Feb 28 #Python
You might like
Yii 框架使用Forms操作详解
2020/05/18 PHP
fromCharCode和charCodeAt 方法
2006/12/27 Javascript
jQuery数据缓存功能的实现思路及简单模拟
2013/05/27 Javascript
jQuery中操控hidden、disable等无值属性的方法
2014/01/06 Javascript
复制网页内容,粘贴之后自动加上网址的实现方法(脚本之家特别整理)
2014/10/16 Javascript
javascript几个易错点记录
2014/11/26 Javascript
JavaScript获得url所有参数键值表的方法
2015/03/21 Javascript
AngularJS上拉加载问题解决方法
2016/05/23 Javascript
BootStrap智能表单实战系列(九)表单图片上传的支持
2016/06/13 Javascript
Bootstrap中点击按钮后变灰并显示加载中实例代码
2016/09/23 Javascript
JS实现本地存储信息的方法(基于localStorage与userData)
2017/02/18 Javascript
bootstrap fileinput组件整合Springmvc上传图片到本地磁盘
2017/05/11 Javascript
基于Cookie常用操作以及属性介绍
2017/09/07 Javascript
jQuery插件artDialog.js使用与关闭方法示例
2017/10/09 jQuery
vue加载自定义的js文件方法
2018/03/13 Javascript
vue 实现axios拦截、页面跳转和token 验证
2018/07/17 Javascript
详解在Vue.js编写更好的v-for循环的6种技巧
2020/04/14 Javascript
JS 数组和对象的深拷贝操作示例
2020/06/06 Javascript
Python中使用item()方法遍历字典的例子
2014/08/26 Python
python使用pil库实现图片合成实例代码
2018/01/20 Python
pandas string转dataframe的方法
2018/04/11 Python
python实现对求解最长回文子串的动态规划算法
2018/06/02 Python
在Python中将函数作为另一个函数的参数传入并调用的方法
2019/01/22 Python
python opencv 读取图片 返回图片某像素点的b,g,r值的实现方法
2019/07/03 Python
python之语音识别speech模块
2020/09/09 Python
澳大利亚正品化妆品之家:Cosmetic Capital
2017/07/03 全球购物
Perfume’s Club中文官网:西班牙美妆在线零售品牌
2020/08/24 全球购物
团员个人的自我评价
2013/12/02 职场文书
个人对照检查材料
2014/02/12 职场文书
银行反洗钱宣传活动总结
2015/05/08 职场文书
英语读书笔记
2015/07/02 职场文书
新学期家长寄语2016
2015/12/03 职场文书
2016优秀护士先进个人事迹材料
2016/02/25 职场文书
Python list去重且保持原顺序不变的方法
2021/04/03 Python
go语言-在mac下brew升级golang
2021/04/25 Golang
超详细Python解释器新手安装教程
2021/05/10 Python