Sample MP4 video files for testing, free, CC0 and hotlinkable

mp4/non-faststart-720p-5s.mp4 is mp4/720p-5s.mp4 with the moov atom moved after mdat: the same 1,974,574 bytes, but a player that streams it cannot show the first frame until the whole file has arrived, and nothing reports an error.

mp4/no-audio-720p-5s.mp4 has no audio track at all, for code that assumes every video has one. mp4/h264-baseline-720p-5s.mp4 uses the Constrained Baseline profile at level 3.0, which older devices and some hardware decoders need. mp4/720p-5s.mp4 uses the High profile at level 3.1, the default most encoders write.

mp4/vertical-1080x1920-5s.mp4 is 1080x1920, taller than wide, for players and thumbnailers that assume landscape. mp4/360p-5s.mp4 (640x360), mp4/720p-5s.mp4 (1280x720) and mp4/1080p-10s.mp4 (1920x1080) are the same H.264 and AAC, for responsive players and transcode ladders.

mp4/1mb.mp4, mp4/10mb.mp4 and mp4/50mb.mp4 are 1280x720 encoded at a flat bitrate to 979,114, 10,062,489 and 50,081,140 bytes, for upload limits and progress bars that need a real video of a known size.

10 files. The same list as JSON: https://loremfile.dev/mp4/index.json

MP4 files
FileSizePropertiesDescription
1080p-10s.mp4 7.8 MB (7,829,049 bytes) 1920x1080, 10 s, h264, aac 1920x1080 at 30 fps, ten seconds, H.264 plus AAC.
Snippets
<video src="https://loremfile.dev/mp4/1080p-10s.mp4" controls></video>
curl -O https://loremfile.dev/mp4/1080p-10s.mp4
10mb.mp4 10.1 MB (10,062,489 bytes) 1280x720, 60 s, h264, aac About 10MB: 1280x720 at 30 fps for sixty seconds, two-pass at a flat bitrate.
Snippets
<video src="https://loremfile.dev/mp4/10mb.mp4" controls></video>
curl -O https://loremfile.dev/mp4/10mb.mp4
1mb.mp4 979.1 KB (979,114 bytes) 1280x720, 10 s, h264, aac About 1MB: 1280x720 at 30 fps for ten seconds, two-pass at a flat bitrate so the size is met by the encoder rather than by padding.
Snippets
<video src="https://loremfile.dev/mp4/1mb.mp4" controls></video>
curl -O https://loremfile.dev/mp4/1mb.mp4
360p-5s.mp4 577.5 KB (577,525 bytes) 640x360, 5 s, h264, aac 640x360 at 30 fps, five seconds, H.264 plus AAC. The small one, for quick tests.
Snippets
<video src="https://loremfile.dev/mp4/360p-5s.mp4" controls></video>
curl -O https://loremfile.dev/mp4/360p-5s.mp4
50mb.mp4 50.1 MB (50,081,140 bytes) 1280x720, 120 s, h264, aac About 50MB: 1280x720 at 30 fps for two minutes, two-pass at a flat bitrate. The largest video in the launch set.
Snippets
<video src="https://loremfile.dev/mp4/50mb.mp4" controls></video>
curl -O https://loremfile.dev/mp4/50mb.mp4
720p-5s.mp4 2 MB (1,974,574 bytes) 1280x720, 5 s, h264, aac 1280x720 at 30 fps, five seconds, H.264 plus AAC. The default sample if you need just one.
Snippets
<video src="https://loremfile.dev/mp4/720p-5s.mp4" controls></video>
curl -O https://loremfile.dev/mp4/720p-5s.mp4
h264-baseline-720p-5s.mp4 2.1 MB (2,085,508 bytes) 1280x720, 5 s, h264, aac H.264 Baseline profile at level 3.0: the constrained profile old devices and some hardware decoders need.
Snippets
<video src="https://loremfile.dev/mp4/h264-baseline-720p-5s.mp4" controls></video>
curl -O https://loremfile.dev/mp4/h264-baseline-720p-5s.mp4
no-audio-720p-5s.mp4 1.9 MB (1,890,893 bytes) 1280x720, 5 s, h264 1280x720 with no audio track at all, for code paths that assume every video has one.
Snippets
<video src="https://loremfile.dev/mp4/no-audio-720p-5s.mp4" controls></video>
curl -O https://loremfile.dev/mp4/no-audio-720p-5s.mp4
non-faststart-720p-5s.mp4 2 MB (1,974,574 bytes) 1280x720, 5 s, h264, aac 1280x720 at 30 fps, five seconds, H.264 plus AAC. Unlike mp4/720p-5s.mp4, moov follows mdat at the file end, so sequential progressive playback waits for the whole file.
Snippets
<video src="https://loremfile.dev/mp4/non-faststart-720p-5s.mp4" controls></video>
curl -O https://loremfile.dev/mp4/non-faststart-720p-5s.mp4
vertical-1080x1920-5s.mp4 4.3 MB (4,286,625 bytes) 1080x1920, 5 s, h264, aac Portrait 1080x1920, the shape phones record and social apps expect. Five seconds.
Snippets
<video src="https://loremfile.dev/mp4/vertical-1080x1920-5s.mp4" controls></video>
curl -O https://loremfile.dev/mp4/vertical-1080x1920-5s.mp4

Every MP4 file in one command, each checked against its hash: npx loremfile get --format mp4, or loremfile get --format mp4 after pip install loremfile.

File names follow the naming grammar. Verify a download against sha256sums.txt.