1短视频APP开发时的数据处理需求
客户端主要是对于视频的效果叠加、人脸识别和各种美颜美化算法的处理。同时客户端处理还会增加一些必要的转码和水印的视频处理。
目前客户端的视频编解码方式,会有软编码和硬编码的方式,软编码主要是兼容性比较好,编码效果好些,不过缺点就是能耗高且慢些。而硬编码借助于显卡等,能够得到比较低的能耗并且更快,不过兼容和效果要差一些,特别是对于一些低配的机型。所以目前往往采用结合的方式。
服务端的处理,主要是进行视频的一些审核转码工作,也有一些抽帧生成截图的工作等,目前使用ffmpeg进行一些处理。服务端本身需要考虑的一些点,就是因为资源消耗比较高,所以需要机器数会多,所以在服务端做的视频处理 *** 作,会尽量控制在一个合理的范围。
2短视频APP开发中音视频不同步问题
媒体内容在播放时,最令人头痛的就是音视频不同步。从技术上来说,解决音视频同步问题的最佳方案就是时间戳:首先选择一个参考时钟(要求参考时钟上的时间是线性递增的);生成数据流时依据参考时钟上的时间给每个数据块都打上时间戳(一般包括开始时间和结束时间);在播放时,读取数据块上的时间戳,同时参考当前参考时钟上的时间来安排播放。可见,避免音视频不同步现象有两个关键——一是在生成数据流时要打上正确的时间戳。如果数据块上打的时间戳本身就有问题,那么播放时再怎么调整也于事无补。打时间戳时,视频流和音频流都是参考参考时钟的时间,而数据流之间不会发生参考关系;也就是说,视频流和音频流是通过一个中立的第三方(也就是参考时钟)来实现同步的。第二个关键的地方,就是在播放时基于时间戳对数据流的控制,也就是对数据块早到或晚到采取不同的处理方法。如果你只是一个简单的页面,PHP直接来比较简单。但有一种情况:页面内容较多的长页面;并发量较大。
那么,PHP渲染结构,ajax渲染细节,就体现出威力了。这样可以更快地响应客户端(服务器处理的逻辑少了),用户能更快地看到东西,而不是浏览器转圈圈。
之后的ajax,也只是数据传递,渲染结构还是在浏览器,服务器少了很多字符串的 *** 作,必然比一次性在服务端渲染要好。
更甚至说,你可以把每个区域的请求分发到不同的业务系统,做好跨域就行了。数字孪生的模型在实际的项目中,目前采用比较多的落地方案有webgl和本地部署,这两个方案已经在市场上比较成熟了,也是三维可视化厂家目前给业主方推荐比较多的。但从用户角度来说,其实这两个方案都存在一些不能解决的弊端。比如本地部署的方案,在多并发用户下无法共享,而且受机器所在空间的限制,只能去特定的控制室才能使用。即使在某些机器闲置的时候,也没法共享给其他有需要的人员使用。如果想满足所有人员的使用,必须配备很多设备,这样在空闲的时候会造成浪费。
Webgl的方案虽从传统的C/S到了B/S架构,但是该技术还是有很多的限制,首先内容必须使用 OpenGL ES SL着色器语言生成,如果要部署基于实时引擎的内容,内容和交互元素必须符合WebGL的框架,可能某些功能的实现还是受制于该框架。其次,显示效果完全依赖于客户端浏览器功能以及客户端本身硬件性能;图像质量则取决于浏览器的显示能力。该方案适合一些数据量小、安全要求低以及画质要求不高的项目场景。
当然任何技术的发展都和时代相关,这两个方案在实际中确实也比以前的方案更好解决了一些问题。但随着科技的进步,新的技术也终会以更好的性能和效果,取代就的方案。很多用户对于实时云渲染技术很多还是不熟悉,其实该技术可以说是以上两个方案的升级方案,该方案是纯B/S架构,将三维可视化、UE\Unity模型放置在服务器,通过云渲染软件系统流化出可以在手机、电脑、平板、智慧屏等设备上可以直接访问的URL地址。
实时云渲染技术三维可视化
程序运行是在云端服务器上,本地设备无需提供任何算力,用户也不需安装任何插件,而且在网络OK的情况下在任何设备任何地点(办公室、家里等)都可随时打开。在模型建设的阶段也可以选择多种引擎,无论是精美度更高的UE5还是unity、3dmax 或者其他设计软件都是OK的。因为云流化的原理其实不改变程序的指令执行过程,而是把整个执行过程画面以视频流的方式传回给用户终端设备。而服务器的性能一般是比计算机优秀很多,而且显卡也可以插多张。总的来说使用实时云渲染技术方案,从业主方和用户方来说有以下好处:
一、对业主侧
集中管理各种服务器硬件设备,对于多用户同时使用的情况,可以集中建设,分配给不同的人员去使用,而且还可以错峰使用,使得资源的利用效率更高,而且统一建设节省成本。尤其是对于集团公司有类似需求的,可以由集团统一管理,减少重复采购。对于集团内部的沟通,因为摆脱了时间 和空间设备等的限制,可以提高工作协作效率。
二、对用户侧
对用户来说主要的问题则是使用方不方便,是否需要花费大量的学习成本。实时云渲染软件的使用和平时用户上网的使用习惯没什么区别,也是在浏览器里打开网页,或者点开客户端exe程序或者APP。不增加任何的学习成本,即点即用。这对很多行业的用户来说是非常便捷的。就是多台服务器(最多10台)同时渲染一张。目前最高可达200核400线程,使用分布式渲染,给的都是高配服务器,能为用户节约大量的渲染时间,会收取一定的服务费,一般适合着急用图的时候用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)