How to read remote video on Amazon S3 using ffmpeg

Nevermind, I found an easy way to solve my problem.

I set up an amazon cloudfront download distribution pointing to my S3 bucket.
Via cloudfront the files are accessible with ffmpeg over http:

ffmpeg -i "http://subdomain.cloudfront.net/video.mp4" -ss 00:00:10 -vframes 1 -f image2 "image%03d.jpg"

And the data transfer is even cheaper! But still wondering why this won't work with S3 directly...


For everyone who came here looking how to do this with S3 only, The AWS SDK can now generate presigned urls.

ffprobe -i "$(aws s3 presign s3://MY_BUCKET/MY_FILE --expires 5)"

In my case, reading directly form S3 bucket work like a charm. To be more specific, my S3 object has private permission so I'm passing a Signed-URL to ffmpeg.

I use ruby and AWSRubySDK to generate a Signed-URL. http://docs.amazonwebservices.com/AWSRubySDK/latest/AWS/S3/S3Object.html#url_for-instance_method

Check your S3 object's permission.