Как читать удаленное видео на Amazon S3 с помощью ffmpeg - PullRequest
20 голосов
/ 20 апреля 2010

Мне нужно создать рамки для постеров из видео, размещенных на Amazon S3 через ffmpeg.

Так есть ли способ использовать удаленный видеофайл непосредственно в командной строке 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<br> Usually that means that input file is truncated and/or corrupted.

Я также пытался заставить ffmpeg использовать контейнер mp4 для чтения видео:
ffmpeg -f mp4 -i "http://bucket.s3.amazonaws.com/video.mp4" ...
Но не повезло.

Wget это видео с S3 и его локальная обработка, конечно, работает нормально,
а также удаленное чтение файла с других «стандартных» http-серверов.
Итак, я знаю, что ffmpeg поддерживает удаленное чтение файлов, но почему не на S3?

Ответы [ 3 ]

31 голосов
/ 23 апреля 2010

Неважно, я нашел простой способ решить мою проблему.

Я установил дистрибутив для загрузки Amazon Cloudfront, указывающий на мою корзину S3. Через облачный фронт файлы доступны через ffmpeg через http:

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

А передача данных еще дешевле! Но все еще задаюсь вопросом, почему это не будет работать с S3 напрямую ...

9 голосов
/ 19 сентября 2012

В моем случае, чтение непосредственно из S3 ведро работает как шарм. Если быть более точным, мой объект S3 имеет личное разрешение, поэтому я передаю Signed-URL в ffmpeg.

Я использую ruby ​​и AWSRubySDK для создания подписанного URL. http://docs.amazonwebservices.com/AWSRubySDK/latest/AWS/S3/S3Object.html#url_for-instance_method

Проверьте разрешение вашего объекта S3.

1 голос
/ 05 марта 2019

Для всех, кто пришел сюда и ищет, как это сделать только с S3, AWS SDK теперь может генерировать предварительно назначенные ссылки.

ffprobe -i "$(aws s3 presign s3://MY_BUCKET/MY_FILE --expires 5)"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...