I know this is a bit back from the dead - but I found an issue and wanted to document it here for anyone else stumbling on this thread and trying to optimize video streaming using subsonic.
SUMMARY: Use the latest Shared Build from here (32 or 64, I happened to use 64 on Win7 x64 for my purposes) -
http://ffmpeg.zeranoe.com/builds/ . This resolved all issues with playback I was having with regards to re-buffering. Details of the bug causing the issue below.
DETAILS: The original post references a link to FFMPEG (
http://ffmpeg.arrozcru.org/autobuilds/ffmpeg/mingw32/shared/). I installed the latest from there, which I later realized had not been updated since early 2011.
I was having issues where MKVs streaming (higher quality, 8GB+) were playing for a bit, then re-buffering. The default buffer size of 3 seconds produced this often, and extending the buffer size to 30 seconds reduced it, but was still an issue. I looked in to processor, memory, etc., etc., but I was running a Phenom II X4 830, plenty of horsepower for this. I only noticed that FFMPEG from the link above failed to really utilize the whole processor - I never saw more than 50% utilization even at "-threads 4" or any other mentioned variant of the threads setting.
Finally, I looked at the log for Subsonic and saw the error: "av_interleaved_write_frame(): Operation not permitted" that seemed to coincide with the re-buffering issue. I dug in to the FFMPEG bug list and basically saw it was an old bug that was fixed after the version of FFMPEG reference above was likely created. I went to find the latest Shared build of FFMPEG and grabbed it as referenced above int he summary and it resolve everything. No more error, no more re-buffering, no more issues period. I also noticed the latest version was now utilizing closer to 70% of the CPU. All of these combined seem to have done the trick.
Anyway - I was ready to pitch Subsonic, so in hopes of someone else avoiding the time and frustration, I wanted to document things.