Link to home
Start Free TrialLog in
Avatar of kevinvw1
kevinvw1

asked on

video conversion performance

I have a 64-bit windows server that runs ffmpeg and mkvmerge to perform video file manipulation.

The app is a 64-bit c# console app that basically runs in a loop and waits for something to process.  It is monitoring a folder and when it sees a file in the folder it grabs the file and processes it then puts the processed file in to another folder.
It processes small videos by calling out and running ffmpeg and mkvmerge at the command line.
It creates asynchronous threads to process in parallel (at least I think it is doing that).
The videos are all well under 1 meg in size.

This is real-time processing and I could have as many as 1000 simultaneous requests so every millisecond counts.

I have tried to tune it as best I can, but I am looking for better performance.
The bottleneck is in the ffmpeg/mkvmerge processing.

Here are my thoughts on ways to improve performance.  I am looking for comments on which changes I can make to get biggest performance boost with least amount of $$.
And which changes are not going to make a big difference.

1 - more powerful CPU (add more cores).
2 - use solid state hard drives?
3 - cache more videos in RAM (since the videos are quite small I could in theory create a RAMdisk.
4 - link directly to ffmpeg and mkvmerge libraries instead of shelling out to command-line. (not sure if this would buy me much performance increase)
5 - switch to Linux?
6 - Any other ideas?

Thanks for your thoughts.

Kevin.
ASKER CERTIFIED SOLUTION
Avatar of OCDan
OCDan
Flag of United Kingdom of Great Britain and Northern Ireland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial