Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 画布上带平移的视频-如何解决性能问题(也包括:HTML5、Flash或其他?)_Android_Performance_Flash_Video_Html5 Video - Fatal编程技术网

Android 画布上带平移的视频-如何解决性能问题(也包括:HTML5、Flash或其他?)

Android 画布上带平移的视频-如何解决性能问题(也包括:HTML5、Flash或其他?),android,performance,flash,video,html5-video,Android,Performance,Flash,Video,Html5 Video,长版本: 我有一个非常特别的问题。我是一名多媒体艺术家,目前正在与一名动画师一起工作——我们正在尝试创建一个交互式动画,我希望能够将其作为网站、应用商店和安卓市场上的免费应用程序在线提供。 但这是我现在面临的关键问题 实际动画的输出视频的分辨率将是巨大的——可能是高清分辨率的4倍或更多,但这是有原因的。这样做的目的是让观看者一次只能观看视频的一部分,就像在谷歌地图或任何其他类似画布的视图(如MMORPG或战略电脑游戏)中平移一样。所以你一次只能看到整个图像的一部分,然后你可以四处移动,看看“角落

长版本:

我有一个非常特别的问题。我是一名多媒体艺术家,目前正在与一名动画师一起工作——我们正在尝试创建一个交互式动画,我希望能够将其作为网站、应用商店和安卓市场上的免费应用程序在线提供。 但这是我现在面临的关键问题

实际动画的输出视频的分辨率将是巨大的——可能是高清分辨率的4倍或更多,但这是有原因的。这样做的目的是让观看者一次只能观看视频的一部分,就像在谷歌地图或任何其他类似画布的视图(如MMORPG或战略电脑游戏)中平移一样。所以你一次只能看到整个图像的一部分,然后你可以四处移动,看看“角落后面”是什么

因此,动画将是一个类似谷歌地图的画布(平移,如果有足够的时间来实现的话,可能会缩放),但是使用视频而不是图像

出现的最大问题是性能。我在想,让它运行的最好方法是相应地缩小不同设备的视频。但是,即使现在只考虑台式计算机——高清屏幕缩小到720p意味着分辨率总共是720p的4倍,这对于普通计算机来说可能太难解码了(全高清通常已经有问题了)——并且输出分辨率将超过4K标准(5120乘2880,而4K是4096x2160)。无论如何,这是不可接受的

但我得出的结论是,对用户看不见的视频部分进行解码和渲染是毫无意义的(为什么要浪费CPU+GPU的时间呢)——因为我们知道,在任何给定的时间内,只有大约1/6的完整画布是可见的。 这激发了一个想法,也许我可以将输出视频分割成块——8到64个文件像表格中的单元格一样并排堆叠在一起,然后让一个时间码计时器在某个变量中播放,并根据需要启用视频块。当用户将画布拖动到可见元素时,它会自动开始播放从全局变量读取的给定时间文件的代码。可能存在一些试探法,预测用户移动并提前激活不可见块,以消除因在视频中搜索和开始播放而导致的任何延迟。然后不再可见的块可以在一定时间后自行停用没时间了

因此,我的第一次尝试是尝试看看我在平台方面的选择,我真的看到它归结为:

  • 带有JavaScript的HTML5(大量使用
    标记)
  • Adobe Flash(使用Flash Builder将应用程序部署到所有不同的设备)
HTML5确实更可取

所以我做了一些研究,看看是否有可能在HTML5中一次同步多个视频。不幸的是,这远远不够完美,有两个可用的“黑客”可以很好地与Firefox配合使用,但在Webkit中存在缺陷(视频经常会出现超过几帧的不同步,有时甚至长达半秒,如果将单个视频分割成块/段,这一点是非常明显的)。更不用说,我甚至没有在移动平台(Android/iOS)上尝试过

这两种方法/黑客是Rick Waldron的同步,如下所示:

另一个也是由Rick开发的是mediagroup.js(这个在Chrome中根本不起作用):

我的测试在这里:

(我隐藏了控制器,因为出于某种原因,它总是比其他剪辑播放得更早)

所以在解释完所有这些之后,我非常感谢你们的反馈——解决这个问题的最佳方法是什么?在哪个平台上。HTML5足够成熟吗

短版: 如果我还没有弄清楚我需要什么——想象一下一个视频以600%放大,这样你就看不到所有的东西(有些部分在屏幕外),你需要用鼠标拖动(或在移动设备上轻弹手指)来四处平移,看看视频的不同地方发生了什么。我该怎么做呢(视频是否平稳运行)跨平台,同时保持视频的高质量和分辨率

非常感谢,如果您需要更多细节或任何澄清,请告诉我