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. 2019年最新最全运维技能图谱
  2. linux 压缩文件小,技术|在 Linux 上压缩文件的 5 种方法
  3. 帷幕的帷是什么意思_“战斗民族”的鲜花礼品凭什么火遍全球?
  4. Redis基础高级学习笔记
  5. 更改mysql最大连接数
  6. [css] 为什么说对opacity进行动画要比box-shadow进行动画性能更好呢?
  7. C++:27---new delete malloc free
  8. 论文笔记(Neural Graph Collaborative Filtering)
  9. 无法读取源文件或磁盘_raid磁盘阵列作用
  10. Android 系统(205)---MTK平台分区回读
  11. activeMQ的基本使用
  12. OpenGL超级宝典(第7版)之VS2019使用sb7框架搭建自己的程序
  13. 入门大数据基础知识了解
  14. 四菱天线怎么加强_关于自制电视四菱天线材料好坏和买连接线和转接头问题
  15. 量化投资学习——orderbook数据分析
  16. 论文阅读_DeepWalk
  17. 万字长文,一文讲透!终于有人把商业智能(BI)讲清楚了
  18. 电脑右键新建没有记事本怎么办?
  19. R语言(The R Programming Language)
  20. 了解Oracle历史

热门文章

  1. 借助栈实现单链表的原地逆置
  2. 按键精灵脚本:采集鼠标当前所在坐标的颜色
  3. 数据结构与算法——慕课作业——第一章 概论 + 第二章 线性表
  4. excel中利用综合应用len(),lenb(),left() ,find()函数筛选汉字问题
  5. MySQL相关语句使用注意点
  6. 新手如何成为一名黑客
  7. python输入一个正整数、计算其各个位的数字之和_C语言程序设计:编写程序,输入一个正整数,统计该整数的位数并计算其各个数位上的数字之和。...
  8. UOS安装 MySQL5.7
  9. 【Flink实战系列】Flink 提交任务遇到 Server Response Internal server error 怎么排查
  10. Excel在行上输入连续序号的3种方法的操作比较