Build Note

ffmpeg 에서 pipe 출력(stdout) 으로 데이터 받기

김모작자 2013. 7. 26. 09:28

1)

FILE 등의 C runtime 을 사용해서 ffmpeg 출력을 읽기하려면
result = _setmode( _fileno( stdin ), _O_BINARY );
등으로 입력을 꼭 binary 모드로 변경해야 한다

2)

출력의 wav 포맷 등 헤더에 크기가 포함되는 경우
정상적인 경우 값이 채워져 있겠지만, pipe 출력의 경우
미결정된 상황에서 데이터가 내보내지기 때문에 해당 값 체크에 유의

가령 WAV 파일의 경우 RIFF, DATA 다음에 파일 크기와 실제 데이터 길이가 오게 되지만
pipe 로 출력되는경우 해당 값이 0 으로 들어가 있다.