首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用FFMPEG将输出和日志文件通过管道传输到S3

如何使用FFMPEG将输出和日志文件通过管道传输到S3
EN

Stack Overflow用户
提问于 2019-06-12 03:34:27
回答 1查看 464关注 0票数 2

我使用以下命令将FFMPEG输出直接从EC2保存到S3:

代码语言:javascript
复制
ffmpeg -i ${input} -f mp4 -movflags frag_keyframe+faststart -hide_banner -y pipe:1 | aws s3 cp - s3://my-bucket/video/output.mp4
-

它可以完美地工作,但我想像这样添加我的ffmpeg.logprogress.log

代码语言:javascript
复制
ffmpeg -i ${input} -f mp4 -movflags frag_keyframe+faststart -hide_banner -y -progress progress.log pipe:1 | aws s3 cp - s3://my-bucket/video/output.mp4 &> ffmpeg.log
-

但是添加日志会抛出错误,并将日志保存在我的EC2上。我敢肯定它和我需要的还差得很远。我也尝试添加多个管道,但没有效果。

如何使用ffmpeg将我的日志文件与输出文件一起保存到S3?

EN

回答 1

Stack Overflow用户

发布于 2019-06-12 04:00:04

您的日志将转到当前工作目录。您需要单独上传这些文件。既然我们对日志感兴趣,我想您可能也想做一些错误检查。如果没有,只需删除if [...]fi之间的内容即可。

代码语言:javascript
复制
#!/bin/bash
# This will report an error from ffmpeg to $? in the pipeline.
set -o pipefail

ffmpeg -i ${input} -f mp4 -movflags frag_keyframe+faststart -hide_banner -y pipe:1 2> progress.log | \
aws s3 cp - s3://my-bucket/video/output.mp4 2> ffmpeg.log
if [ $? -ne 0 ]; then
    echo "Failed to build /upload output.mp4"
    # Do anything else on error here...
fi

aws s3 cp progress.log s3://my-bucket/video/progress.log
if [ $? -ne 0 ]; then
    echo "Failed to upload progress.log"
fi

aws s3 cp ffmpeg.log s3://my-bucket/video/ffmpeg.log
if [ $? -ne 0 ]; then
    echo "Failed to upload ffmpeg.log"
fi

您还可以使用{...}将日志合并为一个日志。如下所示:

代码语言:javascript
复制
{
    ffmpeg -i ${input} -f mp4 -movflags frag_keyframe+faststart -hide_banner -y pipe:1 | \
    aws s3 cp - s3://my-bucket/video/output.mp4
} 2> ffmpeg.log
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56550629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档