python实现m3u8转mp4

需要用到两个版本ffmpeg文件及原码请到项目地址自取
https://gitee.com/z2322739526/m3u8
主要解决ts改后缀mp4无法上传网盘播放的问题,所以需要完整处理下
tomp4.py费时费电脑,转码速度大约6分钟共处理总计5分钟视频
完整代码如下
m3u8.py

import requests
import re
import os
import urllib.parse
import time
import shutilstart_time = time.time()
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36',
}
m3u8_url = input("m3u8_url:")
# url解码
m3u8_url = urllib.parse.unquote(m3u8_url)
r_url = '.*&vurl=(.*ver=4)'
url_list = re.findall(r_url,m3u8_url)
if len(url_list) != 0:m3u8_url = url_list[0]
if m3u8_url == '1':m3u8 = open('14.m3u8').read()
else:m3u8 = requests.get(m3u8_url,headers = headers).text
r_m3u8 = ',\n(.*?)\n#'
# re.S整体匹配
ts_all = re.findall(r_m3u8,m3u8,re.S)
print(ts_all[:10])
print('共 %d 个ts文件'%len(ts_all))
# 删除之前ts
if os.path.exists('./ts'):shutil.rmtree('./ts')os.mkdir('./ts')
if not os.path.exists("./ts"):os.mkdir("./ts")
num = 0
for ts_2 in ts_all:try:ts = requests.get(ts_2,headers = headers).contentnp = (len(str(len(ts_all)))-len(str(num)))*'0'+str(num)with open('./ts/%s.ts'%np,'wb') as fp:fp.write(ts)print('%s.ts save'%np)num += 1except:# https://jx.parwix.com:4433/player/?url=https://www.iqiyi.com/v_dql4i2lz0c.html?vfm=2008_aldbd&fv=p_02_01# 解析系统特化链接ts_2 = 'https://211.99.101.171:4433' + ts_2ts = requests.get(ts_2,headers = headers).contentnp = (len(str(len(ts_all)))-len(str(num)))*'0'+str(num)with open('./ts/%s.ts'%np,'wb') as fp:fp.write(ts)print('%s.ts save'%np)num += 1
end_time = time.time()
print('下载完成,总耗时:',end_time-start_time)
# https://sod.bunediy.com/20211217/njayYgPt/index.m3u8  

tomp4.py

import sys
import os
import timestart_time = time.time()def getmax(file_dir):for root, dirs, files in os.walk(file_dir):return len(files[0])-3breakprint(sys.path[0])
start = int(input('请输入起始数字:'))
num = len(os.listdir("./ts"))
fmax = getmax("./ts")
print('最大长度', fmax)for i in range(start,num):name = (fmax - len(str(i)))*'0' + str(i)print('正在处理', name)os.system("ffmpeg-old -i " + sys.path[0] + r"\ts\%s.ts -threads 2 "%name + sys.path[0] + "\mp4\%s.mp4"%name)names = os.listdir("./mp4")
print(names)
fp = open('./list.txt','w')
for i in names:fp.write("file 'mp4/%s'\n"%i)
fp.close()end_time = time.time()
print('下载完成,总耗时:',end_time-start_time)
os.system('pause')

合并mp4.bat

ffmpeg-new -f concat -i list.txt -c copy out.mp4
pause

python实现m3u8转mp4相关推荐

  1. python实现m3u8转mp4方法2

    python实现m3u8转mp4方法2 项目地址 https://gitee.com/z2322739526/m3u8/tree/master/new 针对chrono下载器插件保存的ts,下载后文件 ...

  2. 某站视频python抓取: m3u8转mp4

    之前利用python简单爬虫抓过一些图片,最近想到了抓取视频.由于很多地方视频不提供下载.所以觉得有必要学习一下,以备不时之需.备注:这里仅记录碰到的网站视频实例,不保证适用所有情况. 基本概念与思路 ...

  3. Python 爬虫 m3u8的下载及AES解密

    python爬虫 m3u8的下载及AES加密的解密 前言 2023.1.23更新 线程池版 完整代码 异步协程版 前言 这里与hxdm分享一篇关于m3u8视频流的爬取下载合并成mp4视频的方法,并且支 ...

  4. python下载m3u8视频_使用python 下载m3u8格式视频,并使用ffmpeg 合成视频

    使用python 下载m3u8格式视频,并合成 # -*- coding: utf-8 -*- # Created on 2018/07/26 import os import requests &q ...

  5. Python 实现 m3u8 视频下载

    Python 实现 m3u8 视频下载 m3u8 是一种基于文本的媒体播放列表文件格式,通常用于指定流媒体播放器播放在线媒体流.它是一个简单的文本文件,其中包含多个由 URI 引用的媒体资源文件的 U ...

  6. Python下载M3U8加密视频示例

    大家好,我是小小明. 最近看到几个视频网站的地址依然是m3u8格式,不禁有了使用python进行下载的想法,虽然下载m3u8格式视频的工具很多,但如果我们自行编码就能应对更多的情况. 关于m3u8的基 ...

  7. m3u8转mp4无损转换的方法和技巧

    为什么要将m3u8格式转换为mp4格式? 因为m3u8格式很多播放器不支持,只能在浏览器在线看,但是在线看有些不方便而且会因为网络卡顿导致播放体验效果不理想,有的m3u8是加密的,使用一些工具下载后也 ...

  8. m3u8转MP4 视频最最有效的办法!!!!!!!

    m3u8转MP4 视频最最有效的办法!!!!!!! 手写日志. 解决办法就是这个! m3u8转MP4 视频最最有效的办法!!!!!!! http://www.oicqzone.com/soft/201 ...

  9. 安卓手机m3u8转为mp4格式100%有效的方法

    本文以图片形式手把手演示,请读者耐心 首先推荐两款安卓手机上全网视频下载神器 X浏览器和QQ浏览器 虽然我平时用安卓手机的X浏览器(这款浏览器强烈推荐使用)的嗅探资源媒体功能就已经能下载90%的网络视 ...

最新文章

  1. IEs 4 Linux 新版支撑 IE 7
  2. apt和apt-get的区别?为什么推荐使用apt?RedHat系列(rpm包、包管理工具yum)和Debian系列(deb包、包管理工具apt-get)区别?
  3. [我的1024开源程序]200元仿豆瓣小程序带评论
  4. expdp impdp中 exclude/include 的使用
  5. (JAVA)File类
  6. KingPaper初探ThinkPHP3.1.2之目录部署(二)
  7. PHP轻量级在线客服系统源码 自适应手机移动端
  8. Number()、parseInt() 和 parseFloat() 的区别
  9. Django学习笔记之Ajax入门
  10. 2021-08-07LabVIEW编程LabVIEW控制FS400308系列气体质量流量计例程与相关资料
  11. 起源地杯青年足球锦标赛
  12. java阿里面试官直接告诉你录取答案,你还在犹豫那就晚了
  13. php算法,记录PHP常见的几种算法
  14. Keil5添加STM32芯片包
  15. 有个程序猿男朋友是一种什么样的体验?
  16. Qt 之图形(QPainterPath)
  17. Python 实现数字的打印
  18. 云图和热力图的绘制算法
  19. Gravatar头像注册使用教程
  20. 备忘录模式——实现象棋悔棋

热门文章

  1. 数据表格之多表头设置
  2. 查找原始MySQL死锁ID 笔记
  3. Spring Cloud:统一异常处理
  4. 计算机视觉研究院手把手教你深度学习的部署(手势识别,源码已开源)
  5. 上海域格CLM920 JC3(JC5)模组安卓系统下会显示以太网图标的处理
  6. 144hz和60hz测试软件,专业FPS玩家讲解:60Hz与144Hz刷新率的问题
  7. app运营,如何提高用户的参与度?
  8. 曾几何时,还是游吟长安的醉客
  9. 【练习】获取新浪搜索中的热搜榜的标题
  10. 《分布式计算云计算与大数据》第一章