There can be a few reasons why a video background may not work. The following steps can be taken to troubleshoot the problem:
1. Check if the video is encoded correctly for the web. You can quickly test it by placing the video URL (copied from WordPress > Media Library) directly in the browser address bar. If the video plays fine, then its probably correctly encoded.
If it doesn't play when the URL is placed in browser's address bar, then it's not correctly encoded. In this case, use tools like MiroVideoConverter or HandBrake.fr to re-encode the video. The default settings in the encoder are fine. You need to encode the video both in mp4 and webm versions.
2. Upload both webm and mp4 versions of the video in the background. This ensures maximum browser compatibility.
3. In order for the video formats to work in all browsers, your server must have the correct MIME types designated. You can learn more about using .htaccess to define MIME types here.
If you notice your videos are not playing in certain browsers, then this is likely the reason.
To add MIME types to your .htaccess file, use a FTP client (like FileZilla) to access your WordPress root files. There you should find your .htaccess file. If you don't see .htaccess file in the root directory of your website, enable the display of hidden files.
Open the file in a text editor. Below the line that says “#END WordPress” add the following:
AddType video/mp4 .mp4 .m4v
AddType video/ogg .ogv
AddType video/webm .webm
After following all the three steps, if the video is still not loading, then its probably the issue with the size of the video. If its too large, then it may take a long time to load, and you may think that its not loading at all. Its better to keep the size of background video as low as possible. It should never be more then 5MB. Once you fix the size, the video should load fine.