Unity3D:跨平台视频流?

时间:2014-09-15 14:26:56

标签: unity3d video-streaming cross-platform mp4 h.264

我们正在使用unity3d开发原型应用程序。您的目标是创建一个流畅而有趣的跨平台应用程序。

我们现在面临的问题是通过网络传输(h.264 - mp4)视频内容。这将是我们的应用程序的一个主要功能。

我已经尝试过MovieTextures和www类,但似乎文件必须采用我们无法提供的ogg格式。另一方面,handheld.playfullscreenmovie似乎是一个Android和ios唯一的功能,它使用视频播放器中的构建。如果在其他平台(例如Win8-Phone)上也支持它,这将是很好的。

是否有另一个跨平台选项可以通过网络流式传输(h.264-mp4)视频内容并以全屏或gui对象显示?或者有没有计划在不久的将来支持这样的事情?或者是否有一个稳定的插件来执行此类任务?

由于

2 个答案:

答案 0 :(得分:1)

从Unity 5开始,Handheld.PlayFullScreenMovie按照http://docs.unity3d.com/ScriptReference/Handheld.PlayFullScreenMovie.html支持Windows Phone和Windows应用商店

在Windows Phone 8上,Handheld.PlayFullScreenMovie在内部使用Microsoft Media Foundation进行电影播放。在此平台上,不支持使用完全控制模式或最小控制模式调用Handheld.PlayFullScreenMovie。

在Windows应用商店应用和Windows Phone 8.1上,Handheld.PlayFullScreenMovie在内部使用XAML MediaElement控件。

在Windows Phone和Windows应用商店应用中,通常没有电影分辨率或比特率限制,但是,更高分辨率或比特率电影将消耗更多内存用于解码。较弱的设备也将在极高分辨率下更快地开始跳帧。例如,诺基亚Lumia 620只能平滑播放高达1920x1080的视频。对于这些平台,您可以在此处找到支持的格式列表:Windows Store上支持的音频和视频格式

答案 1 :(得分:0)

mp4不是可流式容器。如果您阅读ISO规范,您将看到无法流式传输MP4。这是因为在知道所有帧并将其考虑之前,不能写入MOOV原子。这100%与直播视频不兼容。 DASH中使用的MP4超集使这成为可能。基本上,它们每隔几秒就会创建一个小的mp4(称为片段)文件。或者,您可以使用专为流媒体设计的容器,例如FLV或TS。

您可能需要稍微走出unity sdk才能启用此功能。