将使用 FFmpeg 截取的屏幕截图保存到 Amazon S3 存储桶中
Save screenshots taken with FFmpeg into Amazon S3 bucket
在我的 python 应用程序中,我拍摄视频的屏幕截图。我将它们保存在本地并且工作正常,但现在我想将它们保存在 Amazon S3 存储桶中。
subprocess.run(["ffmpeg", "-ss", "00:00:30", "-i", src, "-map", "0:v", "-vframes", "1", "pipe:pic.jpeg | aws s3 cp - s3://mypublicbucket"])
当 运行 这个命令时,我得到一个 Unable to find a suitable output format
。我尝试做的是将图片直接上传到我的 public 亚马逊存储桶中。
您应该将输出保存为 stdout
并使用 boto3 将其发送到 Amazon S3。
像这样:
video = subprocess.run(["ffmpeg", "-ss", "00:00:50", "-i", src, "-f", "image2", "-vframes", "1", "-"], stdout=subprocess.PIPE)
client = boto3.client('s3',
aws_access_key_id="YOUR_KEY_ID",
aws_secret_access_key= "YOUR_ACCESS_KEY")
response = client.put_object(Body=video.stdout, Bucket="your-bucket", Key="pic.jpeg")
请注意 FFmpeg 命令中的 "-"
,这意味着您希望输出为 stdout
。 "-f", "image2"
用于您的输出格式,一张图片,如果您需要不同的输出格式,只需 运行 ffmpeg -muxers
,您会找到适合您需要的格式。
在我的 python 应用程序中,我拍摄视频的屏幕截图。我将它们保存在本地并且工作正常,但现在我想将它们保存在 Amazon S3 存储桶中。
subprocess.run(["ffmpeg", "-ss", "00:00:30", "-i", src, "-map", "0:v", "-vframes", "1", "pipe:pic.jpeg | aws s3 cp - s3://mypublicbucket"])
当 运行 这个命令时,我得到一个 Unable to find a suitable output format
。我尝试做的是将图片直接上传到我的 public 亚马逊存储桶中。
您应该将输出保存为 stdout
并使用 boto3 将其发送到 Amazon S3。
像这样:
video = subprocess.run(["ffmpeg", "-ss", "00:00:50", "-i", src, "-f", "image2", "-vframes", "1", "-"], stdout=subprocess.PIPE)
client = boto3.client('s3',
aws_access_key_id="YOUR_KEY_ID",
aws_secret_access_key= "YOUR_ACCESS_KEY")
response = client.put_object(Body=video.stdout, Bucket="your-bucket", Key="pic.jpeg")
请注意 FFmpeg 命令中的 "-"
,这意味着您希望输出为 stdout
。 "-f", "image2"
用于您的输出格式,一张图片,如果您需要不同的输出格式,只需 运行 ffmpeg -muxers
,您会找到适合您需要的格式。