Ffmpeg

ffmpeg 命令>> out.log 2>>error.log

  • August 22, 2017

我在跑:

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導致stdouttoout.logstderrto 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的不尋常之處?

顯然,所有診斷消息ffmpeg都發送到stderr,所以問題不在於語法。

-即使沒有錯誤,正常執行的 ffmpeg 任務似乎也將其所有輸出(即使沒有錯誤)發送到 STDERR。

這取決於您對“輸出”的含義:ffmpeg 將所有診斷消息(“控制台輸出”)發送到 stderr,因為它的實際輸出(媒體流)可以進入標準輸出,並且將診斷消息與媒體流混合會阻止輸出。

來自:https ://lists.ffmpeg.org/pipermail/ffmpeg-user/2014-March/020605.html


另一件事我不確定。如果上述情況屬實,則不應out.log包含影片數據,而是始終為空。

(我想這是因為我已經指定將其發送到./video/hq/1503411993750.mp4

引用自:https://unix.stackexchange.com/questions/387682