我开始研究HTTP直播流协议,感觉非常有趣。浏览Apple提供的完整文档。
我尝试使用Vedio On Demand和Live Streaming以及使用VLC播放器作为流媒体服务器,遵循其中一个开发者论坛中提到的步骤,我能够成功传输它。
现在我希望我的iPhone成为流媒体的来源,并希望使用其他iPhone来查看该内容。
如上所述,mediastreamsegmenter是一种通过UDP网络连接或从sdtin接收MPEG-2传输流的工具。
有人可以说明如何开始使用我的iPhone作为流媒体服务器并能够流式传输内容。据我所知,我认为必须有一个客户端(iPhone)应用程序将内容发送到服务器,服务器又将流转换为MPEG-2传输流并将其发送到mediastreamsegmenter。我希望剩下的部分与流式传输VLC播放器的方式相同。
如果有人可以帮我解决这个问题,那会很棒。
答案 0 :(得分:2)
这只是我的猜测。如果有一个肯定的答案我试着不发布这个。但是,现在还没有答案。所以我写这篇文章只是为了分享我的观点。不过我很抱歉这不是正面的。
如果您只想从iOS设备传输视频,这很容易。只需发送视频文件本身。所以我假设你想要的是实时视频流。播放我正在录制的内容。
我几周前就考虑过这个问题,但是我没能成功。问题不是媒体分割器。 MPEG2 TS只是一个容器,分割只是分割视频,它可以很容易地实现(?),具有准确的规范。
真正的问题是视频编码。 iOS不提供来自摄像头输入的压缩直播流。 (也许呢?)压缩流只能存储到磁盘中。应该有一种在内部获取压缩视频流的方法。因为没有它,FaceTime是不可能的。但是它没有提供给第三方。
可以连续存储短视频并将其上传到服务器。但启动/完成视频会话需要很长时间。所以我放弃了这种方法。
另一方面,iOS提供未压缩的视频流,因此您可以通过自己压缩原始视频流来实现。使用ffmpeg
或类似的东西。然而,Apple的视频编码利用硬件功能来提高性能(这可以使视频质量在更小的尺寸内更好)并节省能源。 ffmpeg
仅在软件中完成所有事情。当然,您可以自己制作硬件加速编码器,也可以从某个供应商处购买。
市场上有一些实时视频流特色应用。我没用过它们。但也许其中一个。
第一个需要太大的带宽,并且消耗大量的能量。
第二个肯定是慢的并消耗大量的能量。然而,它可能就足够了。
对于小规模的应用程序,第三个需要太高的开发成本。但如果你有足够的预算,这是最好的。我不知道iOS上预先实现的库是否存在于市场上。
我希望Apple能够发布这种压缩视频流。其中使用Apple的硬件加速编码器压缩。但也许它不会发生,除非Apple决定放弃保护设备之间的高质量实时视频流功能作为其杀手级功能...... FaceTime。
然而,苹果有可能在某个时候发布此API。而且我不确定我是否搜索过所有API。我可能无法检查一些重要的东西。
我找到了可以通过压缩将视频数据写入文件的类AVAssetWriter
。这可能是制作此类应用的关键。
答案 1 :(得分:0)
在Video Encoding using AVAssetWriter - CRASHES有一个很好的AVAssetWriter和AVAssetReader示例。读者可以在网络上发送收集的数据。