|Page 1 of 1|
|Author:||barnuble [ Mar 31st, '16, 20:32 ]|
|Post subject:||HamMultiPlayer Optimization(s)|
HamMultiPlayer can be optimized in many ways :
1°) Using external mplayer.
By default, HamMultiPlayer uses "umbeded" version of mplayer (generic x86 instructions) but you can still use a CPU optimized version ! Just place it beside HamMultiPlayer and it will use it instead of umbeded one (best is to copy mplayer.exe in the same directory as HamMultiPlayer) :
Check the link below and choose version matching your CPU ( Core2 / Core i7 / K8-SSE3 or X86_64)
Warning : Using an mplayer's Core i7 version on Core2 CPU computer may display black pictures !
Another mplayer build works fine with HamMultiPlayer : http://www.spirton.com/mplayer-mencoder-subjunk-build/ (Just try).
This one works too, but external decoding (CoreAVC...) will not : http://mplayerwin.sourceforge.net/downloads.html
See that post
2°) Use fast Video Output decoding.
- Prefer using Direct3D instead OpenGL or OpenGL Hardware.
- Set Video Quality decoding to "Fast".
- Set Starting Position to 0% (HamMultiPlayer won't have to seek inside video files).
- Set "Reset settings on page change" to "All".
- Set "Audio Output Channels" to 2.0 stereo.
- Set mplayer CPUCores to logical CPU threads number or click on Reset Misc Settings.
- Do the same for AviSynth CPUCores.
- Set InterFrame CPUCores to mplayer Cores + 2 (4 -> 6, 6 -> 8, 8 -> 10, etc...).
- Uncheck Double buffering (in player options).
- Check Frame Dropping (in player options).
3°) InterFrame Users :
- Download Last version of SVPFlow libraries from : https://www.svp-team.com/wiki/Download ( Download archive, decompress it and go inside /lib-windows/Avisynth/x32/ then copy svpflow1.dll and svpflow2.dll inside : /YourSystemDir/Program Files/AviSynth/Plugins/Dependencies/ ).
- Use Avisynth MT from : http://forum.doom9.org/showthread.php?t=148782
- Install Lav Filters : http://forum.doom9.org/showthread.php?t=156191
(for users wishing to test last (beta) versions, try : https://files.1f0.de/lavf/nightly/ ( Warning, it may not be stable ! ))
This sould help you to watch 720p/1080p movies at 60Hz using Core iX CPU(s).
4°) Using Powerfull Video Cards :
Some operations especially use graphics cards capabilities. InterFrame particularly :
Example : (Playing 6 movies simultaneously in qHD (960x540) @100% speed with InterFrame GPU enabled)
My computer CPU is : Core i7 2600K overclocked at 4.5Ghz (Hyperthreading enabled = 8 logical Cores)
NVidia 660 2GB => 48.61% CPU load (starting playing was slow and not really fluid).
NVidia 960 4GB => 20.47% CPU load (playing was really fluid).
Thus, using a powerfull graphics card may help you displaying several movies at once (even when using InterFrame !).
Using integrated graphics card may be slower when decoding, prefer AMD/NVidia cards ! (see that post)
Do not forget to update drivers too !
5°) Use Fast Hard Drives/Devices :
Assuming you are displaying 8 movies (8x1) located on a classic hard drive, HamMultiPlayer will have to access 8 different files on each move...
Best way to get good results is to use (ranked in order of speed) :
- SSD drives (no loss on access time, best way to use HamMultiPlayer).
- USB keys (same, but may be slower than SSD).
- Hybrid Hard drives (Hard + SSD).
- Hard drives with large cache memory.
- Classic Hard Drives.
other methods :
- Use several Drives.
- On partitioned drives, prefer using first partition than last one (access times are shorter).
Note : When starting playing several files (usually < 12), Windows memory cache is filled and then used instead of hard drive access... Until you load other files !
6°) Do not use Defragmenters or other softwares using Hard drives :
On a fragmented hard drive, heads may move a lot, slowing access ! I suggest you not using anything else while using HamMultiPlayer...
- You may defrag your drives before using this software (it can help).
- If it's possible, avoid using System drive (Windows almost constantly uses it).
- Mounted drives (from network) may be used like physical drives (transfert speed is about 100MBytes/s with Gigabit interfaces. Using Jumbo frames may help too...).
7°) Always check you have enough memory ! :
- The worst thing for HamMultiPlayer is Drive Swapping ! ( When memory amount becomes critical ).
- Gauge located on right side (between sound gauges) indicates memory used. (Always try to keep it green).
- Loading 8x low-resolution movies can use 250MBytes memory. 30x FullHD movies => 3GBytes... So imagine playing 55x UHD movies (almost impossible with current machines)
To be continued...
|Author:||barnuble [ Dec 3rd, '16, 22:59 ]|
|Post subject:||Few words about HamCPU|
Understanding HamCPU :
HamCPU was made before HamMultiPlayer and then adapted.
Its goal is to display CPU activity while using HamMultiPlayer. It can be positioned over or under Main interface (this can be defined in preferences).
- The vertical bars on the right side are displaying CPU realtime activity. The above example shows 28.25% total CPU usage at this moment.
- White lines are the average CPU usage (about 25% in the above example and nearly the same for the last 15 minutes).
- Numbers above the graphic are average CPU time by minute.
- Numbers at the bottom of display are "every minute spent".
The above example shows : 4 x Cores CPU and 15 minutes of CPU process with an average activity of 26%
The above example shows : 8 x Cores CPU and 15 minutes of CPU process with an average activity >90%
Video drivers comparison :
This is a benchmark using the demo found on my main web site page (1m46s / 720p) from Samsung Dubai (can be downloaded here).
( Windows XP 32bits / CPU = intel Q6600 @2.4Ghz / GPU = Nvidia GTX 660 / SSD device ). Results are average times over 2 minutes.
Direct3D = 7.45%, DirectX = 6.69%, MatrixView = 8.755%, OpenGL = 7.91%, OpenGL NoSoftConv = 7.9%, OpenGL ATI = 7.86%, OpenGL Hardware = 6.725%
DirectX and OpenGL Hardware are fastest video drivers (under 7% CPU used). I encourage you to use OpenGL Hardware because it is more stable than mplayer's DirectX support.
You could tell me that such a gap is insignificant but multiplied by 5, 10 or 20 videos played simultaneously, the gap becomes convincing !
If OpenGL Hardware does not work with your video card, you may use Direct3D.
Note : 1 second = 1 column. Thus, using a screen resolution of 1920x1080 will display 1920 seconds of CPU usage (>31 minutes).
HamCPU shows ALL CPU usage, not only HamMultiPlayer usage.
To get best performances, always check you computer is not doing something else (CPU usage >1% means that something else is running).
|Author:||barnuble [ Dec 4th, '16, 10:28 ]|
|Post subject:||Using External Player|
Optimization using External player :
HamMultiPlayer can use an external version of mplayer.
This graph shows the difference between Umbeded mplayer (Generic x86) and External Core2 player.
Computer configuration was : intel Q6600 @2.4Ghz
Benchmark was : Playing 5 movies (3x720p AVC/DTS + 2x400p DivX/mp3).
Generic Average = 33.95%
intel Core2 Average = 32.315%
Speed increase is about 5%.
Note : To use external decoder, download the version that suits you and put it in the same directory as HamMultiPlayer.
Next time HamMultiPlayer starts, external player will be used instead of umbeded one ( Using Side Player "VersionNumber" ) :
mplayer's links :
Sherpya versions (x86-32bits, x86-64bits, core2, corei3/5/7) : http://oss.netfarm.it/mplayer/
Redxii versions (x86-32bits, x86-64bits) : http://mplayerwin.sourceforge.net/downloads.html
SubJunk version (x86-32bits) : http://www.spirton.com/mplayer-mencoder-subjunk-build/
|Author:||barnuble [ Dec 4th, '16, 14:11 ]|
|Post subject:||Video Quality Decoding|
Video Quality Decoding
You can define Video Quality Decoding in preferences. By default, HamMultiPlayer is set to Direct3D + Fast.
This benchmark was made with same configuration than before (Q6600 @2.4Ghz + NVidia GTX660 + SSD drive).
4 movies are displayed for 2 minutes (2 x AVC/DTS 720p + 2 x DivX/mp3 400p).
Note : Fast = No deblocking at all, Medium = Light deblocking, High = Full deblocking + Deringing.
Direct3D + Fast = 40.915% Cpu used.
Direct3D + Medium = 47.845%.
Direct3D + High = 68.775%.
And now, same benchmark using OpenGL Hardware output :
OpenGL Hardware + Fast = 23.88%
OpenGL Hardware + Medium = 26.265%
OpenGL Hardware + High = 45.29%
These last results are effective due to the presence of a dedicated video card (making a part of the work). Integrated video chipset would be slower.
- Medium Video Quality decoding will process a light deblocking without too much CPU usage.
- OpenGL Hardware is a good choice if your hardware support it !
|Page 1 of 1||All times are UTC|
|Powered by phpBB® Forum Software © phpBB Group