python - 将使用 FFmpeg 截取的屏幕截图保存到 Amazon S3 存储桶中
问题描述
在我的 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
运行此命令时我得到一个。我尝试做的是将图片直接上传到我的公共亚马逊存储桶中。
解决方案
您应该将输出保存为 astdout
并使用 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
,您会找到适合您需要的。
推荐阅读
- c# - 检测 Windows 关机中止
- axios - 在可穿戴设备的 HarmonyOS JS 框架中使用 Axios
- php - 如何在 PHP 中将 JSON Child 的位置更改为 Parent?
- spring-data-redis - 如何从客户端配置 Redis-server 的内存设置
- javascript - 如何将父容器的水平滚动位置移向其最近中心的子元素之一?
- python - 需要一个类似字节的对象,而不是 'str' f.write(image_url)
- javascript - 尝试删除空单元格时js应用程序的不稳定行为
- python - 用python替换`.doc`文件中的短语
- c - C: Scanf 在类型不匹配中被忽略
- ruby-on-rails - 音频文件没有在 Rails 上播放 Ruby