I am not an "official" voice for the plug in, but I do understand why @georgestarcher edit worked... I believe the proper way to fix this is to edit the following lines in the mediaelement-js-wp.php file (lines 177, 178, and 179):
'preload' => 'false',
'autoplay' => 'false',
'loop' => 'false',
To
'preload' => false,
'autoplay' => false,
'loop' => false,
What is happening here is that the code below this array, lines 188 through 238, is looking to see if the variables are true or not. If they are true then they set the option. The problem with the code is that the array defaults are set to strings instead of a bool. Therefore the variable, set as a string to false, is always true. So if you were to not put any argument into the short code then the default would be used, which in this case is 'false' as a string. Well the code below the array is looking to see if that variable is defined, which it is, therefore the if statement is true so it then defines the option/attribute. Therefore by removing the quotes in the code around the 'false' will change it to a bool default. In fact, the defaults of:
'duration' => 'true',
'progress' => 'true',
'fullscreen' => 'true',
'volume' => 'true',
Should also have the quotes removed under this same theory.