我需要通过ffmpeg从Amazon S3上托管的视频创建海报帧.
那么有没有办法直接在ffmpeg命令行中使用远程视频文件,如下所示:
ffmpeg -i "http://bucket.s3.amazonaws.com/video.mp4" -ss 00:00:10 -vframes 1 -f image2 "image%03d.jpg"
ffmpeg只返回:
http://bucket.s3.amazonaws.com/video.mp4: I/O error occurred
Usually that means that input file is truncated and/or corrupted.
我也尝试强制ffmpeg使用视频mp4容器阅读:
ffmpeg -f mp4 -i "http://bucket.s3.amazonaws.com/video.mp4" ...
但没有运气.
从S3获取此视频并在本地处理它当然可以正常工作,
以及从其他"标准"http服务器远程读取文件.
所以我知道ffmpeg支持远程文件读取,但为什么不在S3上呢?
vir*_*ize 33
没关系,我找到了解决问题的简单方法.
我设置了指向我的S3存储桶的亚马逊云端下载分发版.
通过cloudfront,可以使用ffmpeg通过http访问文件:
__CODE__
数据传输甚至更便宜!但仍然想知道为什么这不能直接与S3一起工作......
Ste*_*fan 16
对于来这里寻找如何仅使用 S3 执行此操作的每个人来说,AWS SDK 现在可以生成预签名的 URL。
ffprobe -i "$(aws s3 presign s3://MY_BUCKET/MY_FILE --expires 5)"
Run Code Online (Sandbox Code Playgroud)
小智 9
在我的情况下,直接读取S3桶的工作就像一个魅力.更具体地说,我的S3对象具有私有权限,因此我将签名URL传递给ffmpeg.
我使用ruby和AWSRubySDK生成签名URL. http://docs.amazonwebservices.com/AWSRubySDK/latest/AWS/S3/S3Object.html#url_for-instance_method
检查S3对象的权限.
归档时间: |
|
查看次数: |
20014 次 |
最近记录: |