Как передать выходные данные и файлы журнала на S3, используя FFMPEG - PullRequest
2 голосов
/ 11 июня 2019

Я сохраняю свой вывод FFMPEG напрямую с моего EC2 на S3, используя:

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

, который отлично работает, но я бы хотел добавить мои ffmpeg.log и progress.log, например:

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. Я уверен, что это даже не близко к тому, что мне нужно. Я также попытался добавить несколько каналов, но без радости.

Как я могу добавить сохранить мои файлы журналов в S3 с моими выходными файлами, используя ffmpeg?

1 Ответ

0 голосов
/ 11 июня 2019

Ваши журналы будут идти в текущий рабочий каталог. Вам нужно будет загрузить их отдельно. Поскольку нас интересуют журналы, я подумал, что вы можете также захотеть проверить ошибки. Если нет, просто удалите содержимое между if [...] и fi.

#!/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

Вы также можете объединить журналы в один с {...}. Как это:

{
    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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...