Http Live Streaming 实现iphone在线播放视频

news/2024/11/29 3:54:26/

转载 出处:http://hi.baidu.com/lphack/blog/item/aa02f27a4de055e80bd187fa.html

本人新手,难免会出错,请各位指点!

 

最近要做一个项目,是通过iphone来播放工厂摄像头录制的视频达到监控设备的目的,要求可以实现点播和直播

对于视频流的操做其实一无所知,但是老同事给我开了一个头,给了我几篇文章,关于苹果http live streaming 流媒体技术的,于是我就从这里入手了。

先讲讲前提基础:

我的系统是:雪豹

需要实现目标是:

            把获得的ts格式的视频,切片成一系列ts文件,在iphone上实现在线播放

好开始了

========================完美分隔符=============================================

HLS简介

          简单来说,Http Live Streaming (HLS)技术就是视频切片技术用于在线播放,也就是使用Http渐进下载视频播放。

因为最早要播放视频,是需要整个文件下载完成后,然后在本地播放。后来出现了流媒体传输技术,才实现了在线播放视频。而HLS就是其中一种。

         之所以称之为视频切片,是因为,HLS技术是需要把获得的视频流(我这里得到的是现成的ts视频文件,如果不是应该需要通过ffmpeg转换吧),然后通过工具切成一系列ts文件(最好每段10秒),最好,同时会生成一个.m3u8的文件,其实m3u8就是一个索引文件,是一个文本,里面记载了一系列ts文件的索引,这些全都放在web服务器。最后通过iphone访问服务器上m3u8的地址,就可以在线播放视频了。

         再讲讲传输的过程,当访问服务器上m3u8文件时,iphone就开始根据这个索引里面的顺序,逐段下载那一系列ts文件,一般下载第一个ts后缓冲结束开始播放,然后后台继续下载,这样循序渐进,达到在线播放的效果。

            下面给出一些参考文章,会有详细的说明的,深入了解HLS的概念还是很有必要的

             苹果官方阐述 (英)

             苹果官方阐述(中),有遗漏

            明了的阐述:HTTP Live Streaming (HLS) 视频直播技术  

            09年老外的文献:iPhone HTTP Streaming with FFMpeg and an Open Source Segmenter

            11年国内的基于那老外的实现:苹果http视频点播技术

    

           以上文章可能有点乱,稍微看看,有个了解就行。

如何实现HLS

          由于我得到的是现成的ts文件,那么就省到了使用ffmpeg转换格式的步骤了。HLS关键的是如何切割视频。可以使用mediaStreamSegmenter和mediaFileSegmenter。前者是分割网络上流媒体的,后者是分割本地文件。苹果还有开源的segmenter,可以注册开发者账号后去论坛下载,可以移植到linux吧。但是对于我还算是比较庆幸,我的系统已经内置了mediaStreamSegmenter(在终端中输入),于是我就直接用这个吧。其他的我并没有研究。

         开始使用mediaStreamSegmenter。对于详细的mediaStreamSegmenter参数使用请参考这里:

                    manpagez: man(manual) pages & more man mediastreamsegmenter(1)

         我在终端中使用的是如下命令:

 mediastreamsegmenter -b http://10.137.103.199/segstream -f /Library/WebServer/Documents/segstream 10.137.103.199:1234

         当然这样不会有任何结果的。

         mediaStreamSegmenter的使用指南中我们发现,一定要指定[address:port], 那这个怎么来呢?现在就扯开话题讲一下这个ip和端口吧。

         由于他要一个address和port,那么我就查了下资料,给我的苹果机配了服务器,然后自己访问自己。方法如下:

系统偏好设置--->共享--->勾选WEb共享, 那结果就如下:


这就就设置了服务器,因为系统已经集成了Apatch服务器,至于上面两个访问地址,对应的是不同的目录,详细可以参考那个问号按钮。


        好了回到正题,这样配置完了后,我发现依然不能使用那个命令来分割文件,关键是连 那个port该写什么都不知道。

        

         几经周折,发现如下文章,帮我解决了,

                 Having trouble setting up mediastreamsegmenter on Mac OS X 10.6

        他说mediaStreamSegmenter需要一个udp的网络环境,才可以抓去流媒体。需要使用VLC这个播放软件创造udp网络环境。我用的是vlc 1.1.11版本的。

         

        然后使用VLC播放我的流文件(可能这样就创造了一种网络流的环境,我是这么认为的),最后终端中就出来了一连串的提示,一切都这么美妙。然后再去看我的目录/Library/WebServer/Documents/segstream ,就出来了一系列ts文件和m3u8文件

      

最后使用iphone模拟器中mediaPlayer(自己下的)的来访问我这个服务器目录下的m3u8就ok了,如下:

                     


这样就实现了iphone的在线视频播放了


当然这样的操作只是用手工的分割视频,肯定不符合要求的,但是至少为一无所知的我打开了一条路,让我可以进一步的去探索,这文章只能算是有提示作用,写在这里希望能给同样被HLS困扰的同志们一点点帮助。

顺便提示一下:听过VLC不只是一个开源的播放软件,还可以作为服务器软件,可能它就可以直接实现格式转换和分割任务,所以下面就要好好研究一下VLC了。

这里贡献一篇文章:http://wiki.videolan.org/Documentation:Streaming_HowTo/Streaming_for_the_iPhone




http://www.ppmy.cn/news/358056.html

相关文章

【Python】Python进阶系列教程--requests 模块(十八)

文章目录 前言requests 方法 前言 往期回顾: Python进阶系列教程-- Python3 正则表达式(一)Python进阶系列教程-- Python3 CGI编程(二)Python进阶系列教程-- Python3 MySQL - mysql-connector 驱动(三&am…

机械表矢量素材分享(三眼表盘意向:过去、现在、未来)

【机械表矢量素材分享】 https://www.freepik.com/free-vec … -arrow_13031502.htm 图1是一些机械钟表的矢量素材,第1排第2列就是【三眼表盘】的矢量图案。 图2是《Charlotte》OP中的机械手表场景,表盘为【三眼表盘】。 图3是《假面骑士时王》中逢魔时…

东芝停电事件可能导致Q3闪存市场价格波动

虽然这次停电事故只有短短的13分钟,但是13分钟足以改变闪存市场的行情了,从东芝方面给出的预期来看工厂停工时间高达1个月,对东芝产能影响很大。 至于合作方西数,他们给出的损失是6EB容量的闪存没了,假如以比较主流的5…

名表依波路borel_依波路(Ernest Borel)手表_价格及图片_什么档次-金投奢侈品网-金投网...

官方网站:www.ernestborel.ch Ernest Borel(依波路)名表品牌创立于1856年,“钟表王国”瑞士纽察图,年轻的朱尔斯-波莱尔凭着缔造完善经典的信念,开始了他漫长的钟表制造生涯。1859年,他携妻弟保罗高华士创立了Borel an…

吉时利2000万用表说明书

Keithley 2000型万用表是一款高精度、高性能的电子测量仪器,广泛应用于电子、通信、航空、航天、计算机等领域的测试和测量工作中。下面是Keithley 2000型万用表的一些说明书: 外观和设计:Keithley 2000型万用表外观简洁美观,采用…

怎么判断机械表上满弦_机械手表上弦是什么意思,怎么看手表有没有上满弦

原标题:机械手表上弦是什么意思,怎么看手表有没有上满弦 机械表是依靠发条上弦来提供动力,通过齿轮转动来计时。即使是 自动机械表 ,也要靠运动来提供动力。今天聚奢网小编和大家来说说关于机械表上弦的一些问题。 机械手表上弦是…

东芝复印机2303出现f070_东芝复印机维修代码大全

东芝复印机维修代码大全 wV }l }y 9 同时按 0 和 1 键打开电源 面板指示灯全部点亮,按清除 / 停止键解除 :Wot(DtBtL 同时按 0 和 2 键打开电源 机器进入老化方式,显示 AG ,同时按 09 键解除 N c(, x-2 同时按 0 3 或 04 键打开电源 机器进入…

【雅特力】单片机AT32F421系列入门资料

1. 命名规则 AT32 全系列MCU选型手册.PDF AT32F421F8P7 AT32F421C8T7 (雅特力厂商送样的两个芯片版本) 2. 数据手册 【 数据手册】AT32F421系列引脚定义、电气特性与封装特性.PDF 3. 技术手册 【技术手册】AT32F421系列各外设(Peripheral)完整说明与各寄存器(Register)定…