在过去的一个月里,我一直在互联网上搜索从Android上的应用程序实现录制实时视频并将其发送到服务器的方法,但我研究的越多,我得到的就越混乱。
首先,我正在寻找一种可以在未来用于iOS的流媒体协议,所以我得出结论 DASH (基于HTTP的动态自适应流媒体)是理想的解。 此外,最近的Android框架 ExoPlayer 支持此功能。 此外,我不想使用WOWZA等Live Streaming引擎。
其次,根据我的研究,我还得出结论,任何HTTP服务器都可用于接收" chuncks"数据,但我必须有一个流媒体服务器,以便能够将视频流回用户。 我相信这个过程非常复杂,但在成功实现之前我不会放弃。
最后,我的问题是,我应该使用什么服务器,协议才能实现这一目标?以及如何直接转换视频并发送到服务器?
答案 0 :(得分:1)
查看你的问题和协议和服务器:
这可能取决于您对未来的意义。目前,苹果要求您在iOS上使用HLS,以便在移动网络(手机网络)上播放超过10分钟的视频。 DASH正在建立自己作为行业标准,所以这可能会改变,苹果也可能接受它,但如果你在不久的将来需要一些东西,你可能想要计划支持DASH和HLS。
流式视频很复杂,域名也在快速变化,因此如果可以的话,使用或构建专用的流媒体服务器确实很好。这些通常具有用于将输入视频转换为所需的不同格式和比特率的机制和/或良好记录的过程,具体取决于您具有的覆盖范围和用户体验目标。 Reach将确定您需要的不同编码,支持不同编码的不同浏览器和设备,如果您希望您的用户具有避免缓冲的良好体验,您还需要每种格式的多个比特率版本 - 这允许DASH和HLS提供自适应比特率流式传输(ABR),这意味着客户端可以根据网络条件在任何给定时间选择最佳比特率。视频操作,尤其是转码,是一项CPU密集型任务,因此专用流媒体服务器软件的另一个优点是应尽可能优化它以减少服务器负载。
如果您决定采用流媒体服务器路由,那么有开源替代方案,以及您在上面提到的Wowza,例如:
这些插件支持ABR等 - 如果您搜索GStreamer流媒体服务器ABR'你会找到一些关于设置它的好博客。