繁体   English   中英

从S3上的前几MB提取视频元数据

[英]Extract Video Meta Data from First Few MB on S3

我在S3上收集了大量视频文件。 我也有在运行Java Web应用程序的AWS中运行的应用程序服务器。 从这些应用服务器,我希望能够从每个视频文件中提取元数据,例如Quicktime电影检查器所提供的:

Source: /home/me/foo.mov
Format: H.264, 1920x1080
FPS: 29.97
Data Size: 16.8 MB
Data Rate: 6.70 Mbit/s

现在,我可以从ffmpeg清楚地获得以下信息:

$ ffmpeg -i /home/me/foo.mov

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/me/foo.mov':
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isomavc1mp42
    creation_time   : 2014-06-30 22:40:08
  Duration: 00:00:20.02, start: 0.000000, bitrate: 6698 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 6696 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
    Metadata:
      creation_time   : 2014-06-30 22:39:09
      handler_name    : GPAC ISO Video Handler

我可以轻松解析出Quicktime输出的等效字段! 但是,这将需要我在本地存储文件。 是否可以从S3上托管的文件的前几个MB(或其他机制)执行此操作,而无需在本地下载整个文件? 这里的目标是从S3上的文件中提取与quicktime检查器相同的字段。 有任何想法吗?

是否可以从S3上托管的文件的前几个MB(或其他机制)执行此操作,而无需在本地下载整个文件?

是的,您可以使用HTTP Range标头获得部分响应。 请参阅GetObject文档上的“带有范围标题的示例请求”。

有任何想法吗?

如果要使用ffmpeg解析元数据,则可以在上传对象中将其设置为用户定义的元数据。 请参阅: http : //docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html#object-metadata

我在亚马逊上发现了一个非常有趣的教程:

https://aws.amazon.com/blogs/compute/extracting-video-metadata-using-lambda-and-mediainfo/

它使用MediaInfo是因为它不需要下载所有文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM