나는 뛰고있어:
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에 특이한 점이 있나요?
답변1
분명히 모든 진단 메시지 ffmpeg
는 으로 전송되므로 stderr
문제는 구문이 아닙니다.
- 정상적으로 실행되는 ffmpeg 작업은 오류가 없더라도 모든 출력(오류가 없더라도)을 STDERR로 보내는 것 같습니다.
"출력"의 의미에 따라 다릅니다. ffmpeg는 실제 출력(미디어 스트림)이 stdout으로 전송될 수 있고 진단 메시지와 미디어 스트림을 혼합하면 출력이 차단되기 때문에 모든 진단 메시지("콘솔 출력")를 stderr로 보냅니다.
에서:https://lists.ffmpeg.org/pipermail/ffmpeg-user/2014-March/020605.html
확실하지 않은 것이 하나 더 있습니다. 위의 내용이 true인 경우 out.log
비디오 데이터가 포함되어서는 안 되며 항상 비어 있어야 합니다.
(이건 으로 보내도록 지정했기 때문인 것 같습니다 ./video/hq/1503411993750.mp4
)