当前位置: 首页 > 知识库问答 >
问题:

Nodejs上传和处理视频

云曦之
2023-03-14

我正在为我的申请寻找最好的方法。我有视频上传功能。前端将发送upload/video请求并附上视频文件,然后我的后端将处理该请求,将减小视频的大小和质量(使用fluent-FFMPEG),然后将基于视频的第一帧创建缩略图图像,然后将视频和他的缩略图图像上传到AWS S3 bucket,最后将压缩的视频和缩略图返回到前端。我遇到的问题是,所有压缩、创建缩略图和上传的(后端)任务都非常耗时,有时(取决于视频大小和持续时间)我的nginx服务器会返回504网关超时,这是正常的。问题是:

如何处理这个案子。我是否应该使用web套接字通知前端进行视频处理,或者我不需要等到所有这些操作完成。我的目标是有一个功能,在那里我可以上传一个视频,显示一些视频处理的进度条,用户可以“播放”应用程序,而不需要等待直到视频处理成功

共有1个答案

杨晟
2023-03-14

看来这是个建筑问题。这里有一个我比较喜欢的解决方案。

>

  • 使用队列并将进度存储在某个键值DB中。您可能对队列不熟悉,所以我建议您查看一些与队列相关的教程。当您使用amazon时,sqs可能会对您感兴趣。在Rails中,您可以检查SideKiq。拉拉维尔有拉拉维尔地平线。

    而每个队列都是progress design app,因此它可以报告它。比如50%、60%等。

    进程缩略图等在队列上也。

    如果您想缩放,您可以简单地增加队列的数量。我想其他人也是这样处理的。

  •  类似资料:
    • 你想处理一个由用户上传的文件,比如你正在建设一个类似Instagram的网站,你需要存储用户拍摄的照片。这种需求该如何实现呢? 要使表单能够上传文件,首先第一步就是要添加form的enctype属性,enctype属性有如下三种情况: application/x-www-form-urlencoded 表示在发送前编码所有字符(默认) multipart/form-data 不对字符

    • 本文向大家介绍轻松创建nodejs服务器(10):处理上传图片,包括了轻松创建nodejs服务器(10):处理上传图片的使用技巧和注意事项,需要的朋友参考一下 本节我们将实现,用户上传图片,并将该图片在浏览器中显示出来。 这里我们要用到的外部模块是Felix Geisendörfer开发的node-formidable模块。它对解析上传的文件数据做了很好的抽象。 要安装这个外部模块,需在cmd下执

    • 本文向大家介绍Ajax异步文件上传与NodeJS express服务端处理,包括了Ajax异步文件上传与NodeJS express服务端处理的使用技巧和注意事项,需要的朋友参考一下 为了避免在实现简单的异步文件上传功能时候引入一个第三方库文件的尴尬情形(库文件可能造成多余的开销,拉低应用加载速度,尤其是在引入库文件之后仅使用其中一两个功能的情况下,性价比极低),最近了解了一下文件异步上传的实现原

    • 接口说明 上传视频文件 API地址 POST /api/marker/1.0.0/uploadVideo 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 dataGuid string form 是 场景GUID file string form 是 视频文件 响应字段说明 参数 类型 说明 mp4UploadPath String 视频文件上传地址 响应成功示例 { "

    • 用户通过视频上传、管理视频、获取代码,实现本地视频在制定网站播放。 2.1视频上传 进入视频页面,点击上传视频 按钮,在弹出的页面点击添加视频 : 1)选择视频“分类”,添加视频“标签”(选填); 2)点击【添加视频】或者【选择文件并上传】按钮选择本地一个或多个视频,点击确认即开始视频上传;或者在本地选择一个或多个视频,将视频拖拽到视频上传区,即可进行视频上传; 3)上传过程中点击视频上传或者取消

    • 我一直得到“UnhandledPromiseRejectionWarning:UnhandledPromiseRejection.此错误源于在没有catch块的异步函数内部抛出,或拒绝未用.catch()处理的Promission.(拒绝ID:2)” 我已经处理了所有的承诺,但错误仍然存在