如何获取 MongoDB 存储的视频文件的剪辑?

Posted

技术标签:

【中文标题】如何获取 MongoDB 存储的视频文件的剪辑?【英文标题】:How can I get a clip of a MongoDB stored video file? 【发布时间】:2020-06-03 10:07:58 【问题描述】:

我已经使用gridfs在数据库中存储了一些视频文件,因为存储的视频伴随着一些信息(例如,这个人在这个视频中所做的动作,从几秒钟到几秒钟),以及GridFs特点是块存储,而且数据显示存储的文件可以部分读取而不需要下载整个文件,这个视频应该怎么读取呢? 对不起,我的英语不是很好。

我的代码是这样的:

from pymongo import MongoClient
from gridfs import GridFS
client = MongoClient()
db = client.gridfs
fs = GridFS(db)
grid_out = fs.find("filename": "--1DO2V4K74")
data = grid_out[0].read()
out = open('test.mp4', 'wb')
out.write(data)
out.close()

我可以通过这个获得完整的视频。我想获得视频的一部分。

【问题讨论】:

如果我是你,我会按照手册进行,如果有错误,我会在这里发帖;),api.mongodb.com/python/current/examples/gridfs.html 我试过了。我明白你的意思并修改了问题。 【参考方案1】:

实际上,您不应该将媒体(图像或视频)保存在数据库中,而是将其存储在一些存储驱动器(本地或云)中,例如 s3 存储桶,然后将其位置 url 存储在您的数据库中。这段代码可能会有所帮助。

您可以使用强大的。因为它支持多部分数据(高效)。对于检索视频,您可以使用 fs(file system)

【讨论】:

谢谢。现在我将 GridOut 实例写入一个临时文件,然后打开该临时文件。跳过写入文件系统的额外步骤会很好。我该怎么做?【参考方案2】:

我用过 mongo gridfs 。它强大的存储大文件。阅读此文档https://docs.mongodb.com/manual/core/gridfs/,它非常有用,我在 spring rsocket 中通过 mongo 反应式 Java 驱动程序使用它

【讨论】:

以上是关于如何获取 MongoDB 存储的视频文件的剪辑?的主要内容,如果未能解决你的问题,请参考以下文章

如何在视频中添加文字

如何使用opencv和eclipse从视频剪辑中获取单帧

nas 视频剪辑 读取慢

mongodb视频教程

mongodb Gridfs操作

视频剪辑软件调研(格式工厂,爱剪辑,会声会影)