首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

基于 HTTP 的低延迟流媒体播放器的性能

在播放器端,网页播放器运行在 Chrome 浏览器上,iOS 原生播放器(HLS)运行在 iOS 上的 AVPlayer 框架上。...所有其他指标(包括流比特率、视频分辨率、下载的媒体数据、比特率切换次数)均来自服务器日志。在我们的测试系统中收集的完整指标列表总结在表 2 中。...当第一个主要带宽波动发生时(即图 3 中的时间间隔 [250 - 340]),AVPlayer 遇到缓冲区变空的情况,并且在重新缓冲和恢复播放后无法保持低延迟。...在流比特率方面(参见图 4),我们注意到 Shaka 播放器在 10 分钟的会话中达到了最高的平均值 (1228 kbps),其次是 AVPlayer (1136 kbps) 和 HLS.js (849...基于图 9,我们还注意到 HLS.js 和 Shaka 播放器比 AVPlayer 实现了更低的延迟。AVPlayer 的延迟线在超过一半的会话中较低且平坦,但在接近结束时上升。

8.8K40

如何像抖音直播一样,从 App 直播间到桌面画中画实现画面无缝切换?丨有问有答

今天我们要讨论的问题是一位社群的朋友遇到的一个工作中的技术优化问题,原文如下: 请问 iOS 画中画小窗播放如何做到像抖音一样无缝切换?...,所以只能播放 hls 的流。...在 App 的直播间依然使用腾讯云的播放器播放 flv 的流,同时在 flv 的首帧渲染成功后,再拉起一个 AVPlayer 来播放一路占位的 hls 流(可以静音、全黑、小尺寸画面)。...这个 AVPlayer 在 App 内不显示出来,但是把它作为画中画 AVPictureInPictureController 的播放器。...如果你确实感兴趣或者有更好的方案,可以在通过本文后的二维码加入我们关键帧的音视频开发圈一起了解和探讨。 - 完 -

1.8K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    直播协议的选择:RTMP vs. HLS

    上面是这两种协议的简介,那它们在实际应用中会有什么差异呢? HLS 先说说 HLS。...相对于常见的流媒体直播协议,例如 RTMP 协议、RTSP 协议等,HLS 最大的不同在于直播客户端获取到的并不是一个完整的数据流,而是连续的、短时长的媒体文件,客户端不断的下载并播放这些小文件。...HLS 是苹果推出的流媒体协议,在 iOS 平台上可以获得天然的支持,采用系统提供的 AVPlayer 就能直接播放,不用自己开发播放器。...正在上传…重新上传取消 RTMP 相对于 HLS 来说,采用 RTMP 协议时,从采集推流端到流媒体服务器再到播放端是一条数据流,因此在服务器不会有落地文件。...通常会将数据流封装成 FLV 通过 HTTP 提供出去。但是这样也有一些问题需要解决: iOS 平台没有提供原生支持 RTMP 或 HTTP-FLV 的播放器,这就需要开发支持相关协议的播放器。

    4K41

    Apple 低延迟HLS分析

    和iOS的一部分,在Apple的产品生态链中占有重要地位。...HLS类似于MPEG-DASH,通过将理论上可以无限时长的直播流分解为一系列基于HTTP的小文件下载来完成流媒体的传输,每次下载获得整个流的一小部分。...不过从我的测试来看,iOS13 beta版里带的AVPlayer实现并没有完整实现低延迟HLS,确实只是个“参考”。...这能加快媒体播放列表的重新加载和播放切换速度。 不同码率的直播流必须同步更新,误差在1个part时长内。 阻塞式请求实现时要注意超过3倍片段时长后还没有片段/part数据生成的话,要报503错。...在播放列表可用之前就广播片段的好处是它消除了由于客户端播放列表轮询频率和CDN高速缓存中的播放列表TTL而导致的播放列表延迟问题。

    4.3K63

    HLS 协议:直播回放首选这个协议?丨音视频基础

    格式),客户端不断的下载并播放这些小文件。...HLS 作为苹果公司提出的协议,在 iOS 客户端上得到了很好的支持,比如 AVPlayer 和 Safari 都支持对 HLS 流媒体的播放;再加上 M3U8/TS 封装格式可以在直播中持续处理和存储流媒体数据...HLS 协议的实现是和 M3U8 文件的定义密切相关的,这部分的知识在《M3U8 格式》中已经做了详细介绍。在这里只简单介绍一下 HLS 协议的整体框架。...在典型的 HLS 协议实现中,一般是采集音频和视频输入,将它们编码为 H.264 和 AAC 格式,最终经过服务端组件处理成 MPEG-2 的传输流。...在这个过程中,MPEG-2 的数据流会被处理为一系列连续的小切片文件(.ts)存储在 Web 服务器上,同时服务器会生成一个索引文件对这些切片文件进行索引,并将这个索引文件发布出去。

    1.5K20

    一文看完 WWDC 2022 音视频相关的更新要点丨音视频工程示例

    3)视觉智能 新的播放器可以支持像处理其他文本一样获取视频帧中的文字: 获取视频画面中的文字 4)插片广告 新的 iOS 播放器开始支持插片广告了,其中 HLS 流协议对插片广告的支持在前面 HLS...MPNowPlayingSession 可以用来表示不同的播放会话,并在应用中包含多个播放会话时,提供对 NowPlaying 状态的控制,支持手动发布元数据,并在 iOS 16 后支持自动发布元数据。...在 iOS 15 中,运行会话时,平面会根据新进入视野的画面逐渐更新平面,并且在每次更新几何平面时,平面锚点也会旋转更新以反映平面的新方向。...在 iOS 16 中,在平面锚点和它的几何平面之间做了更清晰的分离,当新的画面逐渐进入视野,平面逐渐更新时,平面锚点却保持自身不变。...iOS 15(左)与 iOS 16(右)的平面锚点行为对比 所有关于平面几何的信息现在都包含在一个名为 ARPlaneExtent 的类中,旋转更新不再通过旋转平面锚本身来表示。

    2.6K10

    HarmonyOS 开发实践——基于AVPlayer的视频播放

    同时设置load事件,应该改成并在onload事件回调中完成设置播放资源的操作Step4: 注册avplayer回调函数Step5: 调用相关接口实现播放play(),暂停pause(),跳转seek(...当使用setVolume()调节播放音量后,如果setVolume操作成功,将上报该事件。bitrateDone响应API调用,用于HLS协议流,监听setBitrate()请求完成情况。...availableBitrates用于HLS协议流,监听HLS资源的可选bitrates,用于setBitrate()。bufferingUpdate用于网络播放,监听网络播放缓冲信息。...,在回调中设置好需要播放的资源。...prepared:已准备状态,在initialized状态调用prepare()方法,AVPlayer会进入prepared状态,此时播放引擎的资源已准备就绪。

    26820

    AVKit框架详细解析(四) —— 基于AVKit 和 AVFoundation框架的视频流App的构建

    下载好材料打开 TravelVlogs.xcodeproj 并转到 VideoFeedView.swift。 注意:视频可能无法在模拟器中播放。 在真实设备上运行该应用程序将缓解该问题。...Adding Local Playback 您可以播放两种类型的视频。 您将看到的第一个是当前位于手机存储中的类型。 稍后,您将学习如何从服务器播放视频流。...2) 在这里,您获取 url 并创建一个 AVPlayer 对象。 AVPlayer 是在 iOS 上播放视频的核心。 播放器对象可以启动和停止您的视频,更改其播放速率,甚至可以调高和调低音量。...2) 您使用初始值设定项创建 LoopingPlayerUIView 的新实例并返回新实例。 3) SwiftUI 在需要更新底层 UIView 时会调用此方法。 现在,将其留空。...视图修饰符,并在 On Dismiss Closure 注释后添加以下内容: embeddedVideoRate = 1.0 当系统不再需要播放器对象时,您还可以停止播放视频并从播放器对象中删除所有项目

    7K10

    视频直播| 搭建一个本地nginx服务器以及实现推流和拉流

    SSL的安全功能; ijkplayer: 因为 iOS 自带的 AVplayer 不支持 rtmp 格式的视频流播放,所以我们需要使用第三方库。...GitHub 中开源又常见的 rtmp 流播放器中,较为成熟的是 bilibili 开源的 ijkplayer 它基于 ffmpeg,支持 Android 和 iOS,视频流和本地视频的播放都很强大...上图表示ffmepg安装完成 五、本地推流 (1)、搭建本地视频直播,比如电脑上面有很多电影,我们可以通过推流的形式实现实时直播: A:在电脑上播放推流内容 安装一个支持rtmp协议的视频播放器,Mac...下可以用VLC 下载VLC 本地下载一个视频文件路径为 /Users/iOS002/Desktop/loginmovie.mp4 执行以下命令 ffmpeg -re -i /Users/iOS002...注意通过网络查看电脑的局域网 IP替换掉 localhost 即可。 A:通过VLC观看手机的推流 打开手机直播后,然后在电脑上打开VLC(同上),就能实现手机推流,在电脑上拉流播放了!!

    14.6K42

    如何快速搭建完整的视频直播系统?| 码云周刊第 69 期

    项目简介:ckplayer (超酷网页视频播放器),支持 http 协议下的 flv,f4v,mp4,支持 rtmp 视频流和 rtmp 视频回放,支持 m3u8 格式,是你做视频直播,视频点播的理想播放器...项目简介:HTML5 播放器、M3U8 直播和点播、RTMP 直播、低延迟、推流/播流地址鉴权、优化浏览器兼容性,HLS+扩展。...项目简介:SGPlayer 是一款基于 AVPlayer、FFmpeg 的媒体资源播放器框架。...支持360°全景视频,VR视频,RTMP、RTSP 等直播流;同时支持 iOS、macOS、tvOS 三个平台。主要功能: 支持播放360°全景视频。 支持手势、传感器操控360°全景视频。...支持 iOS、macOS、tvOS。 支持 RTMP、RTSP 等直播流。 支持选择音频轨道。 支持控制音频输出音量。 支持无损视频截图。 支持近所有常用媒体格式。 极简的事件通知机制。

    2.4K20

    多媒体-图片、音频、视频的基本实现

    前言 iOS开发中关于多媒体是经常使用的,下面就简单总结下基本的实现方式。当然首先需要获得系统的私有设置访问权限。...,通过它我们的程序可以同时录制,播放一个或者多个音频流,自动适应耳机,蓝牙耳机等硬件,响应各种电话中断,静音,震动等,甚至提供3D效果的音乐播放。...setCategory:error:实例方法,来从IOS应用可用的不同类别中作出选择。...完全下载后才播放就不能算在线播放了 所有苹果公司提供了功能强大的AVPlayer,AVPlayer存在于AVFoundation中,其实它是一个视频播放器,但是用它来播放音乐是没问题的,当然播放音乐不需要呈现界面...(videoPlayEnd) name:AVPlayerItemDidPlayToEndTimeNotification object:nil]; 持续更新中

    2.1K11

    ALHLS:Apple低延迟HLS技术

    Apple已经为HLS播放列表格式引入了一种新排列方式,旨在允许这些部件被公布在实时HLS播放列表的顶部并允许客户端下载它们。...播放列表增量更新 HLS的一项令人头疼的问题是播放列表的臃肿与代价。...对于包括大型实时倒带窗口的长时间运动流,再现播放列表中的段列表可能需要非常漫长且复杂的工作;即使使用gzip,每次再现HLS播放列表也会轻易得到数十万字节或更多的数据。...为解决此项通病,Apple在本次HLS更新中启用了一种可生成“delta”播放列表的方法,该方式允许段列表仅包含完整播放列表中的某些段;玩家一次请求完整的播放列表,此时播放列表的内部状态将维持不变,较小的增量播放列表会被添加至播放列表中...在现代浏览器或设备中,没有允许开发者检查HTTP/2推送响应的下载性能的API。

    1.4K10

    ALHLS:Apple低延迟HLS技术

    Apple已经为HLS播放列表格式引入了一种新排列方式,旨在允许这些部件被公布在实时HLS播放列表的顶部并允许客户端下载它们。...播放列表增量更新 HLS的一项令人头疼的问题是播放列表的臃肿与代价。...对于包括大型实时倒带窗口的长时间运动流,再现播放列表中的段列表可能需要非常漫长且复杂的工作;即使使用gzip,每次再现HLS播放列表也会轻易得到数十万字节或更多的数据。...为解决此项通病,Apple在本次HLS更新中启用了一种可生成“delta”播放列表的方法,该方式允许段列表仅包含完整播放列表中的某些段;玩家一次请求完整的播放列表,此时播放列表的内部状态将维持不变,较小的增量播放列表会被添加至播放列表中...在现代浏览器或设备中,没有允许开发者检查HTTP/2推送响应的下载性能的API。

    1.9K30

    互联网监控直播-EasyNVR分发出RTMP、HLS、FLV视频流说明介绍

    HLS 作为苹果提出的直播协议,在 iOS 端占据了不可撼动的地位,Android 端也同时提供相应的支持。...现在 PC 市场巨大,PC 主要是 Windows,Windows 的浏览器基本上都支持 Flash。另外RTMP适合长时间播放,曾经有过测试,联系 100 万秒,即 10 天多连续播放没有出现问题。...一方面是它是基于 TCP 传输,非公共端口,可能会被防火墙阻拦;另一方面,也是比较坑的一方面是 RTMP 为 Adobe 私有协议,很多设备无法播放,特别是在 iOS 端,需要使用第三方解码器才能播放。...它的工作原理简单来说就是把一段视频流,分成一个个小的基于HTTP的文件来下载。当媒体流正在播放时,客户端可以根据当前网络环境,方便地在不同的码率流中做切换,以实现更好的观影体验。...HLS的出现是为了解决苹果原生环境中的流媒体播放,这个协议可以方便地让Mac和iPhone播放视频流,不依赖Adobe,更不用去管什么标准委员会。依赖自己,永远是最大力量的保障。

    1.3K10

    安防网络摄像头互联网直播视频流媒体服务器EasyNVR输出直播流 RTMP、HTTP-FLV、 HLS 的对比分析

    协议中的基本数据单元成为消息(Message),传输的过程中消息会被拆分为更小的消息块(Chunk)单元。最后将分割后的消息块通过 TCP 协议传输,接收端再反解接收的消息块恢复成流媒体数据。...另外RTMP适合长时间播放,曾经有过测试,连续 100 万秒,即 10 多天连续播放没有出现问题。...另一方面,也是比较坑的一方面是 RTMP 为 Adobe 私有协议,很多设备无法播放,特别是在 iOS 端,需要使用第三方解码器才能播放。...它的工作原理简单来说就是把一段视频流,分成一个个小的基于HTTP的文件来下载。当媒体流正在播放时,客户端可以根据当前网络环境,方便地在不同的码率流中做切换,以实现更好的观影体验。...HLS的出现是为了解决苹果原生环境中的流媒体播放,这个协议可以方便地让Mac和iPhone播放视频流,不依赖Adobe,更不用去管什么标准委员会。依赖自己,永远是最大力量的保障。

    84320

    HTML 5 视频直播一站式扫盲

    简单讲就是把整个流分成一个个小的,基于 HTTP 的文件来下载,每次只下载一些,前面提到了用于 H5 播放直播视频时引入的一个 .m3u8 的文件,这个文件就是基于 HLS 协议,存放视频流元数据的文件...HLS 的请求流程是: 1 http 请求 m3u8 的 url。 2 服务端返回一个 m3u8 的播放列表,这个播放列表是实时更新的,一般一次给出5段数据的 url。...HLS 直播延时 我们知道 hls 协议是将直播流分成一段一段的小段视频去下载播放的,所以假设列表里面的包含5个 ts 文件,每个 TS 文件包含5秒的视频内容,那么整体的延迟就是25秒。...和 HLS 一样都可以应用于视频直播,区别是 RTMP 基于 flash 无法在 ios 的浏览器里播放,但是实时性比 HLS 要好。所以一般使用这种协议来上传视频流,也就是视频流推送到服务器。...推流 简所谓推流,就是将我们已经编码好的音视频数据发往视频流服务器中,一般常用的是使用 rtmp 推流,可以使用第三方库 librtmp-iOS 进行推流,librtmp 封装了一些核心的 api 供使用者调用

    4.8K81

    69 篇文章带你系统性的学习音视频开发(收藏起来假期看)

    在实际应用场景中,由于 HLS/M3U8/TS 这套方案在控制直播延时上不太理想,所以一般实时直播场景不会选择使用 M3U8 媒体格式。...---- 《HLS 协议》概要 17)《HLS 协议:直播回放常用协议》 HLS 作为苹果公司提出的协议,在 iOS 客户端上得到了很好的支持,比如 AVPlayer 和 Safari 都支持对 HLS...流媒体的播放;再加上 M3U8/TS 封装格式可以在直播中持续处理和存储流媒体数据,所以直播回放通常都会选择 HLS 协议来实现。...HLS 协议的实现是和 M3U8 文件的定义密切相关的,这部分的知识在《M3U8 格式》中已经做了详细介绍。本文则简单介绍一下 HLS 协议的整体框架。...API 合集》 ---- 《WWDC 2022 音视频相关的更新》概要 58)《一文看完 WWDC 2022 音视频相关的更新要点》 59)《WWDC 2022 音视频相关 Session 概览(HLS

    3.2K45

    An AVPlayerItem cannot be associated with more than one instance of AVPlayer 你困扰了我这么久

    我马上有去看下我的错误日志: ? 原来如此  真的是这样的哦, 出问题的机器 全部都是ios  8.4 系统 和 ios 8.4.1 系统的 ,嗯 至少有这点发现 。...于是我下载 ios 8.4 系统的模拟机 进行测试,测试的过程中 其实我大概能够猜想到  那些情况可能会出现问题 ,  经过我的不懈努力 差不多  用了 3个小时的时间 终于 重现了崩溃的过程。...如果 你们的程序中也有这样的问题而且 你还没有测试出如果出现这个崩溃  你不妨按照我的方法测试下: 播放视频 — 切到后台 — 进入前台 — 换台 - 再切换后台 就会出现 (概率出现 但概率很高)  ...总结这个问题是 MPMoviePlayerController  在iOS 8.4 系统下 播放时候 中出现的问题 2.总结前辈的处理方法 当然,遇到这样的问题我也是会先去看下 前辈们是怎么解决的...这种方法就是在 movieSouceType上面做文章, 也就是给视频播放器的 url 之前 指定 视频资源是 什么类型的    MPMovieSourceTypeUnknown , MPMovieSourceTypeStreaming

    1.3K40
    领券