【问题标题】:How to convert video on s3 using python without download it?如何在不下载的情况下使用 python 在 s3 上转换视频?
【发布时间】:2021-11-15 19:57:14
【问题描述】:

我的 s3 存储桶中有一堆视频,我想使用 python 转换它们的格式,但目前我遇到了一个问题。我的获取桶的所有对象的python脚本如下。

s3 = boto3.client('s3',
            region_name = S3_REGION,
            aws_access_key_id = S3_ACCESS_KEY_ID, 
            aws_secret_access_key = S3_ACCESS_SECRET_KEY)
        result = s3.list_objects(Bucket = bucket_name, Prefix='videos/')
        for o in result.get('Contents'):
            data = s3.get_object(Bucket=bucket_name, Key=o.get('Key'))

对于视频格式的转换,我使用了将视频格式转换为 mp4 的 MoviePy 库

import moviepy.editor as moviepy
clip = moviepy.VideoFileClip("video-529.webm")
clip.write_videofile("converted-recording.mp4")

但是这个库的问题是它只需要一个文件,你不能将 s3 对象作为文件传递,所以如果有人对此有更好的想法,我不知道如何解决这个问题,那么请帮助我?如何解决这个问题?。

【问题讨论】:

标签: python python-3.x amazon-web-services amazon-s3


【解决方案1】:

你是对的。库要求视频文件位于“本地磁盘”上,因此您应该使用download_file() 而不是get_object()

或者,您可以使用Amazon Elastic Transcoder 将文件转码为“作为服务”,而不是在您自己的代码中进行。 (根据视频长度收费。)

【讨论】:

    猜你喜欢
    • 2016-05-28
    • 1970-01-01
    • 1970-01-01
    • 2015-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-22
    • 2020-03-07
    相关资源
    最近更新 更多