Я могу легко собрать изображения с локального диска в видео с помощью ffmpeg и передать %06d
filespe c. Вот как будет выглядеть типичная команда (псевдокода):
ffmpeg.exe -hide_banner -y -r 60 -t 12 -i /JpgsToCombine/%06d.JPG <..etc..>
Однако я изо всех сил пытаюсь сделать то же самое с изображениями, хранящимися в AWS S3 , без использования третьего стороннее программное обеспечение для монтирования виртуального диска (например, TNTDrive ). Папка S3, содержащая наши изображения, слишком велика для загрузки в временное хранилище объемом 20 ГБ, предусмотренное для AWS контейнеров, и мы пытаемся избежать EFS , потому что нам придется предоставлять дорогостоящую пропускную способность.
Вот как выглядят URL-адреса HTTP и S3 для каждого из наших файлов JPG:
# HTTP URL
https://massdotnet.s3.amazonaws.com/jpgs-to-combine/000000.JPG # frame 0
https://massdotnet.s3.amazonaws.com/jpgs-to-combine/000012.JPG # frame 12
https://massdotnet.s3.amazonaws.com/jpgs-to-combine/000123.JPG # frame 123
https://massdotnet.s3.amazonaws.com/jpgs-to-combine/456789.JPG # frame 456789
# S3 URL
s3://massdotnet/jpgs-to-combine/000000.JPG # frame 0
s3://massdotnet/jpgs-to-combine/000012.JPG # frame 12
s3://massdotnet/jpgs-to-combine/000123.JPG # frame 123
s3://massdotnet/jpgs-to-combine/456789.JPG # frame 456789
Есть ли способ заставить ffmpeg собрать их? Мы могли бы сгенерировать подписанный URL-адрес для каждого файла S3 и поместить несколько тысяч этих URL-адресов в командную строку с помощью фильтра конкатенации FFMPEG . Однако в какой-то момент, используя этот подход, мы столкнулись с ограничением ввода командной строки в Linux. Я надеюсь, что есть способ получше ...