Video HowTo

Encode to MP4

The best way to encode your video files is to export your work into a production codec (ProRes, DNxHD or uncompressed, for example). Then, use the open source tool Handbrake to convert it into an mp4. Make sure to use h264 as codec, otherwise the video will be software-decoded and might stutter. As a baseline for settings, you can use this preset.

For 4k on Raspi4, it has to be h265 encoded.

Please be adviced that mp4 export via Adobe Software might produce errors.

For synchronized playback on MP4Museum-Sync, it has to be h264, best with constant bitrate for audio. There is no support for h265. Also, do not use variable framerates. The clips should be the same length on all players, and not to short, as it takes a few tries at first for the slaves to sync.

If you want seamless loops, make sure to name the file “loop.mp4”, which will enable a special loop mode, so that the playing software runs continously. Depending on your content, if you experience lag around the loop, try different bitrates or keyframe modes in Handbrake.

The startup video (“MP4Museum” etc.) with sound should come on after booting.

You can make changes to the config.txt on the boot drive for setting options or to force certain video modes. This can be useful when the display or projector is incorrectly, or not at all detected.

The boot partition should show up on your computer after writing the image, or when you plug in the card again. Open the file config.txt with a standard text editor.

Video Modes

Setting the Video Mode manually via config.txt might help when the mode cannot be set via discovery on boot, or the setup uses the wrong mode by default. It can also help when you turn on player and projector/monitor at the same time, and there is no picture as the output is not ready to recieve on boot.

For example, add

hdmi_group=1
hdmi_mode=16
hdmi_force_mode=1
hdmi_force_hotplug=1

to the config.txt which will force 1920×1080 at 60hz. Or

hdmi_group=2
hdmi_mode=68
hdmi_force_mode=1
hdmi_force_hotplug=1

will give you 1920×1200 at 60hz.

If you need to specify your own resolution, you can try supplying your horizontal & vertical screen size and the refresh rate like this:

hdmi_cvt=800 480 60
hdmi_group=2
hdmi_mode=87

These setting will prevent the Pi from figuring out what resolution to use, but use the given video mode. To find out what modes are possible using a connected output device, exit to console with CTRL-C or login via ssh, and see info via “tvservice -s”.

Find complete information on video modes and options on raspberry.org.

Note: With the newest Raspbian OS, the way it is configured on mp4museum is called “legacy” in the documentation on their website.

Overscan / Clipping / Cropping

To adjust the image by moving its borders inwards, replace “disable_overscan=1” with

disable_overscan=0
overscan_left=1
overscan_right=1
overscan_top=1
overscan_bottom=1

Increase the Values on each side until you can see your media properly.

Using Composite Video Output

If you need analog video output for that old CRT Monitor, sure thing! The really old Raspberries have a RCA jack for output, for some like the Zero you need to solder to make the connection. In any case, you will need to make changes to config.txt to enable TV out, and set the correct format.

Find out more here: Raspberry Pi Documentation on SDTV

If you need to switch between HDMI and TV-Out, consider this fix by GitHub user Ziggy:

#enable composite out
enable_tvout=1

[EDID=*]
#HDMI force
hdmi_force_hotplug=1
#disable composite out
enable_tvout=0

With these instructions in config.txt TV-Out will be enabled by default, and switched off if a HDMI device is connected.