我们正在使用专为Apple的iOS设备设计的HTTP直播流服务.它目前适用于iOS设备.
源视频片段存储在H.264使用MPEG2(.ts)容器格式化的服务器中.有没有办法在Flash平台上播放这些视频?
这些是我目前的调查.
据我所知,Adobe提供了自己的流媒体格式F4F,无论如何我们已经决定不去实现它.
有OSMF框架和实现. http://code.google.com/p/apple-http-osmf/
选项#2看起来不错.但我不知道如何使用它.我怎么用这个?什么是OSMF?是否可以在标准Flash Player中运行Web浏览器?它在iOS中运行顺畅吗?(顺利意味着没有挣扎)如果你为此目的使用了这个OSMF的东西,请告诉我!
PS
我主要是找客户端方法.如果在Flash Player中不可能,我们更喜欢渐进式下载.
我试图了解Apple在其iOS设备和Safari上支持的HTTP Live Streaming协议如何保护解锁内容的密钥.
我理解它的方式,.m3u8文件将整个事物保持在一起并引用内容(在MPEG2 TS容器中,AES 128加密)和TS文件的密钥.
就像在这个例子中:
#EXTM3U
#EXT-X-MEDIA-SEQUENCE:7794
#EXT-X-TARGETDURATION:15
#EXT-X-KEY:METHOD=AES-128,URI="https://priv.example.com/key.php?r=52"
#EXTINF:15,
http://media.example.com/fileSequence52-1.ts
#EXTINF:15,
http://media.example.com/fileSequence52-2.ts
#EXTINF:15,
http://media.example.com/fileSequence52-3.ts
#EXT-X-KEY:METHOD=AES-128,URI="https://priv.example.com/key.php?r=53"
#EXTINF:15,
http://media.example.com/fileSequence53-1.ts
Run Code Online (Sandbox Code Playgroud)
假设基于浏览器的回放,其中<video>元素被送入"src"属性中的m3u8文件.在这种情况下,即使密钥是通过https发送的,如何确保用户不只是在浏览器中输入https URL并将密钥保存到他的硬盘中?我理解这种机制的方式是,密钥下载是由<video>标签在使用浏览器的https堆栈播放m3u8源时完成的 - 浏览器中的合法客户端如何区分用户只需将其输入地址栏即可?这一定是非常明显的,但我只是看不到它......
祝一切顺利,
dansch
我希望能够使用我的iOS设备录制素材并将其直接流式传输到服务器.
有很多关于SO的文章谈论这个,但我不确定是否有人很好地回答了这个问题.
我应该使用HTTP实时流,或者这只是将数据发送到一个iPhone?我是否应该使用AVCaptureSession来抓取视频(一次一段?),将每个段发送到服务器?我应该使用AVCaptureVideoDataOutput和ffmpeg进行流式传输吗?
我有点迷失所有这些,所以任何示例代码或文档或链接都会非常感激.
谢谢你的帮助.
邓肯
HLS是Google TV 3.2的一项功能,对在Google TV上观看我的内容进行编码的最佳方式是什么?
AVPlayer主要测量时间CMTime.但是,当使用AVPlayerItemMetadataCollector从HLS流收集日期范围元数据时,结果AVDateRangeMetadataGroups保持NSDates而不是CMTimes.
我的问题是我想向播放器添加一个边界时间观察器,所以我知道当播放头实际进入日期范围时,你只能添加一个边界时间观察者CMTime.AVPlayer并且AVPlayerItem可以寻找一个Date并且可以给我当前的回放头作为Date,但我没有看到任何方式将给定Date转换为CMTime我可以用来设置边界时间观察者.
从理论上讲,如果我知道EXT-X-PROGRAM-DATE-TIME标签说什么我可以CMTime自己计算偏移量,但我没有找到一种方法来检索它.
唯一的其他想法我是同时检索currentTime和currentDate从AVPlayerItem,然后计算相对之间的偏移currentDate和我的目标日期并应用到CMTime.但是这个解决方案的一个问题是currentDate,currentTime并不代表完全相同的时间.三角洲可能会非常小,但它不会为零(除非它rate本身为零).
我有一个HTTP Live流媒体服务器设置,提供分段的mp3音频内容(URL指向playlist.m3u8索引文件).我需要构建一个iOS客户端应用程序来使用此音频流,而无需使用任何标准的Apple控件/ UI.它应该在后台播放流,我想使用我自己的自定义UI来提供控件.
由于内容纯粹是音频,我不想在接管UI时使用MPMoviePlayerController类.我尝试过使用AVAudioPlayer,虽然它不适用于网络流,但不出所料地无法使用错误代码"-43"播放:NSOSStatusErrorDomain.
我还尝试创建一个高度和宽度为1像素的UIWebView,并将其指向服务器上的playlist.m3u8文件.这很有效,但不幸的是我仍然失去了UI,因为UIWebView只是将播放的任务委托给QuickTime播放器,该播放器在我的应用程序中以iOS 3.xx设备全屏启动.
基本上,在我看来,Apple没有提供任何客户端API来消费HTTP Live Streaming 音频流,开发人员被迫放弃用户界面到QuickTime播放器,该播放器播放带有QT徽标的流播放屏幕.ughh ...
我很想知道是否有人有建议来帮我解决上述问题.否则,我的计划B是放弃HTTP Live Streaming并使用着名的Matt Gallagher 经典流媒体实现.但是,我有点担心苹果指南明确暗示,对于预计会通过蜂窝网络(我的应用程序)发送大量音频或视频内容的应用程序需要使用HTTP Live流媒体.这是否意味着我的计划B实施容易被Apple拒绝?有什么方法可以绕过这个指南吗?
我正在寻找一种解决方案,通过 WebSocket 在浏览器上实时播放来自本机服务器的原始 h264 流。我在 JavaScript 中尝试了许多第三方 h264 解码器,每个都有自己的问题。基于 Broadway 的解码器无法解码 main 和 high profile h264。其他解码器太慢而无法解码 1080p 帧。我尝试在 JavaScript 中将原始 h264 转换为碎片化的 mp4,但是在解码双向帧时播放非常难看。我也尝试过 webrtc,但似乎不可能在浏览器和本机服务器之间实现对等连接。有什么建议?
我对 hls 流的 nginx 配置有问题。我使用kaltura nginx vod 模块并尝试添加ngx_http_secure_link_module以保护流。奇怪的是,如果我启用ngx_http_secure_link_module(下面的日志),我会出现 404 错误。我认为这是因为它在末尾找不到带有 index.m3u8 的文件,但是如果我评论安全链接块,它就可以正常工作。
我也尝试在location ~ \.m3u8$ {}块内添加别名,但没有用。我究竟做错了什么?如何保护我的流?
我的直播链接: https://stream.example.com/hls/c14de868-3130-426a-a0cc-7ff6590e9a1f/index.m3u8?md5=0eNJ3SpBd87NGFF6Hw_zMQ&expires=1609448340
我的 NGINX 配置:
server {
listen 9000;
server_name localhost;
# root /srv/static;
location ^~ /hls/ {
# the path to c14de868-3130-426a-a0cc-7ff6590e9a1f file
alias /srv/static/videos/1/;
# file with cors settings
include cors.conf;
vod hls;
# 1. Set secret variable
set $secret "s3cr3t";
# 2. Set secure link
secure_link $arg_md5,$arg_expires;
secure_link_md5 "$secure_link_expires $secret";
# if …Run Code Online (Sandbox Code Playgroud) 所以一般来说,我想制作一款具有iPhone视频聊天功能的应用.但经过多次搜索,我仍然无法找到任何成功的结果.是否有任何公开甚至是这个问题,私有API可用于在iPhone上执行此操作??? 如果您有一个YES答案,请帮助我.
基本上,我想要的是在连接用于聊天的设备上读取视频流.非常感谢,如果可以,请帮助我.
ps - 我已经检查了iDoubs,但它失败并且总是显示一些未知问题,因此,不允许我连接到任何人.
另外:我发现的建议方法是通过HTTP Live Streaming.但是,在那方面,我有多重疑虑.
1.)我需要找到如何将我的视频从iPhone上传到我要播放的HTTP服务器?
2.)您能否发布与设置服务器相关的内容?如何将视频提供给FFMPEG服务器?
主要是,我需要找到上传方法.我现在只是以NSDATA的形式向服务器发送十六进制代码,我被困在那里.主要问题是,它是现场直播.我该如何处理?
如果你可以帮助我使iDoubs正常工作,那将是最好的.
非常感谢您的支持!
HLS(m3u8)文件引用mpeg-ts文件.在iOS'AVPlayer中播放时,如何确定当前正在播放的mpeg-ts URI?