M3U8 转MP4

m3u8是苹果公司推出一种视频播放标准,是一种文件检索格式,将视频切割成一小段一小段的ts格式的视频文件,然后存在服务器中(现在为了减少I/o访问次数,一般存在服务器的内存中),通过m3u8解析出来路径,然后去请求,是现在比较流行的一种加载方式,诸如腾讯视频之类大多都是切割成ts流进行加载。
安装包
python3 -m pip install Crypto
python3 -m pip uninstall pycryptodome–(安装Crypto.Cipher缺少包)

什么是M3U8文件
M3U8文件是指UTF-8编码格式的M3U文件
M3U文件是记录了一个索引纯文本文件,打开它时播放软件并不是播放它,而是根据它的索引找到对应的音视频文件的网络地址进行在线播放
原视频数据分割为很多个TS流,每个TS流的地址记录在m3u8文件列表中
ts 文件一般怎么处理?
1 只有m3u8文件,需要下载ts文件
2 有ts文件,但因为被加密无法播放,需要解码
3 ts文件能正常播放,但太多而小,需要合并
备注部分
m3u8文件中的 m3u8标签与属性说明

#EXTM3U
每个M3U文件第一行必须是这个tag,起标示作用
#EXT-X-VERSION:3
该属性可以没有
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:15
指定最大的媒体段时间长(秒)---目标持续时间;
所以#EXTINF中指定的时间长度必须小于或是等于这个
最大值;
这个tag在整个PlayList文件中只能出现一 次(在嵌套的情况下,一般有真正ts url的m3u8才会出现该tag);
#EXT-X-MEDIA-SEQUENCE:0
每一个media URI在cont-1643296-14811578-hd中只有唯一的序号,相邻之间序号+1,
一个media URI并不是必须要包含的,如果没有,默认为0
#EXTINF:14.920000,
cont-1643296-14811578-hd-00001.ts
#EXTINF:10.000000,
cont-1643296-14811578-hd-00002.ts
#EXTINF:10.000000,
cont-1643296-14811578-hd-00003.ts
#EXTINF:10.000000,
cont-1643296-14811578-hd-00004.ts
#EXTINF:7.840000,
cont-1643296-14811578-hd-00005.ts
#EXT-X-ENDLIST

补充!!!!!!!!!!!
#EXT-X-PLAYLIST-TYPE

提供关于PlayList的可变性的信息,这个对整个PlayList文件有效,是可选的,格式

如下:#EXT-X-PLAYLIST-TYPE::如果是VOD,则服务器不能改变PlayList 文件;

如果是EVENT,则服务器不能改变或是删除PlayList文件中的任何部分,但是可以向该

文件中增加新的一行内容。

######################################################################
ts

加密后的ts文件不能直接合并或播放,需要使用key对每个ts文件进行解密。

分为两种情况:
(1).如果ts文件已经全部下载好,则可以直接在本地通过ffmpeg快速解密合并。
(2).如果ts文件没有下载好,则可以通过vlc直接下载整个视频,或者通过ffmpeg下载并转换。

无论是哪种情况,都要去视频源地址下载m3u8文件。如果可以下载key(有些网站加密方式比较严谨,不那么容易获取到key),把key文件也下载好。

下载m3u8文件的方式是去源地址网站,按F12找到m3u8文件,或者从右键–>网页源代码中找到地址。两种方式都试一试。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值