ios(苹果)设备直播流媒体 服务搭建
OS设备上要用原生的浏览器或者播放器来跑直播流媒体,确实是有点费周折,不过找对了软件和方法就相对容易许多。收集了一下关于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就可以了。
ios(苹果)设备直播流媒体 服务搭建相关推荐
- NDK 直播流媒体服务器搭建
该文章首发于微信公众号"字节流动". 本博客 NDK 开发系列文章: NDK 编译的三种方式 NDK 开发中引入第三方静态库和动态库 NDK 开发中 Native 与 Java 交 ...
- Axure经典实例高保真交互下载(微信元件高保真交互库+微信原型交互+安卓设备模板含登录注册引导欢迎流程+ios苹果设备模板)
作品介绍:原型内容包括:微信小程序原件库.视觉规范.基础组件.操作反馈.导航搜索.ios机型设备模板.常用元素.安卓手机设备模板包含注册登录.欢迎引导页等 Axure兼容版本:8.0 和9.0 Axu ...
- H5视频之直播流服务搭建(一)
转自https://blog.csdn.net/qq_40816360/article/details/84037877 继上次制作了RTMP直播源之后,因为互联网更常用的是HLS源和HTTP-FLV ...
- 如何查询苹果设备的激活和维保信息
1.苹果官方网站查询: [url]https://selfsolve.apple.com/agreementWarrantyDynamic.do?[/url] 国内有时候打开较困难,多试试或者换个好的 ...
- 苹果手机直播显示服务器,搭建流媒体服务器(iOS直播 )
写在前面 开发一款直播app,肯定需要流媒体服务器,本篇主要讲解直播中流媒体服务器搭建,并且讲解了如何利用FFMPEG编码和推流,并且介绍了FFMPEG常见命令. 效果 一.安装Homebrew 首先 ...
- 免费视频直播点播服务器系统,搭建一套完整的网络视频流媒体直播/点播服务系统需要具备哪些条件?...
原标题:搭建一套完整的网络视频流媒体直播/点播服务系统需要具备哪些条件? 随着Internet的飞速发展,网上现场直播已经从实验阶段走向了实用阶段.各式各样的社会活动都可以借助网上现场直播方式传遍全世 ...
- 搭建rtmp直播流服务之4:videojs和ckPlayer开源播放器二次开发(播放rtmp、hls直播流及普通视频)...
前面几章讲解了使用 nginx-rtmp搭建直播流媒体服务器; ffmpeg推流到nginx-rtmp服务器; java通过命令行调用ffmpeg实现推流服务; 从数据源获取,到使用ffmpeg推流, ...
- 直播源码搭建教程之直播流媒体
直播源码搭建教程之直播流媒体 前言 这段时间在搭建一个IPCamera项目服务器.视频点对点通话,客户端会查看设备端的音视频实时流.为了省流量,是通过P2P进行穿透.但是由于NAT设备的原因和IPV4 ...
- H5直播之从推流服务搭建到视频直播
最近视频直播比较火,发现目前 WEB 上主流的视频直播方案有 HLS 和 RTMP,移动 WEB 端目前以 HLS 为主,PC端则以 RTMP 为主实时性较好,接下来将围绕这两种视频流协议来展开H5直 ...
最新文章
- pkg mysql 在macOS 上的管理
- VEEAM replication配置步骤
- CentOS 6.0图解网络安装全过程
- Jetson Nano and VIM3硬件参数对比及目标检测性能对比
- Linux文本检索命令grep笔记
- 最易懂的layui分页
- 49. Element removeAttribute() 方法
- 职场:如何成为PPT高手【01思维篇】
- C++复习(二)——绘制余弦函数图像
- 厦大计算机学院2018夏令营6,2018年厦门大学建筑与土木工程学院保研夏令营通知...
- 鸿蒙形容欣欣向荣发展,比喻事业蓬勃发展繁荣兴旺的成语蒸蒸日上
- 疯子、精神病患者、诗人、哲学家、伟大的思想家—— 尼采的孤独:《最孤独者》...
- Android 11 wifi adb 连接错误 “Unable to start pairing client.“
- java中函数编程的妙用
- 商业化广告--体系学习-- 7 -- 行业蓝图篇 --广告产品发展路径
- 随记--做一个“懒惰”的程序员
- 无聊与兴奋 《幸福之路》读书笔记
- 如何在网上找到并下载你想要的软件
- 34岁的我,重拾编程
- 王者荣耀个人发卡源码+教程
热门文章
- Xposed去除抖音Toast教程
- hive存储处理器(StorageHandlers)以及存储格式以及hive与hbase整合
- Linux 下的 3D 设计软件-FreeCAD
- 用Go构建Teamwork项目的9条教训
- 搭建L2TP-***
- 《大西洋月刊》2014-2020年电子版合集| The Atlantic
- 【赶紧收藏】福利:Python全国计算机二级等级考试题库免费送!!!!
- php 防注册机,discuz论坛自动注册机 伪造注册会员数
- spring(春天)
- YOLOv3 代码详解(2) —— 数据处理 dataset.py解析:输入图片增强、制作模型的每层输出的标签