- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我目前正在使用 MPMoviePlayerController
并正在分析视频播放的指标。具体而言,分析自适应比特率。
作为测试的一部分,我以固定比特率 (995kbps
) 加载特定的视频再现,但是当从我的 MPMovieAccessLogEvent 的
,这个值要膨胀得多 - 大约 observedBitrate
属性读取时15mbps
。
返回的比特率比回放的比特率高得多,是否有任何已知原因?我仔细检查了所有值和所有播放,肯定是 observedBitrate
膨胀了。
根据文档,这个值是:
The empirical throughput across all media downloaded for the movieplayer, in bits per second.
更新
我在开发者论坛上发布了这个问题并收到了答案,这仍然只是猜测,但我认为它可能对问题有所帮助,并且可能会引发更好的答案。
https://devforums.apple.com/thread/216659?tstart=0
It would be worth checking your HLS video with mediastreamvalidatorwhich will download and measure your segment bit rates.
最佳答案
对此有一个简单的答案 - MPMovieAccessLogEvent
的 indicatedBitrate
(或 AVPlayer
的 AVPlayerItemAccessLogEvent
)是当前播放列表的比特率,因此是播放流所需的平均比特率。
但是,observedBitrate
不是平均数 - 它是播放器在下载特定视频 block 时达到的瞬时比特率(或下载速度)。
示例:播放 1000 Kb/s 流的播放列表,每 block 10 秒。该设备可以通过 WiFi 实现超过 10MB/s 的下载速度,因此每个 block 的下载时间不到 1 秒。因此,播放器在每个 block 中的下载速度超过 10,000 Kb/s。我希望播放器返回(大约)这些值:
指示比特率
:1000 Kb/s
观察比特率
:10,000 Kb/s
我自己也对这些巨大的值(value)感到困惑,但我认为这可以解释它。
这只是为了说明 - 这些值不是很有意义,因为我们真的不知道下载一个 block 需要多长时间,或者每个 block 有多大。所有 observedBitrate
真正告诉您的是播放器如何设法跟上播放流所需的比特率。如果前者比后者大 10 倍,那么它只使用 10% 的可用时间来下载每个 block 。该比率可用作服务质量指标。比如observedBitrate
小于indicatedBitrate
那么很有可能播放器会因为缓冲而卡顿,但是只要大于,那么一切都是很好,流很可能会流畅播放。
关于ios - MPMoviePlayerController MovieAccessLogEvent - 膨胀的观察比特率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20998052/
我有这个 MPMovePlayerController 和一个自定义 slider (它不是一个 slider ,但它具有相同的目的)。考虑到我的“ slider ”可以返回我需要的任何浮点值,我怎样
我正在使用 m3u8 视频格式来流式传输视频,现在我需要显示相同的字幕。 我在 Apple 文档中搜索,发现我可以通过使用 closedCaptionDisplayEnabled 来实现这一点。 AV
我正在使用 MPMoviePlayerController 在我的应用程序中播放一个视频。下面是我播放视频的代码。 **NSURL *url=[[NSURL alloc] initFileUR
请检查以下代码: (void) moviePlayerDidExitFullscreen:(NSNotification*)notification { MPMoviePlayerControlle
为了在我的应用中播放视频,我设置了 MPMoviePlayerController并将其添加到 subview 。用户可以使用捏合手势更改为全屏模式。 在此 viewController (包含电影播
有没有捕捉异常的方法(特别是对于网络错误 /没有可用连接)当使用 MPMoviePlayerController 时? 我特别担心一旦播放器的实例被初始化为 initWithURL:您无法知道电影加载
这真让我抓狂。 很简单,我有一个 MPMoviePlayerViewController 并且想要全屏显示电影。 在 iOS 5.0+ 上使用 ARC 我想让这个播放器应用程序范围内可重用。 这部电影
MPMoviePlayerController 似乎存在问题,一旦您处于全屏模式并按住快进按钮,让它向前搜索(以快速播放)一直到视频结尾。 此后,你只会得到一个黑屏,它被卡住了。换句话说,它不响应任何
我正在使用 MPMoviePlayerController 在 iPad 上播放电影。 当用户将设备旋转到横向时,我将其设置为全屏。 如果用户随后点击“退出全屏”或“完成”,电影将动画回到其小帧( n
我正在将应用程序移植到 iOS 8。我有一些代码可以播放以前可以运行的视频,但现在不能了。 当我运行它时,我收到以下错误: ( "", "", "", "", "", "", "", "", "" )
MPMoviePlayerController 支持哪些格式? 最佳答案 根据the documentation : 支持的格式 此类播放 iOS 支持的任何电影或音频文件。这包括流式内容和固定长度文
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
这是代码 - (void)applicationDidFinishLaunching:(UIApplication *)application { NSBundle *bundle = [NSBu
每次我的应用程序更改显示的动画(这是一部循环电影)时,他都会暂停,直到最终开始播放电影。MoviePlayerConntroller 是这样创建的 self.moviePlayer = [MP
MPMoviePlayerController 几乎按照我想要的方式工作,除了它覆盖了屏幕上的任何其他项目,例如我的导航栏。有没有办法阻止这种情况发生? 最佳答案 它的播放器是基于 UIView 的,
我们可以像MPMoviePlayerController中的默认Slider一样制作自定义控件吗用于前进和后退电影? 最佳答案 虽然您无法修改 MPMoviePlayerController 类,但您
我想自定义 MPMoviePlayerController 来为视频播放器添加更多控制。我可以添加额外的控件,但顶部缓冲控件被删除。我怎样才能让它可见? 最佳答案 我对你的问题的理解是你想在 MPMo
MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:video_url]
如何调整 MPMoviePlayerController 的帧大小? 最佳答案 通过新版本的 MPMoviePlayerController,您可以做到。 关于iphone - MPMoviePlay
我需要在没有播放器任何覆盖的情况下播放电影。没有播放/停止按钮,没有时间线,没有开始/结束时间,没有进度条,什么都没有。只是 subview 中的普通裸体电影。然后这部电影可能会被我自己的图形覆盖。该
我是一名优秀的程序员,十分优秀!