Android supports a wide variety of video formats and individual devices may well add support for additional formats. The list of "core" formats that android supports is maintained on the Android Developer Site.
When Xibo encounters a video format that it does not recognise it will still try to play it, if this causes an internal error Xibo for Android will mark the video as incompatible and refrain from playing it in the future. This "mark" is cleared each time the client contacts the Xibo CMS in case an updated video is available.
If your videos won't play, the first setting to try changing is the "Use Public Storage" setting. Xibo for Android has the ability to use the private "Internal Storage" on the device to store the videos and other media that arrive from the CMS. The internal private storage is the default option as it is guaranteed that it will be available for the application to use. However, some devices have issues with the playback of video if these videos are stored on the private storage.
Xibo for Android also has an option in Settings, to store its library of local media on "public storage" instead. This could be an SD card or some other removable media, or it could be a portion of the internal storage that the device has reserved for public files.
If the device is experiencing difficulty playing videos, then it may be due to the issue with private storage mentioned above, and it is worthwhile trying to switch to public storage in the player options.
There is a tick box to enable public storage. Once selected, you must click on "Storage Locations" and choose a location from the list. If you're not sure which to pick, the first in the list is normally the section of the internal storage reserved for public files and should work.
If the video still won't play, the next best course of action is to re-encode the video to be in the standard android format. This guarantees the best possible playback across all devices.
There are a number of 3rd party tools available that make re-encoding video simple and quick.
Handbrake is a GUI based tool for that can be downloaded for free. It has a simple to use User Interface and comes with pre-set profiles that can be modified for Android. The below settings have proved to work well in testing.
- Select "iPhone & iPod Touch" preset
- Check the "Web Optimized" option
- Change the Average Bitrate in the Quality tab to ~1000kbps
- Change the size of the output video to your desired width (keep the
aspect ratio). Keep in mind that most devices are 720p.
- Save your preset as "Android".
If you are a libav user you can use the command line tool "avconv" to manage the encoding. The codec you want is passed in on the command line - the following settings yield the best results:
avconv -i source.mp4 -vcodec libx264 -profile:v baseline -b 500k -r 30 -vf "setsar=1:1" -acodec libvo_aacenc -ac 2 -ar 44100 -ab 128k converted.mp4
Win FF is a free tool that can convert between numerous video formats into Android compatible formats. It is a GUI based application and can be downloaded from http://winff.org/.
Device manufacturers may have bundled extra codecs with the later versions of their firmware. If re-encoding the videos it not a suitable option it might be possible to ask for the codec to be included in the device firmware. This would be at the manufacturers discretion. Updated firmware may also resolve issues in earlier firmware preventing good quality video playback.