Команда ffmpeg >> out.log 2 >> error.log

Я бегу:

ffmpeg -i rtmp://localhost/test -crf 20 -t 00:10:00 ./video/hq/1503411993750.mp4 >> out.log 2>>error.log

И ожидаю > > out.log 2 >> error.log , чтобы создать stdout в out.log и stderr в error.log .

Когда я просматриваю оба этих файла в процессе, я получаю неожиданные результаты. Кажется, что содержимое error.log содержит stdout . Я получаю постоянный поток:

frame=191 fps=190 q=26.0 size=229kB time=00:00:04.63 bitrate=404.1
frame=227 fps=149 q=26.0 size=273kB time=00:00:05.83 bitrate=382.8
frame=242 fps=120 q=26.0 size=288kB time=00:00:06.33 bitrate= 372.6
frame=258 fps=101 q=26.0 size=306kB time=00:00:06.86 bitrate= 365.2
frame=273 fps=89 q=26.0 size=324kB time=00:00:07.36 bitrate= 360.1
# ... continued

Разве это не должно быть в out.log ? Проблема в том, как я написал команду, или в чем-то необычном с ffmpeg?

0
22.08.2017, 17:37
1 ответ

Судя по всему, все диагностические сообщения в ffmpegотправляются в stderr, так что проблема не в синтаксисе.

-A normally running ffmpeg task seems to send all it's output (even when there are no errors) to STDERR even with no errors.

This depends on what you mean with "output": ffmpeg sends all diagnostic messages (the "console output") to stderr because its actual output (the media stream) can go to stdout and mixing the diagnostic messages with the media stream would brake the output.

Из:https://lists.ffmpeg.org/pipermail/ffmpeg-user/2014-March/020605.html


Еще одна вещь, в которой я не уверен. Если приведенное выше верно, out.logне должно содержать видеоданные, а вместо этого всегда пусто.

(Я думаю, это потому, что я указал, что это должно быть отправлено на ./video/hq/1503411993750.mp4вместо)

2
28.01.2020, 02:45

Теги

Похожие вопросы