我在S3上收集了大量的视频文件。我还有运行在AWS上运行Java Web应用程序的应用程序服务器。从这些应用程序服务器,我想能够从诸如由QuickTime电影检查员提供每个视频文件中提取元数据:从S3上的第几个MB中提取视频元数据
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检查器相同的字段。有任何想法吗?
您提到的第二种方法听起来很有用。我可能需要检查一下,如果我们能够将文件的前几个MB提供给ffmpeg以使第一种方法可行。现在检查。 –
谢谢,我在ffmpeg库中使用了这个逻辑+ ffprobe,效果很好。你认为你能帮助我吗? http://stackoverflow.com/questions/24537884/how-to-get-first-n-bytes-of-file-from-s3-url?非常感谢,如果是的! –