现在网上的视频很多都是m3u8格式的,它们用这种格式有什么好处?现在网上的视频都是m3u8格式的,它们用这种格式有什么好处?和mp4格式比有什么利弊,听说是苹果
下面我们一起谈谈m3u8是指什么,有什么好处。
M3U8视频格式也是一种M3U,是某些移动设备例如安卓,苹果手机浏览器缓存视频的“专用视频格式”。只是它的编码格式是UTF-8格式。M3U用Latin-1字符集编码。M3U8格式特点是带有一个目录信息或文件,而许多安卓手机或者iPhone手机浏览器缓存的电影格式都为M3U8,需要进行转码才可以播放。
M3U8文件是指UTF-8编码格式的M3U文件。M3U文件是记录了一个索引纯文本文件,打开它时播放软件并不是播放它,而是根据它的索引找到对应的音视频文件的网络地址进行在线播放。而M3U8有啥好处呢?主要是可以做多码率的适配,根据网络带宽,客户端会自动选择一个适合自己码率的文件进行播放,保证视频流的流畅。
m3u8 文件其实是 HTTP Live Streaming(缩写为 HLS) 协议的部分内容,而 HLS 是一个由苹果公司提出的基于 HTTP 的流媒体网络传输协议。
HLS 的工作原理是把整个流分成一个个小的基于 HTTP 的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。在开始一个流媒体会话时,客户端会下载一个包含元数据的 extended M3U (m3u8) playlist文件,用于寻找可用的媒体流。HLS 只请求基本的 HTTP 报文,与实时传输协议(RTP)不同,HLS 可以穿过任何允许 HTTP 数据通过的防火墙或者代理服务器。它也很容易使用内容分发网络来传输媒体流。m3u8 文件实质是一个播放列表(playlist),其可能是一个媒体播放列表(Media Playlist),或者是一个主列表(Master Playlist)。但无论是哪种播放列表,其内部文字使用的都是 utf-8 编码。
当 m3u8 文件作为媒体播放列表(Meida Playlist)时,其内部信息记录的是一系列媒体片段资源,顺序播放该片段资源,即可完整展示多媒体资源。其格式如下所示:
对于点播来说,客户端只需按顺序下载上述片段资源,依次进行播放即可。而对于直播来说,客户端需要定时重新请求该 m3u8 文件,看下是否有新的片段数据需要进行下载并播放。
当 m3u8 作为主播放列表(Master Playlist)时,其内部提供的是同一份媒体资源的多份流列表资源(Variant Strean)。其格式如下所示:
该备用流资源指定了多种不同码率,不同格式的媒体播放列表,并且,该备用流资源也可同时提供不同版本的资源内容,比如不同语言的音频文件,不同角度拍摄的视屏文件等等。
如果你喜欢我的解答,欢迎评论。
感谢您的阅读!
其实这种格式的“罪魁祸首”是iPhone,这是苹果推出的一种视频播放标准。实际上,它的本质是一种索引文件,如果你打开后你会发现,它似乎就像一个目录,里面全是一些路径,你如果想找到里面的视频,你得通过文本文件给打开,找到里面的路径。
因为这是iPhone推出的视频播放标准,因此你可以使用iTunes自带的播放器进行播放。一般来说,只要通过寻找它的路径,你电脑中播放器m3u8文件,那么就可以直接通过播放列表播放网络在线音视频。
我们现在来说一说,到底这种格式,如果想变成MP4格式,怎么做呢?
「m3u」和「m3u8」文件都是苹果公司使用的 HTTP Live Streaming(HLS) 协议格式的基础。M3U它是一种播放多媒体列表的文件格式,而m3u8 是 Unicode 版本的 M3U,使用 UTF-8 编码。
m3u8格式特点是带有一个目录信息或文件。m3u8说白了只是一个播放列表,里面存的是一堆视频片段的 URL。
m3u8如何播放?
现在很多的媒体播放器都支持m3u8播放,而不局限于苹果设备。以potplayer来说,右键打开-打开文件-打开链接,将m3u8链接粘贴进去播放即可。当然,前提你要保证此链接的可用性。
m3u8如何下载?
m3u8 本身是一个文本文件,里面存的是一堆视频片段的 URL,一个个下载下来再合并就行。不过这也是一个繁琐而麻烦的工作。当然你可以考虑批量下载工具,再后期合并。利用python实现的也不少,毕竟一体化下载和合并的工具有时候并非很适用,不如代码根据实际需求修改。
m3u8用途?
m3u8 文件其实是 HTTP Live Streaming(缩写为 HLS) 协议的部分内容,而 HLS 是一个由苹果公司提出的基于 HTTP 的流媒体网络传输协议。
而HLS实际上是一种防盗链技术手段。给 m3u8 和 ts 文件的url动态生成一个 token,url是随着很多参数动态变化的,比如时间,用户id、ip地址,内容id ,导致你无法使用这个固定的url盗链,这种方式可以防止其他网站直接使用你的url来观看或者一般用户的下载。
简单说m3u8仅仅只是一个文本文件,所谓文本文件,就像题主自己在windows电脑桌面上创建了一个
.txt
文本一样。m3u8文本中包含了很多视频地址,比如http://xxxxxx360p.mp4,http://xxxxxx720p.mp4,http://xxxxxx1080p.mp4之类的地址,目的就是为了根据当前设备选择合适的视频地址进行播放文件。
如今是网络时代,而使用网络的费用还是很高的,因此m3u8这种方法可以减少我们的网络流量,首先他会自动根据访问的设备进行切换高清度,比如你使用手机播放视频,那么可能他会识别出手机应该播放360p的视频,如果你使用电脑播放视频,则会自动选择1080p的播放,当1080p播放出现缓慢时,可能还会切换成720p等等。
除了以上几点,它还可以播放流媒体、直播等等。因此m3u8格式的文本,可以说是目前较为流行的视频文本。
因此它是多码率、省流量的播放方式。
谢邀,2020、5G元年必定是小视频、直播的天下,而这一些的背后,肯定不能离开视频数据的传输,下面为大家介绍下基于HLS协议的m3u8格式视频文件。
我们先来看维基百科中关于m3u8格式的介绍:
M3U8 是 Unicode 版本的 M3U,用 UTF-8 编码。\"M3U\" 和 \"M3U8\" 文件都是苹果公司使用的 HTTP Live Streaming(HLS) 协议格式的基础,这种协议格式可以在 iPhone 和 Macbook 等设备播放。
也就是说m3u8是HLS协议的一部分,而HLS协议是苹果公司提出的一种基于HTTP的流媒体网络传说协议,其原理是将一个大的媒体文件分割成很多分片文件,该分片的URL路径和资源描述(分片帧率、分辨率等信息)记录在m3u8文件中,准确的说m3u8是一种索引文件。
使用m3u8格式文件主要因为可以实现多码率视频网络地址,客户端根据当前网络带宽情况动态选择合适的码率视频分片文件进行播放,提升不同网络环境下用户的体验度。
m3u8基于苹果公司的HLS协议,目前Android、iOS系统均提供支持,使用HTTP协议即可完成视频的请求和播放,基于HTTP的渐进式下载,根据网络状况动态选择合适的视频分片,用户体验较好。而且它部署简单,基于HTTP协议,不会受到防火墙的拦截。
MP4格式对HTTP和Flash都比较友好,但是MP4文件头部结果比较复杂,播放过程对网络带宽要求较高,在网络复杂的场景用户体验较差。采用MP4视频格式,数据传输过程肯定要采用RTP协议,实现部署麻烦,容易遭受防火墙拦截。
其实,基于HTTP的流媒体协议目前实现商业化的,除了苹果公司的HLS协议,还有Adobe公司提出的HDS(HTTP Dynamic Streaming),微软公司提出的MSS(Microsoft Smooth Streaming),但是各家公司都有其单独的标准,市场统一化难度高,基于此,MPEG组织提出了DASH(Dynamic Adaptive Streaming over HTTP),动态流媒体传输协议,而DASH的核心包括MPD索引文件(类似于HLS协议的m3u8文件)和视频分片媒体分片文件。
DASH将媒体文件切分成小的视频片段,每个小的片段都编码成几种不同的码率,甚至会存在不同的分辨率,以满足不同客户端的网络需求。比如,DASH可以根据当前的网络状况,来下载合适的码率的视频片段,从而避免停顿或重新缓冲。
目前国内外很多的大型网站都已经采用了DASH协议来完成视频流的播放,比如以二次元闻名的B站、YouTube、Google、Facebook、爱奇艺等。
首先纠正一点,M3U8并不是视频文件,它只是个包含播放片断的地址列表文件。你可以理解为M3U8文件里,记录着一个大的视频文件分段后,每一段视频的播放地址。
为什么越来越多的产品使用M3U8格式?从上面的图可以看得出来,用这种方式加载文件有个好处,播放一个媒体文件的时候,可以优先加载当前播放时间点的几个小片段,而不用加载所有文件。至于怎么搞的,大家感兴趣的话可以研究下HLS( HTTP Live Streaming)流媒体传输协议。
M3U8是M3U的Unicode版本,也就是用UTF-8编码,所以普通人可以认为两者差别不大。
而这两种格式都是苹果公司提出的基于HTTP的流媒体网络传输协议,这种协议能使音视频媒体文件在网络环境中直播和点播,解决了流媒体加载慢延时长的问题(当然,如果你带宽够厉害,即点即开,那用不用什么技术也没关系了)。
另外,如果对延时有更高要求的,可以了解下RTMP。
m3u8文件的开头
#EXT-X-VERSION:表示 HLS 的协议版本号
:每个ts切片视频文件的时长
每一种格式其实就是一种编码协议,就好像每个国家都有不同的法律一样。
比如图片常见的图片格式有jpg、png、gif等,虽然都是图片,但是编码规范不一样,应用的场景也不一样。
如果一个人硬要只能使用其中一种格式,那有很多场景就无法解决某些痛点。比如我想看动图,JPG格式肯定无法满足我的需求,这种情况下肯定是GIF更胜任。
当然,在某些前提下,规范统一是好的。比如当年手机接口众多,导致同样是手机,却没有办法解决接口共用的问题。直到后来统一了手机接口为USB,出门也没有必要带着专属充电器了。
如果东西是一样的,功能也是一样,那就没有必要搞那么多规范出来了。
但是我们也要看到,事物的发展是有过程的,每个公司发展的产品都是基于需求和利益的,如果你的标准无法解决我的问题,或者成本不划算,那还不如自己搞一个。
所以这也是为什么有这么多格式的原因。
M3U8是苹果公司流媒体协议的一部分,它可以解决在媒体文件在网络直播/点播场景的问题。M8U8的实质就是一个播放列表文件,它将一个大文件分段后形成的每个片段的播放地址记录在其中,这样就可以有用不同速率加载不同的媒体片段了。
因为苹果只支持m3u8格式。
m3u8优点是视频流稳定,但是他的稳定是因为缓存了几秒钟的流文件,但也因为m3u8必须缓存几秒的问题,导致m3u8延迟比rtmp高并且无法避免。
这也是市场一家独大造成的问题,明明不是最优的方案,但是因为苹果的垄断导致其他人都要跟进。
视频格式实质上是视频编码格式,以不同的方式对视频进行编码最终会呈现出我们现在看到的各种各样的视频格式。
为什么我们需要对视频进行编码呢?因为数字视频是对模拟视频信号数字化的结果,而直接数字化而未经压缩的视频数据量是十分惊人的,1G容量的存储器也只能存储不到10秒的视频图像,巨大的视频文件严重阻碍视频的传播扩散。
为了解决这个问题,我们需要寻找到一种既能对视频大小进行压缩,又能尽量保证画面清晰度的方法。于是,各个组织机构开始研究视频的压缩技术,研究过程中科学家们发现,视频图像数据中其实包含大量的冗余信息,通过特定的编码技术,可以改变一些不太重要的像素值,这样就可以大大减小视频文件的存储空间。
另外,要注意的是,视频经过编码后还不能直接到用户手上,还需要经过封装(经过编码的数据以一定的方式放到文件中),所以更准确地来说,用户平时看到的其实是视频封装格式,有时候视频编码格式名称和封装格式名称一致,有时候不一致。
基于这个思想,相关领域的大公司开发出了自己的视频编码格式。之所以市面上出现各种各样视频格式并存的局面而不是进行统一:
一方面,因为实际有关公司的专利和利益问题,尤其是对于那些有自己产品完整生态的企业来说,拥有自己的视频格式更方便连带销售,提高利润。
另一方面,受硬件环境所限,视频格式需要根据环境的不同进行优化调整,以达到更佳的视频体验,视频环境差异大是导致视频格式没办法统一的重要原因。这就好比人类其实只是需要一块御寒的布,但是会有不同款式的衣服产生一样。
由于相关国际组织制定的系列编码标准的存在及大公司的垄断,虽然市面上的视频格式没有统一,但是真正流行的其实也就那么几种。常见的视频格式分类有:
MPEG格式:优点是储存方式多样,可以适应不同的应用环境。
AVI格式:优点是图像质量好,可以跨多个平台使用。
MOV格式:优点是可储存的内容丰富,支持视频、音频、图片、文字等。
WMV格式:优点可扩展性强,体积小,非常适合在网络上传播。
RM格式:优点是既可以保证静止画面的质量又能大幅地提高了运动图像的画面质量。
FLV格式:优点是文件体积小,加载速度很快,使得网络观看视频文件非常流畅,是典型的视频流媒体格式。
而问题中所提到的M3U8格式其实是苹果公司推出的视频播放标准,准确来说是一种索引文件,我们可以用M3U8格式文件来解析对应的视频网络地址,从而实现在线播放。它主要的好处是可以做多码率适配,视频网站能够根据用户的网络带宽情况,自动为客户端匹配一个合适的码率文件进行播放,从而保证视频的流畅度。
其实现在很多视频播放器都可以支持不同的视频格式,实在不行的话可以下载格式转化器将文件格式转换一下。
M3U8是一个文本文件,使用记事本就可以打开查看里面的内容。
M3U8俗称播放列表文件,里面的内容就是被播放的音视频文件路径或网址。只有这个才是音视频文件真实的路径。
m3u8是保存音频、视频分块的复列表文件通常一个大文件会被分割成若干小文件,然后通过m3u8记录制每个文件的地址Safari可以直接播放m3u8文件,其他的一百些视频软件也可以播放m3u8,播放的时候,会从度文件中找到每个视频块依知次播放你可以以文本的形式打开道m3u8,就可以看到所有视频流的真实地址。
如今是网络时代,而使用网络的费用还是很高的,因此m3u8这种方法可以减少我们的网络流量,首先他会自动根据访问的设备进行切换高清度,比如你使用手机播放视频,那么可能他会识别出手机应该播放360p的视频,如果你使用电脑播放视频,则会自动选择1080p的播放,当1080p播放出现缓慢时,可能还会切换成720p等等。
如果里面路径是本地路径,那么导到别的设备上观看,就需要把本地中对应的音视频文件一起拷贝过去。单独一个M3U8播放列表文件是没用的。
如果里面包含的路径是网络路径(网址),那么只要设备保持联网,播放器支持m3u8文件,那么就可以直接通过播放列表播放网络在线音视频。
但如果要想转换视频,那么就只能把列表中对应的音视频文件(在线的下载下来,本地的定位到本地对应路径中去)导入转换工具中。
一个是playlist的格式,一个是视频的压缩格式,俩就不是一会事儿
华裔女赌王就此没落,生前让所有 浓情端午粽飘香,青浦邀你“云体 上海:“云端”展现端午节文化内 “甜咸大战”!明星艺人们喜欢什 如何做一个男人喜欢的情人(如何 当你和你同时出现在同一个场景中 如何在昏暗的光线下设置快门速度 教育在生活中的价值是什么? 世上做坏事的人死后会面临什么因 拜登就任总统后的第一步是什么? 同意/不同意:人生最重要的目标 二战后,德国在调和分歧方面做得 亚伯·林肯恨白人吗? 一个编辑能把你的故事毁得有多严 现在的iPhone6还能坚持再用一年 曹操为什么不杀司马懿? 现在买房是不是最便宜的时候,现 我身边的农业银行营业厅关了,AT 欧洲媒体评选CBA最有实力球员, 荣耀play的6+128和荣耀8X的6+128 蚂蚁集团是科技公司还是金融公司 请问机友华为mate30P与华为mate3 听说老詹修剪一次指甲需要5小时 为什么说宝宝“一月睡二月哭三月 戴笠人称戴老板,这个是怎么叫出 没有工作能一次性补缴社保么? 我想知道定向师范生和免费师范生 肺癌引起的咳嗽是怎样的呢? 5000mAh电池的5G手机推荐吗?要 恒大亚冠表现“差强人意”,你觉