android - 为视频应用程序选择 HLS 或 MPEG-DASH

标签 android ios video http-live-streaming mpeg-dash

我们正在开发一款移动视频应用,需要决定 HLS 或 MPEG-DASH 之间的视频协议(protocol)。

我们的主要考虑因素是两者中哪一个对浏览器和移动平台(iOS、Android)有更好的支持和兼容性?

视频内容是在移动应用上录制/上传/观看的,但也需要共享以便在浏览器上查看。

乍一看,HLS 拥有更广泛的平台支持,但很想听听任何人的经验。

谢谢!

最佳答案

如果您想覆盖尽可能多的用户,您很可能会发现此时必须同时支持这两种方式,尤其是在内容已加密的情况下。

iOS 和 Safari 通常使用 HLS 和 FairPlay,Android、Firefox 和 Chrome 使用 DASH 和 Widevine,Windows 和 Edge 使用 DASH 和 PlayReady。

目前,Apple iOS 设备必须使用 HLS 通过移动网络播放超过 10 分钟的内容:

2.5.7 Video streaming content over a cellular network longer than 10 minutes must use HTTP Live Streaming and include a baseline 192 kbps HTTP Live stream. (https://developer.apple.com/app-store/review/guidelines/)

因此,为 Apple 设备提供的流通常是 HLS,而 DASH 用于其他设备。

如果您的流未加密,您可以使用 CMAF 单个源文件。如果它们被加密,那么设备需要一段时间才能支持单个 CMAF 加密源 - 请在此处查看更多详细信息:https://stackoverflow.com/a/62020034/334402

此处的 CMFA 信息:https://developer.apple.com/documentation/http_live_streaming/about_the_common_media_application_format_with_http_live_streaming

关于android - 为视频应用程序选择 HLS 或 MPEG-DASH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62191097/

相关文章:

android - 如何在 Android 8 中为 FCM 推送消息指定 Android 通知 channel

ios - 使用 AVFoundation 在视频之间快速切换

java.security.UnrecoverableKeyException : Failed to obtain information about private key

安卓工作室 : always run on all connected devices

ios - Xcode 6 "Terminating app due to uncaught exception"

ios - AVCaptureOutput captureStillImageAsynchronouslyFromConnection 在 iPhone5 上永远不会完成

iphone - 允许用户点击以通过 facebook、twitter 等推广您的应用程序的应用程序选项卡

android - Android 上使用 Phonegap 3.4 的 HTML5 视频

Javascript事件监听器在特定时间开始视频并在一定时间后停止视频

Android数据绑定(bind)@BindingConversion失败,用于int到字符串