minio 的 python/java sdk 如何获取一个存储在 minio 中的视频的时间长度?
假设,我上传了一个视频 mp4 文件到 minio 的 bucket 中。
现在我有一个需求,获取这个 mp4 文件的视频时长
但是怎么做到?
我并不想下载视频到本地在本地判断(但是下载比如前512字节是可以接受的,但是通过前 512 字节,足够判断吗?)
同样的问题,我还想问 oss、s3 等等对象存储有什么解决方案?
视频是直接在前端上传的,minio、oss、s3 这些可以在上传的时候,就自定义一些存储字段吗?用这些自定义的存储字段存储视频时长?
还是存储到 metadata 里面比较优雅,通过判断 video 的前几个字节判断,我觉得还是成本比较高
import oss2
access_key_id = '<your-access-key-id>'
access_key_secret = '<your-access-key-secret>'
endpoint = 'http://oss-cn-hangzhou.aliyuncs.com'
bucket_name = '<your-bucket-name>'
auth = oss2.Auth(access_key_id, access_key_secret)
bucket = oss2.Bucket(auth, endpoint, bucket_name)
# 上传文件
object_key = 'example.mp4'
local_file = '/path/to/example.mp4'
# 设置自定义视频时长字段
metadata = {'x-oss-meta-video-duration': '120'} # 设置视频时长为120秒
# 使用put_object_with_callback方法上传文件并设置自定义元数据
bucket.put_object_with_callback(object_key, local_file, headers=metadata)
print("文件上传成功!")
问了一下chatgpt,是可以通过读取前512字节读取视频长度的。
但是我感觉应该可以在上传的时候给文件加一个额外的metadata去标识视频的长度,然后从minio读取文件的时候再读取metadata获取视频长度。对于已经上传到minio上的文件,可以通过脚本统一更新一下视频文件的metadata信息。
先上传到服务器压缩后再转存oss,这种方式会比较优吗? 有没无损压缩视频的方案推荐下?后端用的是nodejs~ 感谢各位大佬~
使用APP拍摄视频,然后上传至minio,有的视频文件 contentType为 video/mp4,而有的contentType 为 application/octet-stream,这是为什么呢? video/mp4类型的在浏览器上可以直接预览,而application/octet-stream 类型的在部分浏览器上显示格式不支持 我使用sm3设置了http 返回的header中content
准备工作 为了安装 Seafile 专业版服务器并使用阿里云OSS,您需要: 按照 下载安装 Seafile 专业版服务器 指南安装基本的 Seafile 专业版服务器。 安装 oss2 软件包:sudo pip install oss2,更多安装帮助可以参考这个文档。 安装和使用 Memcached。Seafile 会将部分对象缓存在 memcached 中,以提高性能。建议至少给 memcac
我已经在PC上使用pip ffprobe命令安装了ffprobe,并从这里安装了ffmpeg。 然而,我仍然在运行这里列出的代码时遇到麻烦。 我尝试使用下面的代码,但没有成功。 有人知道怎么了吗?我没有正确引用目录吗?是否需要确保和视频文件位于特定位置? 如果这个问题有点基本的话,我很抱歉。所有我需要的是能够迭代一组视频文件,并获得他们的开始时间和结束时间。 谢谢!
请教大家一个关于oss的问题,比如图片上传这种静态资源,我们一般都是放在oss或者本地,放在本地的好处是省钱,操作方便,但是缺点就是访问太慢,如果首屏十几个大图片要加载,对于一个1~2M带宽的服务器来说,那真是慢到家了。 改进的方法一般都是采用OSS来管理图片,但是OSS收费,虽然有免费额度,我之前咨询过阿里云OSS和七牛云OSS,两者每月都有免费的流量额度,但是七牛云貌似要比阿里云送的要多些。
问题内容: 我使用xuggler来获取视频长度,但是它给出了错误的长度,可能是时候使用xuggler从视频文件中读取数据了。但是我需要获取实际的视频长度或时长。 问题答案: 您可以使用的和方法获取它。您可以这样做: 您可以在此处看到完整的示例 希望这可以帮助