问题:
为了让一个iOS应用程序能够流式视频并被App Store接受,我们需要有HLS版本。
问题在哪里?
Android不支持HLS,而且由于其他原因,我们需要存储相同内容的MP4和HLS文件。
MP4和HLS有什么区别?为什么需要同时存储它们?
MP4是一个容器,用于在HTML 5浏览器中实现最佳兼容性的H.264视频和AAC音频 - jsvideo播放器通常会有Flash备用方案,如果浏览器不支持HTML 5中的MP4视频,则使用相同的MP4文件,但通过Flash播放。
HLS是一种协议,其中文本文件(.m3u8)包含对播放列表的引用,这些播放列表本身引用.ts文件(或m2ts),这些文件是mpeg-2传输流,不要与mpeg-2视频混淆。.ts文件是相同的H.264视频和AAC音频的容器。
我为什么抱怨?
1.从MP4文件创建HLS文件和播放列表需要时间
2.(最重要的)我们现在在S3上存储两倍的数据
3.为什么我要关心?如果您的S3账单每月为10K美元,用于存储MP4和HLS,则现在只需支付5K美元。或者换句话说,如果您为存储MP4而支付了100K美元,则存储相同内容的MP4和HLS将花费200K美元。
我想要什么?
我只想存储.ts文件,并使用该单个文件为桌面用户、iOS用户和Android用户提供服务。
这是可能的吗?
HLS是否需要5-10秒的.ts段而不是一个大文件?
截至IETF草案7和协议版本4,HLS支持标签EXT-X-BYTERANGE,允许您将媒体段指定为较大URL的字节范围(子范围)。
.ts文件与HTML5视频兼容吗?
显然不是。它们是与MP4不同的容器,但包含相同的视频和音频内容。值得研究如何一次存储原始视频/音频数据,并在必要时使用正确的容器。如果JS视频播放器可以将HTML 5 MP4文件即时转换为Flash视频,以便在浏览器不支持HTML 5 MP4时使用,则为什么不能对M2TS数据执行相同操作?
我可能在某种程度上无知,但也许有人可以阐明这个问题,并可能提出解决方案。
为了让一个iOS应用程序能够流式视频并被App Store接受,我们需要有HLS版本。
问题在哪里?
Android不支持HLS,而且由于其他原因,我们需要存储相同内容的MP4和HLS文件。
MP4和HLS有什么区别?为什么需要同时存储它们?
MP4是一个容器,用于在HTML 5浏览器中实现最佳兼容性的H.264视频和AAC音频 - jsvideo播放器通常会有Flash备用方案,如果浏览器不支持HTML 5中的MP4视频,则使用相同的MP4文件,但通过Flash播放。
HLS是一种协议,其中文本文件(.m3u8)包含对播放列表的引用,这些播放列表本身引用.ts文件(或m2ts),这些文件是mpeg-2传输流,不要与mpeg-2视频混淆。.ts文件是相同的H.264视频和AAC音频的容器。
我为什么抱怨?
1.从MP4文件创建HLS文件和播放列表需要时间
2.(最重要的)我们现在在S3上存储两倍的数据
3.为什么我要关心?如果您的S3账单每月为10K美元,用于存储MP4和HLS,则现在只需支付5K美元。或者换句话说,如果您为存储MP4而支付了100K美元,则存储相同内容的MP4和HLS将花费200K美元。
我想要什么?
我只想存储.ts文件,并使用该单个文件为桌面用户、iOS用户和Android用户提供服务。
这是可能的吗?
HLS是否需要5-10秒的.ts段而不是一个大文件?
截至IETF草案7和协议版本4,HLS支持标签EXT-X-BYTERANGE,允许您将媒体段指定为较大URL的字节范围(子范围)。
.ts文件与HTML5视频兼容吗?
显然不是。它们是与MP4不同的容器,但包含相同的视频和音频内容。值得研究如何一次存储原始视频/音频数据,并在必要时使用正确的容器。如果JS视频播放器可以将HTML 5 MP4文件即时转换为Flash视频,以便在浏览器不支持HTML 5 MP4时使用,则为什么不能对M2TS数据执行相同操作?
我可能在某种程度上无知,但也许有人可以阐明这个问题,并可能提出解决方案。