It is currently Apr 20th, '24, 10:19

All times are UTC




Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 4 posts ] 
Author Message
PostPosted: Mar 31st, '16, 20:32 
Offline
Administrateur

Joined: Sep 28th, '12, 13:43
Posts: 43
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)

http://oss.netfarm.it/mplayer/

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 ! :

Image

- 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...


Barnuble.


Top
 Profile Send private message  
 
 Post subject: Few words about HamCPU
PostPosted: Dec 3rd, '16, 22:59 
Offline
Administrateur

Joined: Sep 28th, '12, 13:43
Posts: 43
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).

Image

- 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%

Image

The above example shows : 8 x Cores CPU and 15 minutes of CPU process with an average activity >90%

Video drivers comparison :

Image

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).

...


Top
 Profile Send private message  
 
 Post subject: Using External Player
PostPosted: Dec 4th, '16, 10:28 
Offline
Administrateur

Joined: Sep 28th, '12, 13:43
Posts: 43
Optimization using External player :

Image

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.

Image

Next time HamMultiPlayer starts, external player will be used instead of umbeded one ( Using Side Player "VersionNumber" ) :

Image

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/


...


Top
 Profile Send private message  
 
 Post subject: Video Quality Decoding
PostPosted: Dec 4th, '16, 14:11 
Offline
Administrateur

Joined: Sep 28th, '12, 13:43
Posts: 43
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.

Image

Direct3D + Fast = 40.915% Cpu used.
Direct3D + Medium = 47.845%.
Direct3D + High = 68.775%.

And now, same benchmark using OpenGL Hardware output :

Image

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 !

...

Barnuble.


Top
 Profile Send private message  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 4 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 28 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group