S3上有大量的视频文件。我还在AWS中运行运行Java webapp的应用程序服务器。从这些应用程序服务器,我希望能够从每个视频文件中提取元数据,如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检查器相同的字段。有什么想法吗?
答案 0 :(得分:1)
是否可以从S3上托管的文件的前几个MB(或其他一些机制)执行此操作,而无需在本地下载整个文件?
是的,您使用HTTP Range标头获得部分响应。 请参阅GetObject documentation上的“带范围标题的示例请求”。
有什么想法吗?
如果要使用ffmpeg来解析元数据,可以在上载中的对象中将其设置为用户定义的元数据。请参阅:http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html#object-metadata
答案 1 :(得分:1)
我在亚马逊上找到了一个非常有趣的教程:
https://aws.amazon.com/blogs/compute/extracting-video-metadata-using-lambda-and-mediainfo/
它使用MediaInfo,因为它不需要下载所有文件。