comando ffmpeg out.log 2error.log

0

Estou correndo:

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

E espera que >> out.log 2>>error.log resulte em stdout a out.log e stderr a error.log .

Quando ligo esses dois arquivos durante o processo, recebo resultados inesperados. O conteúdo de error.log parece conter stdout . Eu recebo um fluxo constante de:

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

O acima não deveria estar em out.log ? O problema com a forma como escrevi o comando ou algo incomum com o ffmpeg?

    
por Philip Kirkbride 22.08.2017 / 16:37

1 resposta

1

Aparentemente, todas as mensagens de diagnóstico em ffmpeg são enviadas para stderr , portanto, o problema não é sintaxe.

-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.

De: link

Outra coisa que não tenho certeza. Se o acima for verdadeiro, não deverá out.log conter dados de vídeo, mas estará sempre vazio.

(eu acho que isso é porque eu especifiquei para ser enviado para ./video/hq/1503411993750.mp4 )

    
por 22.08.2017 / 16:42