m3u8

HTTP Live Streaming直播(iOS直播)技术分析与实现

旧巷老猫 提交于 2019-12-19 03:56:58
不经意间发现,大半年没写博客了,自觉汗颜。实则2012后半年,家中的事一样接着一样发生,实在是没有时间。快过年了,总算忙里偷闲,把最近的一些技术成果,总结成了文章,与大家分享。 前些日子,也是项目需要,花了一些时间研究了HTTP Live Streaming(HLS)技术,并实现了一个HLS编码器HLSLiveEncoder,当然,C++写的。其功能是采集摄像头与麦克风,实时进行H.264视频编码和AAC音频编码,并按照HLS的协议规范,生成分段的标准TS文件以及m3u8索引文件。通过我的HLSLiveEncoder和第三方Http服务器(例如:Nginx),成功实现了HTTP Live Streaming直播,并在iphone上测试通过。我就把这当中的一些收获写在这里。 HLS技术要点分析 HTTP Live Streaming(HLS)是苹果公司(Apple Inc.)实现的基于HTTP的流媒体传输协议,可实现流媒体的直播和点播,主要应用在iOS系统,为iOS设备(如iPhone、iPad)提供音视频直播和点播方案。HLS点播,基本上就是常见的分段HTTP点播,不同在于,它的分段非常小。要实现HLS点播,重点在于对媒体文件分段,目前有不少开源工具可以使用,这里我就不再讨论,只谈HLS直播技术。 相对于常见的流媒体直播协议,例如 RTMP协议 、RTSP协议、MMS协议等

支撑网络直播的核心技术

久未见 提交于 2019-12-19 01:55:05
HLS协议 HLS(HTTP Live Streaming) 把整个流分成一个个小的基于 HTTP 的文件来下载,每次只下载一些。HLS 协议由三部分组成:HTTP、M3U8、TS。这三部分中,HTTP 是传输协议,M3U8 是索引文件,TS 是音视频的媒体信息。 HLS整体架构图: 图中左下部分表示视频源的类型,分为Audio和Video。server中包括Media encoder和Stream segmenter。 Media encoder(媒体编码)媒体编码器获取到音视频设备的实时信号,将其编码后压缩用于传输。而编码格式必须配置为客户端所支持的格式,比如 H.264 视频和HE-AAC 音频。编码器通过本地网络将 MPEG-2 传输流分发出去,送到流切片器(Stream segmenter)那里。 Stream segmenter(流切片器)会通过本地网络从上面的媒体编码器中读取数据,然后将着这些数据一组相等时间间隔的小媒体文件。虽然每一个片段都是一个单独的文件,但是他们的来源是一个连续的流,切完照样可以无缝重构回去。切片器在切片同时会创建一个索引文件(Index file),索引文件会包含这些切片文件的引用。 Distribution分布式部分,分布式系统是一个网络服务或者一个网络缓存系统,用于通过 HTTP 向客户端发送媒体文件和索引文件。不用自定义模块发送内容

How to play html5 video play m3U8 on mobile and desktop?

痴心易碎 提交于 2019-12-18 19:34:46
问题 I have HLS m3u8 that plays well on IOS and Android with html5 <video> But does not play on desktop PC or desktop MAC (Chrome, Firefox) How to play m3u8 on desktop PCs ? Is there a streaming format of video that would play both on desktop and mobile ? 回答1: HLS will only work on desktop in Mac OS Safari 6+. Have a look here for reference. For HTML5 video on desktop you can think about using MPEG DASH. It has a JS lib that works both live and on demand with the following browsers: As of 8/30/13,

关于怎么提取m3u8地址

不问归期 提交于 2019-12-17 03:20:48
摘自: https://blog.51cto.com/4373601/1920758 很长时间没有写博客了,这一段时间比较忙,接下来的日子要坚持写博客了,后期抽空会把这一年多的测试心得补上来,写博客其实就像git精神一样,分享、讨论、总结、提升自己,只有去分享才会得到更多,所谓复出越多,得到越多。 这个问题其实不难,最近也在研究小程序 工具:Chrome浏览器 打开浏览器,点开你要获取地址的视频 重要的来了,右键>>审查元素或者按F12也可以 根据开发或测试的实际环境选择相应的设备 ,选择iphone6 plus 选择好了以后,刷新页面,点击漏斗,选择media,一定刷新之后再点击,没出来的话切换几下选项卡,就能出来了 点击播放视频,在下边就可以看到地址了 M3U8还有一个同胞叫HLS HLS(HTTP Live Streaming)是苹果公司针对iPhone、iPod、iTouch和iPad等移动设备而开发的基于HTTP协议的流媒体解决方案。在 HLS 技术中 Web 服务器向客户端提供接近实时的音视频流。但在使用的过程中是使用的标准的 HTTP 协议,所以这时,只要使用 HLS 的技术,就能在普通的 HTTP 的应用上直接提供点播和直播。在App Store中的视频相关的应用,基本都是应用的此种技术。该技术基本原理是将视频文件或视频流切分成小片(ts)并建立索引文件(m3u8)

Python爬取视频指南

风格不统一 提交于 2019-12-16 22:08:52
摘自:https://www.jianshu.com/p/9ca86becd86d 前言 前两天尔羽说让我爬一下菜鸟窝的教程视频,这次就跟大家来说说Python爬取视频的经验 正文 https://www.cniao5.com/ 菜鸟窝上有很多教程视频,但是这些视频好像没有直接的下载地址,而且有些教程视频还是有期限的,那么问题就产生了 我看的速度比较慢而且视频又很多,没等我看完视频就到期了怎么办?这时候写一个爬虫将这些教程视频下载下来就很好地解决了这个问题 当然,对于某些视频网站的VIP电影、视频之类的,一般情况下是无法在没有开通VIP的情况下用爬虫下载的,因为涉及到利益问题,同时数据传输也是加密的;想要看的话还是得开通会员再进行爬取 回到这次的目标上来,我们要爬取的是 https://www.cniao5.com/course/lessons/10153 上面的24章,共计202个教程视频 一 二 接下来我们来看看我们应该如何获取这些视频 首先我们看一下这个界面的源代码中没有关于课程视频的信息,那么我们点进去一个视频看看 三 通过开发者工具我们可以看到左侧都是这次加载视频是动态加载的信息,我们一个个来看 首先是url,我们可以看到这个链接是 Post 方式请求的(然鹅实际上再通过postman测试可以知道,并不用带上什么参数请求,吓唬人呢...) 四 五 这就是url返回的数据

java下载m3u8视频,解密并合并ts(二)

随声附和 提交于 2019-12-15 19:43:25
上一篇 java下载m3u8视频,解密并合并ts(一) 下一篇 java下载m3u8视频,解密并合并ts(三) m3u8链接的获取 样例一:两个m3u8无key 首先在浏览器播放视频的时候打开开发者工具(大部分快捷键是F12),找到Network标签,刷新页面,然后找到含有m3u8的链接。 如上图,会发现检索到了两个m3u8链接。如果你一个都没找到,说明这个视频不是m3u8的视频。 对于上面两个m3u8链接,点开发现,第一个是有#EXT-X-STREAM-IN标签,这个说明其他信息在第二个m3u8链接里面。 看第二个,这个里面没有#EXT-X-KEY标签,说明下面的ts片段无需解密,下载完后即可播放。 一般情况下,我们需要的是第一个链接。也就是Request URL:后面的链接。这个就是文章后面要用的m3u8链接。 样例二:一个m3u8链接无key 如果是这种样子的,那么直接取Headers标签里面Request URL:后的链接即可。 样例三:两个个m3u8链接有key 第一个m3u8链接表明其他ts片段等信息需要从第二个m3u8获取,第二个m3u8的链接也就是第一个m3u8链接去掉后面的文件名部分再加上下图框起来的部分。 第二个m3u8里面含有#EXT-X-KEY,说明我们ts片段需要加密。 #EXT-X-KEY后面的METHOD为加密算法,后面我们可以以这个算法解密

How to store HLS/m3u8 Formatted video offline (on browser) to play when internet is not available?

此生再无相见时 提交于 2019-12-14 03:08:30
问题 Goal To build a feature to make videos available offline. A feature like youtube offline videos but on browser. Problem Is it possible to make HLS formatted (also known as .m3u8 ) videos available to user offline on there browsers? Is it possible to store HLS video in users browser (in Indexed db etc) and then play directly from there (At least for a short term period)? I have crawled web and searched for a solution but found nothing and now I am putting my problem before the amazing SOF

FFmpeg 的基本使用

谁说我不能喝 提交于 2019-12-13 15:39:32
1、下载:FFmpeg https://www.ffmpeg.org/download.html#build-windows 将 G:\JavaSoft\ffmpeg\bin 目录配置在path环境变量中。 检测是否安装成功:ffmpeg -version 简单的测试: 将一个.avi文件转成mp4、mp3、gif等。 比如我们将lucene.avi文件转成mp4,运行如下命令: ffmpeg -i lucene.avi lucene.mp4 转成mp3:ffmpeg -i lucene.avi lucene.mp3 转成gif:ffmpeg -i lucene.avi lucene.gif 官方文档(英文):http://ffmpeg.org/ffmpeg.html 2、生成m3u8/ts文件 使用ffmpeg生成 m3u8的步骤如下: 第一步:先将avi视频转成mp4 ffmpeg.exe ‐i lucene.avi ‐c:v libx264 ‐s 1280x720 ‐pix_fmt yuv420p ‐b:a 63k ‐b:v 753k ‐r 18 .\lucene.mp4 各参数的大概意思: -c:v 视频编码为x264 ,x264编码是H264的一种开源编码格式。 -s 设置分辨率 -pix_fmt yuv420p:设置像素采样方式,主流的采样方式有三种,YUV4:4:4

北邮ivi测试频道 26个高清频道 IPv4 有PC端和移动端地址

馋奶兔 提交于 2019-12-13 02:41:43
北邮ivi测试 http://ivi.bupt.edu.cn/ 有PC端和移动端,手机可以直接访问网址 附提取地址方便导入机顶盒 CCTV-1高清 http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8 CCTV-3高清 http://ivi.bupt.edu.cn/hls/cctv3hd.m3u8 CCTV-5高清 http://ivi.bupt.edu.cn/hls/cctv5hd.m3u8 CCTV-5+高清 http://ivi.bupt.edu.cn/hls/cctv5phd.m3u8 CCTV-6高清 http://ivi.bupt.edu.cn/hls/cctv6hd.m3u8 CCTV-8高清 http://ivi.bupt.edu.cn/hls/cctv8hd.m3u8 CHC高清电影 http://ivi.bupt.edu.cn/hls/chchd.m3u8 北京卫视高清 http://ivi.bupt.edu.cn/hls/btv1hd.m3u8 北京文艺高清 http://ivi.bupt.edu.cn/hls/btv2hd.m3u8 北京体育高清 http://ivi.bupt.edu.cn/hls/btv6hd.m3u8 北京纪实高清 http://ivi.bupt.edu.cn/hls/btv11hd.m3u8 湖南卫视高清

PhoneGap Play m3u8 Video

雨燕双飞 提交于 2019-12-13 02:08:08
问题 I have an index.html with an iframe and inside that iframe I have the following code: <a id="watch-live-btn" href="http://the.location.to/playlist.m3u8" target="_parent"></a> The video plays fine on iOS and when I hit "Done" I'm sent back to the app with no problems. When I try this on Android it just sits there for some time doing nothing. The app is still active in the mean time. iOS: 6.1 Android 4.0.4 回答1: You can make use of a phonegap plugin. There is one already created here for playing