FFT is a fast algorithm that implements discrete Fourier transform (DFT). Because of the nature of FFT, The size of FFT is a power of 2; for instance: 4, 8, 16, 32, 64, 256 ... 1024 ... . For a long signal(or stream) like yours it's usual to divide the stream into a series of fixed packs like 256-sample packs (so window size = 256); then this fixed-size of samples are applied to the FFT process. The output's length of FFT is exactly the same as the input size. However, if the input signal is real then the half of the FFT output is useful because the other half is conjugate of the first half. Determining the window size depends on your signal's nature. The more detail-included and/or high-frequency your signal, the smaller the FFT window size and vise versa.