原文地址:http://www.neatstudio.com/show-1865-1.shtml

由于公司的规划,在未来的一段时间内可能会给ipad用户提供流媒体的播放服务,因此,在服务器上架设流媒体服务器就已经被我提上了日程。找了不少资料,发现这一篇还算是相对不错的。
原文地址是:http://www.aojie.biz/902
原文内容:

iOS设备上要用原生的浏览器或者播放器来跑直播流媒体,确实是有点费周折,不过找对了软件和方法就相对容易许多。收集了一下关于iOS设备上搭建直播流媒体服务器的一些解决方案,如下:

1、凤雨小城,HLS 简介,http://www.vexx.cn/blog/read.php?240

2、dancong , wowza服务器无法将RTMP的流播放到iOS上(已解决),http://www.cocoachina.com/bbs/read.php?tid-47849.html

HLS简介 – rainstown (小城秋雨)
HLS(HTTP Live Streaming)是苹果公司针对iPhone、iPod、iTouch和iPad等移动设备而开发的基于HTTP协议的流媒体解决方案。
在 HLS 技术中 Web 服务器向客户端提供接近实时的音视频流。但在使用的过程中是使用的标准的 HTTP 协议,所以这时,只要使用 HLS 的技术,就能在普通的 HTTP 的应用上直接提供点播和直播。
在App Store中的视频相关的应用,基本都是应用的此种技术。
该技术基本原理是将视频文件或视频流切分成小片(ts)并建立索引文件(m3u8)。支持的视频流编码为H.264,音频流编码为AAC。
m3u8文件示例:
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXTINF:10,
http://192.168.1.36/vod/tt/tt-1.ts

#EXTINF:10,

http://192.168.1.36/vod/tt/tt-2.ts

#EXTINF:10,

http://192.168.1.36/vod/tt/tt-3.ts

#EXT-X-ENDLIST
可以在iOS或Mac OS上通过quicktime或safari(其实还是调用quicktime)来进行播放。
下面分点播和直播分别进行一下介绍。
点播:
苹果官方提供了Segmenter软件,参数如下:

segmenter <input MPEG-TS file> <segment duration in seconds> <output MPEG-TS file prefix> <output m3u8 index file> <http prefix>

示例:
segmenter youku.m2ts 10 tt/tt index.m3u8 http://192.168.1.36/vod/
注意:输入文件必须为MPEG2TS格式。对我们的mp4文件来说,必须先进行一次容器格式转换才能进行分割。分割命令:
ffmpeg -i youku.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb youku.m2ts
我们下一阶段要做的视频分割项目,针对iOS平台的播放,可以考虑采用此种方式。只是若如此做,存储成本会加倍.。
直播:
客户端软件推送H.264视频流和AAC音频流到服务器软件,服务器软件将接收到的流每缓存一定时间后包装为一个新的ts文件,然后更新m3u8文件.。 m3u8文件中只保留最新的几个片段的索引,以保证观众任何时候连接进来都会看到较新的内容,实现近似直播的效果。这种方式的理论最小延时为一个ts文件 的时长,一般为2-3个ts文件的时长。
苹果没有官方的HLS直播服务器软件和客户端软件。其它第三方公司的产品有:
·  TVersity
·  Helix Universal Server
·  Wowza Media Server
·  VLC Media Player version 1.2
我采用Helix Universal Server和Helix Producer(客户端软件)进行了直播测试。
若要做针对iOS平台的直播,目前来看,只能采用此种方式。但在其它平台(除了iOS和Mac之外)上无法观看直播,也决定了此种直播方式的应用场景暂时具有相当的局限性,只能作为常规直播方式的一种补充。

wowza服务器无法将RTMP的流播放到iOS上(已解决)
我现在需要将本地Macbook的rtmp的视频流直播到iOS上,准备采用wowza作为服务器。

我按照这个教程用FlashMediaLiveEncoder 3.2 采集本机的iSight视频后,按视频H.264, Baseline 3.0, 音频 AAC为格式输出rtmp协议的流。

复制代码
FMS URL里填rtmp://localhost:1935/live
Stream里填mp4:myStream
我在本地按wowza官方的配置方法配完后,Mac OS X 网页上可以用jwplayer直接以:

复制代码
var flashvars = {
file:’myStream’,
streamer:’rtmp://localhost/live/’
};
这种方式播放rtmp流,说明wowza已经接收到rtmp流了。

问题是,用iOS访问“http://localhost:1935/live/myStream.sdp/playlist.m3u8”,结果iOS虽然出现播放界面,但是报错“File not found”,查看wowza控制台报错,说:

复制代码
INFO stream create myStream.sdp -
WARN server comment – HTTPStreamerAdapterCupertinoStreaming.getAppInstance: Stream not found [live/myStream.sdp/playlist.m3u8]: myStream.sdp
WARN server comment – HTTPStreamerAdapterCupertinoStreaming.getAppInstance: Stream not found [live/myStream.sdp/playlist.m3u8]: myStream.sdp
INFO stream destroy myStream.sdp -
说明访问到了wowza,但是wowza无法将rtmp流转成myStream。

我看过了Apple官方的HTTP live stream的文档,说需要segmenter将视频流切分成多个ts的视频文件和m3u8的播放列表,我觉得这些都是wowza负责实现的。

请问如何配置wowza才能将rtmp流转成Apple HTTP live stream。

另外,虽然wowza要求SDP文件,但是我不知道怎么生成SDP文件,而且网上有人说不用SDP文件也可以。是因为这个SDP缺失导致的吗?如何生成SDP?

解决方案:
根本不用生成SDP。
原来是iOS上的访问地址被官方误导了,晕死,官网上的竟然是错的。URL里不需要写“.sdp”,应该是http://localhost:1935/live/myStream/playlist.m3u8就可以了。

---------
最后一句超有意思。。
官方的文档应该是这个:http://developer.apple.com/library/ios/#documentation/networkinginternet/conceptual/streamingmediaguide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008332-CH1-DontLinkElementID_31

iOSnbsp;播放流媒体nbsp;服务端配置备份相关推荐

  1. NFS介绍、NFS服务端配置安装配置、 NFS配置选项、 客户端的配置

    NFS介绍 NFS是Network File System的缩写 ,是在网络层面,NFS(Network File System)网络文件系统会经常用到,用于在网络上共享存储.这样讲,你对NFS可能不 ...

  2. Linux centos7安装nfs及服务端配置

    安装 [root@hygon-vm ~]# rpm -qa nfs-utils [root@hygon-vm ~]# rpm -qa rpcbind [root@hygon-vm ~]# [root@ ...

  3. Spring Cloud Config服务端配置细节(一)

    上篇文章我们看了Spring Cloud中分布式配置中心的一个基本使用,这里边还涉及到许多细节,本文我们就来看看服务端配置中的一些细节. 本文是Spring Cloud系列的第二十三篇文章,了解前二十 ...

  4. 搭建nfs共享存储服务之二nfs服务端配置

    1.1.NFS服务端配置文件路径为: /etc/exports,并且默认为空,需要用户自行配置. /etc/exports文件配置格式为: NFS共享的目录 NFS客户端地址1(参数1,参数2...) ...

  5. Vue服务端配置示例

    Vue服务端配置示例 后端配置示例 #Apache <IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteRule ^in ...

  6. Spring Cloud Config服务端配置细节(二)之加密解密

    在微服务架构中,由于独立的服务个数众多,加上前期测试工作量大,一些原本由运维人员维护的敏感信息会被我们直接写在微服务中,以提高开发效率,但是这种明文存储方式显然是非常危险的,所以我们要对这些信息进行加 ...

  7. oracle11g服务端配置实例,Win7系统Oracle11g服务端和客户端连接数据库配置

    A连接本地数据库 1)服务端配置 创建一个监听程序 a)开始-Oracle-OraDb11g_home1-配置和移植工具-Net Manager. b)选中"监听程序",点击&qu ...

  8. cics 服务端配置_使用PHP在CICS上构建RESTful服务

    cics 服务端配置 存档日期:2019年5月15日 | 首次发布:2009年4月21日 CICS®TransactionServer®(TS)是功能强大的事务管理器,旨在进行快速,大量的处理. Su ...

  9. syslog-ng 和syslog-ng tls 服务端配置

    syslog-ng和syslog-ng tls配置 syslog-ng服务端配置 syslog-ng tls服务端配置 syslog-ng服务端配置 1.配置源 source s_sys{ udp(i ...

最新文章

  1. java 参数类型不确定_详细解析Java虚拟机的栈帧结构
  2. 2012到2020主要的CNN架构总结
  3. 火狐浏览器下点击a标签时出现虚线的解决方案
  4. Ubuntu 14.04编译opencv_videoio.dir/src/cap_gstreamer.cpp报错
  5. 关于java包_关于Java包
  6. matlab练习程序(TV模型图像修复)
  7. android csv显示乱码问题,Android CSV解析器问题
  8. 建立网络安全新生态,网络态势感知至关重要
  9. c语言头文件的使用和写法,C语言头文件的使用与写法
  10. 74ls20设计半加器_用74ls138设计全加器
  11. QCC3040---earbud init module
  12. vim可视模式下复制粘贴文本
  13. Anchor Free系列模型11
  14. Error occurred while trying to proxy request项目突然起不来了
  15. 论文阅读:CVPR2022 Rethinking Minimal Sufficient Representation in Contrastive Learning
  16. 不会玩可别说节日营销过气了
  17. 【批处理DOS-CMD命令-汇总和小结】-显示文本文件内容(type),对文本文件的整行字符串进行排序(sort)
  18. alipay 网站支付
  19. Linux warning
  20. php mt4,2020最新Thinkphp5.0版微盘|微交易源码|MT4+外汇+贵金属交易 PHP整站源码

热门文章

  1. 关于TPC协议知识汇总
  2. Python中使用print,每次输出数据到文件时,记录当前输出时间,数据序号加一
  3. 快速缩小GIF图片文件的两种方式
  4. 【离散数学】第一章 —— 基础:逻辑和证明
  5. 机器学习算法基础之使用python代码
  6. 【限时删除】一个惊艳的神器,可全网爬取各种资源......
  7. 3D建模软件测试初学者,3D建模软件如何选择?3D建模软件精选
  8. proteus——555 PWM 发生器
  9. 《机器学习实战》斧头书——第三章—决策树(1)——使用决策树预测你是否需要带隐形眼镜
  10. 手机控制电脑远程开机,笔记本与老电脑都能实现