Skip to content
Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
eme_player_js
440hz-10ms.m4a
48_aac_infinite_loop.m4a
4ch.wav
90rotation.mp4
9ch.ogg
9ch.wav
COPYING
OWNERS
README.md
aac-44100-packet-0
aac-44100-packet-1
aac-44100-packet-2
aac-44100-packet-3
audio-start-time-only.webm
av1-I-frame-320x240
bali_640x360_P420.yuv
bali_640x360_P420_alpha.yuv
bali_640x360_P422.yuv
bali_640x360_RGB24.rgb
bbb-320x240-2video-2audio.mp4
bear-1280x720-a_frag-cenc-key_rotation.mp4
bear-1280x720-a_frag-cenc.mp4
bear-1280x720-a_frag-cenc_clear-all.mp4
bear-1280x720-a_frag-cenc_missing-saiz-saio.mp4
bear-1280x720-aac_he.ts
bear-1280x720-av_frag-initsegment-mvhd_version_0-mvhd_duration_bits_all_set.mp4
bear-1280x720-av_frag.mp4
bear-1280x720-av_with-aud-nalus_frag.mp4
bear-1280x720-avt_subt_frag.mp4
bear-1280x720-hls-sample-aes.ts
bear-1280x720-hls-with-CAT.bin
bear-1280x720-hls.ts
bear-1280x720-v_frag-avc3.mp4
bear-1280x720-v_frag-cenc-key_rotation.mp4
bear-1280x720-v_frag-cenc.mp4
bear-1280x720-v_frag-cenc_clear-all.mp4
bear-1280x720-zero-stsz-entry.mp4
bear-1280x720.mp4
bear-1280x720.ts
bear-1280x720.webm
bear-1280x720_ptswraparound.ts
bear-320x180-hi10p-vp9.webm
bear-320x180-hi10p.mp4
bear-320x180-hi12p-vp9.webm
bear-320x192-baseline-frame-0.h264
bear-320x192-baseline-frame-1.h264
bear-320x192-baseline-frame-2.h264
bear-320x192-baseline-frame-3.h264
bear-320x192-high-frame-0.h264
bear-320x192-high-frame-1.h264
bear-320x192-high-frame-2.h264
bear-320x192-high-frame-3.h264
bear-320x240-16x9-aspect-av_enc-av.webm
bear-320x240-16x9-aspect.webm
bear-320x240-P444.webm
bear-320x240-altref.webm
bear-320x240-audio-only-48khz.webm
bear-320x240-audio-only.webm
bear-320x240-av_enc-a.webm
bear-320x240-av_enc-av.webm
bear-320x240-av_enc-av_clear-1s.webm
bear-320x240-av_enc-av_clear-all.webm
bear-320x240-av_enc-v.webm
bear-320x240-cues-in-front.webm
bear-320x240-live.webm
bear-320x240-manifest.js
bear-320x240-multitrack.webm
bear-320x240-opus-a_enc-a.webm
bear-320x240-opus-av_enc-av.webm
bear-320x240-opus-av_enc-v.webm
bear-320x240-v-vp9_fullsample_enc-v.webm
bear-320x240-v-vp9_profile2_subsample_cenc-v.mp4
bear-320x240-v-vp9_profile2_subsample_cenc-v.webm
bear-320x240-v-vp9_subsample_enc-v.webm
bear-320x240-v_enc-v.webm
bear-320x240-v_frag-hevc.mp4
bear-320x240-v_frag-vp9-cenc.mp4
bear-320x240-v_frag-vp9.mp4
bear-320x240-video-only.webm
bear-320x240-vp9_profile2.webm
bear-320x240.webm
bear-320x240_corrupted_after_init_segment.webm
bear-640x360-a_frag-cbcs.mp4
bear-640x360-a_frag-cenc-key_rotation.mp4
bear-640x360-a_frag-cenc.mp4
bear-640x360-a_frag.mp4
bear-640x360-av_enc-av.webm
bear-640x360-av_frag.mp4
bear-640x360-manifest.js
bear-640x360-non_square_pixel-with_pasp.mp4
bear-640x360-non_square_pixel-without_pasp.mp4
bear-640x360-v-2frames-keyframe-is-non-sync-sample_frag.mp4
bear-640x360-v-2frames-nonkeyframe-is-sync-sample_frag.mp4
bear-640x360-v-2frames_frag.mp4
bear-640x360-v_frag-cbc1.mp4
bear-640x360-v_frag-cbcs.mp4
bear-640x360-v_frag-cenc-key_rotation.mp4
bear-640x360-v_frag-cenc-mdat.mp4
bear-640x360-v_frag-cenc-senc-no-saiz-saio.mp4
bear-640x360-v_frag-cenc-senc.mp4
bear-640x360-v_frag-cenc.mp4
bear-640x360-v_frag-cens.mp4
bear-640x360-v_frag.mp4
bear-640x360.webm
bear-a_enc-a.webm
bear-ac3-only-frag.mp4
bear-audio-10s-CBR-has-TOC.mp3
bear-audio-10s-CBR-no-TOC.mp3
bear-audio-10s-VBR-has-TOC.mp3
bear-audio-10s-VBR-no-TOC.mp3
bear-audio-implicit-he-aac-v1.aac
bear-audio-implicit-he-aac-v2.aac
bear-audio-lc-aac.aac
bear-audio-main-aac.aac
bear-audio-mp4a.69.ts
bear-audio-mp4a.6B.ts
bear-av1-320x180-10bit-cenc.mp4
bear-av1-320x180-10bit-cenc.webm
bear-av1-320x180-10bit.mp4
bear-av1-320x180-10bit.webm
bear-av1-480x360.webm
bear-av1-640x480.webm
bear-av1-cenc.mp4
bear-av1-cenc.webm
bear-av1.mp4
bear-av1.webm
bear-eac3-only-frag.mp4
bear-flac-192kHz.mp4
bear-flac-192kHz_frag.mp4
bear-flac-cenc.mp4
bear-flac.mp4
bear-flac.ogg
bear-flac_frag.mp4
bear-hevc-frag.mp4
bear-mpeg2-aac-only_frag.mp4
bear-opus-11ch-channelmapping2.ogg
bear-opus-4ch-channelmapping2.ogg
bear-opus-end-trimming-11ch-channelmapping2.webm
bear-opus-end-trimming-4ch-channelmapping2.webm
bear-opus.mp4
bear-opus.ogg
bear-opus.webm
bear-vp8-webvtt.webm
bear-vp8a-odd-dimensions.webm
bear-vp8a.webm
bear-vp9-blockgroup.webm
bear-vp9-bt709.webm
bear-vp9-i422.webm
bear-vp9-odd-dimensions.webm
bear-vp9-opus.webm
bear-vp9.ivf
bear-vp9.ivf.context
bear-vp9.webm
bear-vp9a-odd-dimensions.webm
bear-vp9a.webm
bear.ac3
bear.adts
bear.aiff
bear.amr
bear.asf
bear.avi
bear.eac3
bear.flac
bear.flv
bear.h261
bear.h263
bear.h264
bear.h264.md5
bear.hevc
bear.m2ts
bear.m3u8
bear.mjpeg
bear.mp4
bear.mpeg
bear.ogv
bear.rm
bear.swf
bear.webm
bear0.ts
bear_128x96_40frames.yuv
bear_192kHz.wav
bear_320x192.bgra
bear_320x192.bgra.json
bear_320x192.i420.yuv
bear_320x192.i420.yuv.json
bear_320x192.nv12.yuv
bear_320x192.nv12.yuv.json
bear_320x192.rgba
bear_320x192.rgba.json
bear_320x192.yv12.yuv
bear_320x192.yv12.yuv.json
bear_320x192_40frames.nv12.yuv
bear_320x192_40frames.nv21.yuv
bear_320x192_40frames.yuv
bear_320x192_40frames.yv12.yuv
bear_3kHz.wav
bear_640x384_40frames.yuv
bear_adts_in_private_stream_1.ts
bear_alaw.wav
bear_audio_longer_than_video.ogv
bear_audio_shorter_than_video.ogv
bear_divx_mp3.avi
bear_gsm_ms.wav
bear_h264_aac.3gp
bear_mpeg4_amrnb.3gp
bear_mpeg4_mp3.avi
bear_mpeg4asp_mp3.avi
bear_mulaw.wav
bear_pcm.wav
bear_pcm_s16be.mov
bear_pcm_s24be.mov
bear_rotate_0.mp4
bear_rotate_180.mp4
bear_rotate_270.mp4
bear_rotate_90.mp4
bear_silent.mp4
bear_silent.ogv
bear_silent.webm
blackwhite.html
blackwhite.png
blackwhite_yuv420p.avi
blackwhite_yuv420p.mp4
blackwhite_yuv420p.ogv
blackwhite_yuv420p.webm
blackwhite_yuv420p_hi10p.mp4
blackwhite_yuv420p_rec709.mp4
blackwhite_yuv422p.mp4
blackwhite_yuv422p.ogv
blackwhite_yuv444p.mp4
blackwhite_yuv444p.ogv
blackwhite_yuv444p.webm
blackwhite_yuvj420p.mp4
blank-1x1.jpg
bunny-opus-intensity-stereo.webm
butterfly-853x480.webm
cleaner.html
colour.webm
colour_unspecified_range.webm
corrupt.mp3
crbug657437.mp4
decode_capabilities_test.html
double-bear.ogv
double-sfx.ogg
eme_load_session_after_close_test.html
eme_player.html
eme_remove_session_test.html
encrypted_frame_size_change.html
four-colors-aspect-4x3.mp4
four-colors-rot-180.mp4
four-colors-rot-270.mp4
four-colors-rot-90.mp4
four-colors-vp9.webm
four-colors.mp4
frame_size_change-av_enc-v.webm
green-a300hz.webm
h264-320x180-frame-0
h264-320x180-frame-1
h264-320x180-frame-2
h264-320x180-frame-3
icy_sfx.mp3
id3_png_test.mp3
id3_test.mp3
layout_change.wav
load_many_videos.html
media_source_player.html
media_suspend_test.html
midstream_config_change.mp3
mse_config_change.html
mse_different_containers.html
multiple_cdm_types.html
multitrack-3video-2audio.webm
negative-audio-timestamps.avi
negative_ts.flac
no_audio_video.webm
no_streams.webm
nonzero-start-time.webm
npot-video.h264
npot-video.h264.md5
opus-trimming-test.mp4
opus-trimming-test.ogg
opus-trimming-test.webm
opus-trimming-video-test.webm
peach_pi-1280x720.jpg
peach_pi-40x23.jpg
peach_pi-41x22.jpg
peach_pi-41x23.jpg
pixel-1280x720-grayscale.jpg
pixel-1280x720-yuv420.jpg
pixel-1280x720-yuv444.jpg
pixel-1280x720.jpg
player.html
rapid_video_change_test.html
red-a500hz.webm
red-green.h264
red-green.h264.md5
resolution_change_500frames-vp8.ivf
resolution_change_500frames-vp9.ivf
sfx-flac.mp4
sfx-flac_frag.mp4
sfx-opus-441.webm
sfx-opus.ogg
sfx-opus_frag.mp4
sfx.adts
sfx.flac
sfx.m4a
sfx.mp2
sfx.mp3
sfx.ogg
sfx_f32le.wav
sfx_s16le.wav
sfx_s24le.wav
sfx_s32le.wav
sfx_u8.wav
speech_16b_mono_44kHz.raw
speech_16b_mono_48kHz.raw
speech_16b_stereo_44kHz.raw
speech_16b_stereo_48kHz.raw
speex_audio_vorbis_video.ogv
spherical.mp4
switch_1080p_720p_240frames.h264
sync2.ogv
sync_192p_20frames.yuv
ten_byte_file
test-25fps.h264
test-25fps.h264.frames.md5
test-25fps.h264.json
test-25fps.h264.md5
test-25fps.vp8
test-25fps.vp8.frames.md5
test-25fps.vp8.json
test-25fps.vp8.md5
test-25fps.vp9
test-25fps.vp9.context
test-25fps.vp9.frames.md5
test-25fps.vp9.json
test-25fps.vp9.md5
test-25fps.vp9_2
test-25fps.vp9_2.frames.md5
test-25fps.vp9_2.json
test-25fps.vp9_2.md5
test_key_system_instantiation.html
tos-h264-opus.mp4
trailing-garbage.mp3
tulip2.webm
vorbis-extradata
vorbis-packet-0
vorbis-packet-1
vorbis-packet-2
vorbis-packet-3
vorbis_audio_wmv_video.mkv
vp8-I-frame-160x240
vp8-I-frame-320x120
vp8-I-frame-320x240
vp8-I-frame-320x480
vp8-I-frame-640x240
vp8-P-frame-320x240
vp8-corrupt-I-frame
vp9-I-frame-1280x720
vp9-I-frame-320x240
vp9-duplicate-frame.webm
vp90_2_10_show_existing_frame2.vp9.ivf
vp90_2_10_show_existing_frame2.vp9.ivf.md5
webaudio_oscillator.html
webm_content_encodings
webm_ebml_element
webm_info_element
webm_vorbis_track_entry
webm_vp8_track_entry

README.md

Media Test Data

[TOC]

Instructions

To add, update or remove a test file, please update the list below.

Please provide full reference and steps to generate the test file so that any people can regenerate or update the file in the future.

List of Test Files

General Test Files

bear-320x240.webm

WebM encode of bear.1280x720.mp4 resized to 320x240.

bear-320x240-video-only.webm

The video track of bear-320x240.webm.

bear-320x240-audio-only.webm

The audio track of bear-320x240.webm.

bear-vp9.webm

VP9 video only WebM file.

bear-vp9-opus.webm

VP9 Video with Opus Audio.

bear-opus.webm

Opus Audio only WebM file.

bear-vp8-webvtt.webm

WebM VP8 video with WebVTT subtitle track.

bear-1280x720.mp4

AAC audio and H264 high profile video.

bear-1280x720-avt_subt_frag.mp4

Fragmented bear_1280x720.mp4 with text track containing srt from bear-vp8-webvtt.webm as a 'subt' handler type.

bear-1280x720-av_frag.mp4 - Fragmented bear_1280x720.mp4.

bear-1280x720-av_frag-initsegment-mvhd_version_0-mvhd_duration_bits_all_set.mp4:

Just the first initialization segment of bear-1280x720_av_frag.mp4, modified to have the mvhd version 0 32-bit duration field set to all 1's.

media/test/data/negative-audio-timestamps.avi

A truncated audio/video file with audio packet timestamps of -1. We need to ensure that these packets arent dropped.

FLAC

bear-flac.mp4

Unfragmented audio-only 44.1kHz FLAC in MP4 file, created using:

ffmpeg -i bear-1280x720.mp4 -map 0:0 -acodec flac -strict -2 bear-flac.mp4

Note: "-strict -2" was required because current ffmpeg libavformat version 57.75.100 indicates that flac in MP4 support is experimental.

bear-flac_frag.mp4

Fragmented audio-only 44.1kHz FLAC in MP4 file, created using:

ffmpeg -i bear-flac.mp4 -acodec copy -strict -2 -movflags frag_keyframe+empty_moov+default_base_moof bear-flac_frag.mp4

bear-flac-192kHz.mp4

Unfragmented audio-only high-sample-rate FLAC in MP4 file, created using:

ffmpeg -i bear-1280x720.mp4 -map 0:0 -acodec flac -strict -2 -ar 192000 bear-flac-192kHz.mp4

bear-flac-192kHz_frag.mp4

Fragmented audio-only high-sample-rate FLAC in MP4 file, created using:

ffmpeg -i bear-flac-192kHz.mp4 -acodec copy -strict -2 -movflags frag_keyframe+empty_moov+default_base_moof bear-flac-192kHz_frag.mp4

sfx-flac.mp4

Unfragmented audio-only 44.1kHz FLAC in MP4 file, created using:

ffmpeg -i sfx.flac -map 0:0 -acodec copy -strict -2 sfx-flac.mp4

sfx-flac_frag.mp4

Fragmented audio-only 44.1kHz FLAC in MP4 file, created using:

ffmpeg -i sfx.flac -map 0:0 -acodec copy -strict -2 -movflags frag_keyframe+empty_moov+default_base_moof sfx-flac_frag.mp4

AV1

Unless noted otherwise, the codec string is av01.0.04M.08 for 8-bit files, and av01.0.04M.10 for 10-bit files.

bear.y4m

Not an AV1 file, but all of the following commands rely on this file. It was created using vpxdec with the following command:

vpxdec path/to/chrome/src/media/test/data/bear-vp9.webm -o bear.y4m

bear-av1.mp4

Created using FFmpeg with the following commands:

ffmpeg -i bear.y4m -vcodec libaom-av1 -strict -2 -y -f mp4 -b:v 50k \
  bear-av1-slowstart.mp4
ffmpeg -i bear-av1-slowstart.mp4 -vcodec copy -strict -2 -y -f mp4 \
  -movflags frag_keyframe+empty_moov+default_base_moof+faststart bear-av1.mp4

bear-av1.webm

Created using aomenc with the following command:

aomenc bear.y4m --lag-in-frames=0 --target-bitrate=50 --fps=30000/1001 \
  --cpu-used=8 --test-decode=fatal -o bear-av1.webm

bear-av1-480x360.webm

Created using FFmpeg and aomenc with the following commands:

ffmpeg -i bear.y4m -vf scale=-1:360 -f rawvideo bear_360P.yuv
aomenc bear_360P.yuv -w 480 -h 360 --fps=30000/1001 --cpu-used=8 \
  --lag-in-frames=0 --test-decode=fatal --target-bitrate=50 \
  -o bear-av1-480x360.webm

bear-av1-640x480.webm

Created using FFmpeg and aomenc with the following commands:

ffmpeg -i bear.y4m -vf scale=-1:480 -f rawvideo bear_480P.yuv
aomenc bear_480P.yuv -w 640 -h 480 --fps=30000/1001 --cpu-used=8 \
  --lag-in-frames=0 --test-decode=fatal --target-bitrate=50 \
  -o bear-av1-640x480.webm

bear-av1-320x180-10bit.mp4

Created using FFmpeg with the following command:

ffmpeg -i bear-av1-320x180-10bit.webm -vcodec copy -f mp4 \
  -movflags frag_keyframe+empty_moov+default_base_moof+faststart \
  bear-av1-320x180-10bit.mp4

bear-av1-320x180-10bit.webm

Created using vpxdec and aomenc with the following commands:

vpxdec bear-320x180-hi10p-vp9.webm -o bear-320x180-10bit.y4m
aomenc bear-320x180-10bit.y4m --lag-in-frames=0 --target-bitrate=50 \
  --fps=30000/1001 --cpu-used=8 --bit-depth=10 --test-decode=fatal \
  -o bear-av1-320x180-10bit.webm

Alpha Channel

bear-vp8a.webm

WebM VP8 video with alpha channel.

bear-vp8a-odd-dimensions.webm

WebM VP8 video with alpha channel and odd dimensions.

VP8 Frame Data

vp8-I-frame-160x240

The first I frame of a 160x240 re-encode of bear-320x240.webm.

vp8-I-frame-320x120

The first I frame of a 320x120 re-encode of bear-320x240.webm.

vp8-I-frame-320x240

The first I frame of bear-320x240.webm.

vp8-P-frame-320x240

The second P frame of bear-320x240.webm.

vp8-I-frame-320x480

The first I frame of a 320x480 re-encode of bear-320x240.webm.

vp8-I-frame-640x240

The first I frame of a 640x240 re-encode of bear-320x240.webm.

vp8-corrupt-I-frame

A copy of vp8-I-frame-320x240 w/ all bytes XORed w/ 0xA5.

Corrupted Files

no_streams.webm

Header, Info, & Tracks element from bear-320x240.webm slightly corrupted so it looks like there are no tracks.

nonzero-start-time.webm

Has the same headers as bear-320x240.webm but the first cluster of this file is the second cluster of bear-320x240.webm. This creates the situation where the media data doesn't start at time 0.

bear-320x240_corrupted_after_init_segment.webm

bear-320x240.webm's initialization segment followed by "CORRUPTED\n"

Live

bear-320x240-live.webm

bear-320x240.webm remuxed w/o a duration and using clusters with unknown sizes.

ffmpeg -i bear-320x240.webm -acodec copy -vcodec copy -f webm pipe:1 > bear-320x240-live.webm

Color / High Bit Depth

colour.webm

a WebM file containing color metadata in MKV/WebM Colour element copied from libwebm/testing/testdata/colour.webm

four-colors.mp4

A 960x540 H.264 mp4 video with 4 color blocks (Y,R,G,B) in every frame. The video playback looks like a still image. An image of 4 color blocks (.png file) is first created by Windows Paint.exe. This image is then used as a basic video frame in making this 2-second video from Mac iStopMotion.

four-colors-aspect-4x3.mp4

Actual video frames are the same as four-colors.mp4, except it specifies an aspect of 4x3 in mp4 meta data.

four-colors-aspect-rot-90.mp4

Actual video frames are the same as four-colors.mp4, except it specifies a rotation of 90 degrees in mp4 meta data.

four-colors-aspect-rot-180.mp4

Actual video frames are the same as four-colors.mp4, except it specifies a rotation of 180 degrees in mp4 meta data.

four-colors-aspect-rot-270.mp4

Actual video frames are the same as four-colors.mp4, except it specifies a rotation of 270 degrees in mp4 meta data.

four-colors-vp9.web

A 960x540 vp9 video with 4 color blocks (Y,R,G,B) in every frame. This is converted from four-colors.mp4 by ffmpeg.

bear-320x180-hi10p.mp4

bear-320x240-vp9_profile2.webm

VP9 encoded video with profile 2 (10-bit, 4:2:0). Codec string: vp09.02.10.10.01.02.02.02.00.

AAC test data from MPEG-DASH demoplayer (44100 Hz, stereo)

Duration of each packet is (1024/44100 Hz), approximately 23.22 ms.

  • aac-44100-packet-0 - timestamp: 0ms
  • aac-44100-packet-1 - timestamp: 23.22ms
  • aac-44100-packet-2 - timestamp: 46.44ms
  • aac-44100-packet-3 - timestamp: 69.66ms

Vorbis test data from bear.ogv (44100 Hz, 16 bits, stereo)

  • vorbis-extradata - Vorbis extradata section
  • vorbis-packet-0 - timestamp: 0ms, duration: 0ms
  • vorbis-packet-1 - timestamp: 0ms, duration: 0ms
  • vorbis-packet-2 - timestamp: 0ms, duration: 0ms
  • vorbis-packet-3 - timestamp: 2902ms, duration: 0ms

MSE MP4 keyframe-metadata versus encoded AVC keyframe-ness test media

bear-640x360-v-2frames_frag.mp4

Just first 2 video frames of bear-640x360-v_frag.mp4, created with:

ffmpeg -i bear-640x360-v_frag.mp4 -vcodec copy -movflags frag_keyframe+empty_moov+default_base_moof \
    -vframes 2 bear-640x360-v-2frames_frag.mp4

It's 1 keyframe + 1 non-keyframe, with container's frame keyframe-ness correct.

bear-640x360-v-2frames-keyframe-is-non-sync-sample_frag.mp4

This is bear-640x360-v-2frames_frag.mp4, with manually updated trun.first_sample_flags: s/0x02000000/0x01010000 (first frame is non-sync-sample, depends on another frame, mismatches compressed h264 first frame's keyframe-ness).

bear-640x360-v-2frames-nonkeyframe-is-sync-sample_frag.mp4

This is bear-640x360-v-2frames_frag.mp4, with manually updated tfhd.default_sample_flags: s/0x01010000/0x02000000 (second frame is sync-sample, doesn't depend on other frames, mismatches compressed h264 second frame's nonkeyframe-ness).

Encrypted Test Files

[1] Test key ID: 30313233343536373839303132333435

[2] Test key: ebdd62f16814d27b68ef122afce4ae3c

[3] KeyIds and Keys are created by left rotating key ID [1] and key [2] using std::rotate for every new crypto period. This is only for testing. The actual key rotation algorithm is often much more complicated.

General

bear-1280x720-a_frag-cenc.mp4

A fragmented MP4 version of the audio track of bear-1280x720.mp4 encrypted (ISO CENC) using key ID [1] and key [2].

bear-1280x720-a_frag-cenc-key_rotation.mp4

A fragmented MP4 version of the audio track of bear-1280x720.mp4 encrypted (ISO CENC) using key ID [1] and key [2] with key rotation [3].

bear-1280x720-a_frag-cenc_clear-all.mp4

Same as bear-1280x720-a_frag-cenc.mp4 but no fragments are encrypted.

bear-1280x720-v_frag-cenc.mp4

A fragmented MP4 version of the video track of bear-1280x720.mp4 encrypted (ISO CENC) using key ID [1] and key [2].

bear-1280x720-v_frag-cenc-key_rotation.mp4

A fragmented MP4 version of the video track of bear-1280x720.mp4 encrypted (ISO CENC) using key ID [1] and key [2] with key rotation [3].

bear-1280x720-v_frag-cenc_clear-all.mp4

Same as bear-1280x720-v_frag-cenc.mp4 but no fragments are encrypted.

bear-1280x720-a_frag-cenc_missing-saiz-saio.mp4

An invalid file similar to bear-1280x720-a_frag-cenc.mp4 but has no saiz and saio boxes. To save space, it has only one encrypted sample.

bear-320x240-v_frag-vp9.mp4

Bear video with VP9 codec in MP4 container. Generated with Shaka Packager at 1e2da22c8809c17cc4dfdb45924ec45e42058393:

packager in=bear-vp9.webm,stream=video,out=bear-320x240-v_frag-vp9.mp4

bear-320x240-v_frag-vp9-cenc.mp4

Same as above, with video encrypted using key ID [1] and key [2]. Generated with Shaka Packager at 1e2da22c8809c17cc4dfdb45924ec45e42058393:

packager in=bear-vp9.webm,stream=video,out=bear-320x240-v_frag-vp9-cenc.mp4
         --enable_fixed_key_encryption --key_id 30313233343536373839303132333435
         --key ebdd62f16814d27b68ef122afce4ae3c --clear_lead 0
         --pssh 0000003470737368010000001077EFECC0B24D02ACE33C1E52E2FB4B000000013031323334353637383930313233343500000000000000467073736800000000EDEF8BA979D64ACEA3C827DCD51D21ED000000261210303132333435363738393031323334351A00221030313233343536373839303132333435

bear-320x240-16x9-aspect-av_enc-av.webm

bear-320x240-16x9-aspect.webm with audio & video encrypted using key ID [1] and key [2]

bear-320x240-av_enc-av.webm

bear-320x240.webm with audio & video encrypted using key ID [1] and key [2].

bear-320x240-av_enc-av_clear-1s.webm

Same as bear-320x240-av_enc-av.webm but with no frames in the first second encrypted.

bear-320x240-av_enc-av_clear-all.webm

Same as bear-320x240-av_enc-av.webm but with no frames encrypted.

bear-320x240-v-vp9_profile2_subsample_cenc-v.webm

Encrypted Bear video with VP9 codec (profile 2) in WebM container, using key ID [1] and key [2]. Codec string: vp09.02.10.10.01.02.02.02.00. Generated with Shaka Packager at 4ba5bec66054cfd4af13c07ac62a97f1a1a2e5f9:

packager in=bear-320x240-vp9_profile2.webm,stream=video,out=bear-320x240-v-vp9_profile2_subsample_cenc-v.webm
         --enable_fixed_key_encryption --key_id 30313233343536373839303132333435
         --key ebdd62f16814d27b68ef122afce4ae3c --clear_lead 0
         --pssh 0000003470737368010000001077EFECC0B24D02ACE33C1E52E2FB4B000000013031323334353637383930313233343500000000000000467073736800000000EDEF8BA979D64ACEA3C827DCD51D21ED000000261210303132333435363738393031323334351A00221030313233343536373839303132333435

bear-320x240-v-vp9_profile2_subsample_cenc-v.mp4

Same as above, in MP4 container. Codec string: vp09.02.10.10.01.02.02.02.00. Generated with Shaka Packager at 4ba5bec66054cfd4af13c07ac62a97f1a1a2e5f9:

packager in=bear-320x240-vp9_profile2.webm,stream=video,out=bear-320x240-v-vp9_profile2_subsample_cenc-v.mp4
         --enable_fixed_key_encryption --key_id 30313233343536373839303132333435
         --key ebdd62f16814d27b68ef122afce4ae3c --clear_lead 0
         --pssh 0000003470737368010000001077EFECC0B24D02ACE33C1E52E2FB4B000000013031323334353637383930313233343500000000000000467073736800000000EDEF8BA979D64ACEA3C827DCD51D21ED000000261210303132333435363738393031323334351A00221030313233343536373839303132333435

bear-640x360-av_enc-av.webm

bear-640x360.webm with audio & video encrypted using key ID [1] and key [2].

bear-320x240-av_enc-v.webm

bear-320x240.webm with video track encrypted using key ID [1] and key [2].

bear-320x240-av_enc-a.webm

bear-320x240.webm with audio track encrypted using key ID [1] and key [2].

bear-320x240-v_enc-v.webm

bear-320x240-video-only.webm encrypted using key ID [1] and key [2].

bear-320x240-v-vp9_fullsample_enc-v.webm

bear-vp9.webm VP9 video only encrypted using key ID [1] and key [2] with full sample encryption.

bear-320x240-v-vp9_subsample_enc-v.webm

bear-vp9.webm VP9 video only encrypted using key ID [1] and key [2] with subsample encryption.

bear-320x240-opus-a_enc-a.webm

bear-opus.webm encrypted using key ID [1] and key [2].

bear-320x240-opus-av_enc-av.webm

bear-vp9-opus.webm with audio & video encrypted using key ID [1] and key [2].

bear-320x240-opus-av_enc-v.webm

bear-vp9-opus.webm with video track encrypted using key ID [1] and key [2].

bear-640x360-a_frag-cenc.mp4

A fragmented MP4 version of the audio track of bear-640x360.mp4 encrypted (ISO CENC) using key ID [1] and key [2].

Note: bear-640x360.mp4 file does not exist any more. Files encrypted from it has AAC audio and H264 high profile video (if applicable).

bear-640x360-a_frag-cenc-key_rotation.mp4

A fragmented MP4 version of the audio track of bear-640x360.mp4 encrypted (ISO CENC) using key ID [1] and key [2] with key rotation [3].

bear-640x360-v_frag-cenc-mdat.mp4

A fragmented MP4 version of the video track of bear-640x360.mp4 encrypted (ISO CENC) using key ID [1] and key [2] and with sample encryption auxiliary information in the beginning of mdat box.

bear-640x360-v_frag-cenc-senc.mp4

Same as above, but with sample encryption information stored in SampleEncryption ('senc') box.

bear-640x360-v_frag-cenc-senc-no-saiz-saio.mp4

Same as above, but without saiz and saio boxes.

bear-640x360-v_frag-cenc-key_rotation.mp4

A fragmented MP4 version of the video track of bear-640x360.mp4 encrypted (ISO CENC) using key ID [1] and key [2] with key rotation [3].

bear-640x360-a_frag-cbcs.mp4

  • Same as previous instructions, except source is bear-640x360-a_frag.mp4 and no clear lead (i.e. --clear_lead 0).

bear-flac-cenc.mp4

Encrypted version of bear-flac.mp4, encrypted by Shaka Packager v2.1.0 using key ID [1] and key [2]. Sample encryption information stored in SampleEncryption ('senc') box (in each encrypted fragment).

packager in=bear-flac.mp4,stream=audio,output=bear-flac-cenc.mp4
         --enable_raw_key_encryption
         --clear_lead 0.5
         --segment_duration 0.5
         --keys label=:key_id=30313233343536373839303132333435:key=ebdd62f16814d27b68ef122afce4ae3c
         --pssh 000000327073736800000000EDEF8BA979D64ACEA3C827DCD51D21ED000000121210303132333435363738393031323334350000003470737368010000001077EFECC0B24D02ACE33C1E52E2FB4B000000013031323334353637383930313233343500000000

bear-a_enc-a.webm

bear-320x240-audio-only.webm encrypted using key ID [1] and key [2].

frame_size_change-av_enc-v.webm

third_party/WebKit/LayoutTests/media/resources/frame_size_change.webm encrypted using key ID [1] and key [2].

AV1

Unless noted otherwise, the codec string is av01.0.04M.08 for 8-bit files, and av01.0.04M.10 for 10-bit files.

bear-av1-cenc.mp4

Encrypted version of bear-av1.mp4. Encrypted by Shaka Packager built locally at commit 53aa775ea488c0ffd3a2e1cb78ad000154e414e1 using key ID [1] and key [2].

packager in=bear-av1.mp4,stream=video,output=bear-av1-cenc.mp4
         --enable_raw_key_encryption --protection_scheme cenc --clear_lead 0
         --keys label=:key_id=30313233343536373839303132333435:key=ebdd62f16814d27b68ef122afce4ae3c
         --pssh 000000327073736800000000EDEF8BA979D64ACEA3C827DCD51D21ED000000121210303132333435363738393031323334350000003470737368010000001077EFECC0B24D02ACE33C1E52E2FB4B000000013031323334353637383930313233343500000000

bear-av1-cenc.webm

Same as bear-av1-cenc.mp4, except that the output name is bear-av1-cenc.webm.

bear-av1-320x180-10bit-cenc.mp4

Same as bear-av1-cenc.mp4, except that the input name is bear-av1-320x180-10bit.mp4, and the output name is bear-av1-320x180-10bit-cenc.mp4.

bear-av1-320x180-10bit-cenc.webm

Same as bear-av1-cenc.mp4, except that the input name is bear-av1-320x180-10bit.webm, and the output name is bear-av1-320x180-10bit-cenc.webm.

Encryption Scheme Test

  • bear-640x360-v_frag-cenc.mp4
  • bear-640x360-v_frag-cbc1.mp4
  • bear-640x360-v_frag-cbcs.mp4
  • bear-640x360-v_frag-cens.mp4

Encrypted versions of bear-640x360-v_frag.mp4, encrypted by Shaka Packager v2.0.0 using key ID [1] and key [2]. Sample encryption information stored in SampleEncryption ('senc') box (in each encrypted fragment).

Command: (replace both places of 'cenc' with desired scheme)

packager in=bear-640x360-v_frag.mp4,stream=video,output=bear-640x360-v-cenc.mp4
         --enable_raw_key_encryption
         --protection_scheme cenc
         --clear_lead 0.5
         --segment_duration 0.5
         --keys label=:key_id=30313233343536373839303132333435:key=ebdd62f16814d27b68ef122afce4ae3c
         --pssh 000000327073736800000000EDEF8BA979D64ACEA3C827DCD51D21ED000000121210303132333435363738393031323334350000003470737368010000001077EFECC0B24D02ACE33C1E52E2FB4B000000013031323334353637383930313233343500000000

The 'pssh' data includes entries for both Widevine and Common SystemID. It was generated from concatenating the output of:

shaka/packager/tools/pssh/pssh-box.py --widevine-system-id --key-id 30313233343536373839303132333435 --hex
shaka/packager/tools/pssh/pssh-box.py --common-system-id --key-id 30313233343536373839303132333435 --hex

HLS

bear-1280x720-hls.ts

Produced using Apple's mediafilesegmenter tool with bear-1280x720.ts as input, with no encryption.

mediafilesegmenter -t 10 -start-segments-with-iframe -f 'output_clear/' bear-1280x720.ts

bear-1280x720-hls-sample-aes.ts

Produced using Apple's mediafilesegmenter tool also with bear-1280x720.ts as input, but with SAMPLE_AES encryption. (Additional TS packets were constructed manually and prepended to convey the encryption metadata, notably key id and IV).

mediafilesegmenter -S -P -k 'key_iv.bin' -t 10 -start-segments-with-iframe -f 'output/' bear-1280x720.ts

bear-1280x720-hls-with-CAT.ts

Same as bear-1280x720-hls.ts but with an extra TS packet prepended. This is the same as the first of the metadata packets in bear-1280x720-hls-sample-aes.ts. Its presence indicates that SAMPLE_AES encryption may occur later in the stream, and causes the initial audio and video configs to have an encryption_scheme (of AES-CBC). The actual data is unencrypted, which is indicated by the lack of key ID and IV. This ends up very similar to how clear leader of an otherwise encrypted stream can occur in MP4.

Container Test Files

Additional containers derived from bear.ogv:

  • bear.ac3 -- created using avconv -i bear.ogv -f ac3 -b 192k bear.ac3.
  • bear.adts -- created using avconv -i bear.ogv -f adts -strict experimental bear.adts.
  • bear.aiff -- created using avconv -i bear.ogv -f aiff bear.aiff.
  • bear.asf -- created using avconv -i bear.ogv -f asf bear.asf.
  • bear.avi -- created using avconv -i bear.ogv -f avi -b 192k bear.avi.
  • bear.eac3 -- created using avconv -i bear.ogv -f eac3 bear.eac3.
  • bear.flac -- created using avconv -i bear.ogv -f flac bear.flac.
  • bear.flv -- created using avconv -i bear.ogv -f flv bear.flv.
  • bear.h261 -- created using avconv -i bear.ogv -f h261 -s:0 cif bear.h261.
  • bear.h263 -- created using avconv -i bear.ogv -f h263 -s:0 cif bear.h263.
  • bear.m2ts -- created using avconv -i bear.ogv -f mpegts bear.m2ts.
  • bear.mjpeg -- created using avconv -i bear.ogv -f mjpeg bear.mjpeg.
  • bear.mpeg -- created using avconv -i bear.ogv -f mpeg bear.mpeg.
  • bear.rm -- created using avconv -i bear.ogv -f rm -b 192k bear.rm.
  • bear.swf -- created using avconv -i bear.ogv -f swf -an bear.swf.

VDA Test Files:

test-25fps

test-25fps.h264

Using ffmpeg SVN-r0.5.9-4:0.5.9-0ubuntu0.10.04.1 @ WebKit r122718, generated with:

ffmpeg -i third_party/WebKit/LayoutTests/media/content/test-25fps.mp4 \
      -vcodec copy -vbsf h264_mp4toannexb -an test-25fps.h264

test-25fps.h264.md5

MD5s of RGB thumbnail rendered version of test-25fps.h264 decoded with Intel VAAPI and V4L2VDA on various platforms. Written out by video_decode_accelerator_unittest. These differ between implementations because color space-converted frames are not specified to the last bit and GLES shader/texture filtering precision varies.

test-25fps.h264.frames.md5:

MD5s of frame which is decoded with Intel VAAPI and V4L2 decoders and is converted to I420 pixel format. Written out by video_decode_accelerator_unittest when input file is test-25fps.h264. This value must be identical on all platforms.

test-25fps.h264.json:

JSON file that contains all metadata related to test-25fps.h264, used by the video_decode_accelerator_tests. This includes the video codec, resolution and md5 checksums of individual video frames when converted to the I420 format.

test-25fps.vp8

ffmpeg git-2012-07-19-a8d8e86, libvpx ToT 7/19, chromium r147247, mkvextract v5.0.1

ffmpeg -i test-25fps.h264 -vcodec libvpx -an test-25fps.webm && \
    mkvextract tracks test-25fps.webm 1:test-25fps.vp8 && rm test-25fps.webm

test-25fps.vp8.md5

MD5 of RGB thumbnail rendered version of test-25fps.vp8. Written out by video_decode_accelerator_unittest.

test-25fps.vp8.frames.md5:

MD5s of frame which is decoded with Intel VAAPI and V4L2 decoders and is converted to I420 pixel format. Written out by video_decode_accelerator_unittest when input file is test-25fps.vp8. This value must be identical on all platforms.

test-25fps.vp8.json:

JSON file that contains all metadata related to test-25fps.vp8, used by the video_decode_accelerator_tests. This includes the video codec, resolution and md5 checksums of individual video frames when converted to the I420 format.

test-25fps.vp9

avconv 9.16-6:9.16-0ubuntu0.14.04.1, vpxenc v1.3.0

avconv -i test-25fps.h264 -c:v rawvideo -pix_fmt yuv420p test-25fps_i420.yuv
vpxenc test-25fps_i420.yuv -o test-25fps.vp9 --codec=vp9 -w 320 -h 240 --ivf \
    --profile=0 --kf-min-dist=0 --kf-max-dist=150 --lag-in-frames=24 \
    --drop-frame=0 --target-bitrate=140 --cq-level=23 --min-q=4 --max-q=56 \
    --static-thresh=1000 --arnr-maxframes=7 --arnr-strength=5 --arnr-type=3 \
    --cpu-used=1 --good --tile-columns=1 --passes=2 --threads=1 --fps=25/1 \
    --end-usage=cq --auto-alt-ref=1 --bias-pct=50 --minsection-pct=0 \
    --maxsection-pct=2000 --undershoot-pct=100

test-25fps.vp9.md5

MD5 of RGB thumbnail rendered version of test-25fps.vp9. Written out by video_decode_accelerator_unittest.

test-25fps.vp9.frames.md5:

MD5s of frame which is decoded with Intel VAAPI and V4L2 decoders and is converted to I420 pixel format. Written out by video_decode_accelerator_unittest when input file is test-25fps.vp9. This value must be identical on all platforms.

test-25fps.vp9.json:

JSON file that contains all metadata related to test-25fps.vp9, used by the video_decode_accelerator_tests. This includes the video codec, resolution and md5 checksums of individual video frames when converted to the I420 format.

test-25fps.vp9_2

Similar to test-25fps.vp9, substituting the option --profile=0 with --profile=2 --bit-depth=10 to vpxenc. (Note that vpxenc must have been configured with the option --enable-vp9-highbitdepth).

test-25fps.vp9_2.md5

MD5 of RGB thumbnail rendered version of test-25fps.vp9_2. Written out by video_decode_accelerator_unittest.

test-25fps.vp9_2.frames.md5:

MD5s of frame which is decoded with Intel VAAPI and V4L2 decoders and is converted to I420 pixel format. Written out by video_decode_accelerator_unittest when input file is test-25fps.vp9_2. This value must be identical on all platforms.

test-25fps.vp9_2.json:

JSON file that contains all metadata related to test-25fps.vp9_2, used by the video_decode_accelerator_tests. This includes the video codec, resolution and md5 checksums of individual video frames when converted to the I420 format.

VP9 video with show_existing_frame flag

vp90_2_10_show_existing_frame2.vp9.ivf

VP9 video with show_existing_frame flag. The original test stream comes from Android CTS.

ffmpeg -i vp90_2_17_show_existing_frame.vp9 -vcodec copy -an -f ivf \
    vp90_2_17_show_existing_frame.vp9.ivf

vp90_2_10_show_existing_frame2.vp9.ivf.md5

MD5 of RGB thumbnail rendered version of vp90_2_10_show_existing_frame2.vp9.ivf. Written out by video_decode_accelerator_unittest.

bear

bear.h264

Using ffmpeg version 0.8.6-4:0.8.6-0ubuntu0.12.04.1, generated with bear.mp4 (https://chromiumcodereview.appspot.com/10805089):

ffmpeg -i bear.mp4 -vcodec copy -vbsf h264_mp4toannexb -an bear.h264

bear.h264.md5

MD5s of RGB thumbnail rendered version of bear.h264 decoded with Intel VAAPI on Ivy Bridge and Sandy Bridge and V4L2VDA on Exynos. Written out by video_decode_accelerator_unittest. These differ between implementations because color space-converted frames are not specified to the last bit and GLES shader/texture filtering precision varies.

npot-video

npot-video.h264

Using ffmpeg version 0.8.6-4:0.8.6-0ubuntu0.12.04.1, generated with npot-video.mp4 (https://codereview.chromium.org/8342021):

ffmpeg -i npot-video.mp4 -vcodec copy -vbsf h264_mp4toannexb -an npot-video.h264

npot-video.h264.md5

MD5s of RGB thumbnail rendered version of npot-video.h264 decoded with Intel VAAPI on Ivy Bridge and Sandy Bridge and V4L2VDA on Exynos. Written out by video_decode_accelerator_unittest. These differ between implementations because color space-converted frames are not specified to the last bit and GLES shader/texture filtering precision varies.

red-green

red-green.h264

Using ffmpeg version 0.8.6-4:0.8.6-0ubuntu0.12.04.1, generated with red-green.mp4 (https://codereview.chromium.org/8342021):

ffmpeg -i red-green.mp4 -vcodec copy -vbsf h264_mp4toannexb -an red-green.h264

red-green.h264.md5

MD5s of RGB thumbnail rendered version of red-green.h264 decoded with Intel VAAPI on Ivy Bridge and Sandy Bridge and V4L2VDA on Exynos. Written out by video_decode_accelerator_unittest. These differ between implementations because color space-converted frames are not specified to the last bit and GLES shader/texture filtering precision varies.

Misc Test Files

resolution_change_500frames

resolution_change_500frames-vp8.ivf

resolution_change_500frames-vp9.ivf

Dumped compressed stream of videos on http://crosvideo.appspot.com manually changing resolutions at random. Those contain 144p, 240p, 360p, 480p, 720p, and 1080p frames. Those frame sizes can be found by

ffprobe -show_frames resolution_change_500frames.vp8

switch_1080p_720p_240frames

switch_1080p_720p_240frames.h264

Extract 240 frames using ffmpeg from http://commondatastorage.googleapis.com/chromiumos-test-assets-public/MSE/switch_1080p_720p.mp4.

The frame sizes change between 1080p and 720p every 24 frames.

VEA test files:

bear_128x96_40frames.yuv

First 40 raw i420 frames of bear-1280x720.mp4 scaled down to 128x96 for video_encode_accelerator_unittest. This is the size that could be encoded with the lowest H264 level 1.0 in 30 fps.

bear_320x192_40frames.yuv

First 40 raw i420 frames of bear-1280x720.mp4 scaled down to 320x192 for video_encode_accelerator_unittest.

bear_320x192_40frames.nv12.yuv

First 40 raw nv12 frames of bear-1280x720.mp4 scaled down to 320x192 for video_encode_accelerator_unittest.

bear_320x192_40frames.nv21.yuv

First 40 raw nv21 frames of bear-1280x720.mp4 scaled down to 320x192 for video_encode_accelerator_unittest.

bear_320x192_40frames.yv12.yuv

First 40 raw yv12 frames of bear-1280x720.mp4 scaled down to 320x192 for video_encode_accelerator_unittest.

ImageProcessor Test Files

bear_320x192.i420.yuv

First frame of bear_320x192_40frames.yuv for image_processor_test.

bear_320x192.i420.yuv.json

Metadata describing bear_320x192.i420.yuv.

bear_320x192.nv12.yuv

First frame of bear_320x192_40frames.nv12.yuv for image_processor_test.

bear_320x192.nv12.yuv.json

Metadata describing bear_320x192.nv12.yuv.

bear_320x192.yv12.yuv

First frame of bear_320x192_40frames.yv12.yuv for image_processor_test.

bear_320x192.rgba

RAW RGBA format data. This data is created from bear_320x192.i420.yuv by the following command. Alpha channel is always 0xFF because of that. ffmpeg -s 320x192 -pix_fmt yuv420p -i bear_320x192.i420.yuv -vcodec rawvideo -f image2 -pix_fmt rgba bear_320x192.rgba

bear_320x192.bgra

RAW BGRA format data. This data is created from bear_320x192.i420.yuv by the following command. Alpha channel is always 0xFF because of that. ffmpeg -s 320x192 -pix_fmt yuv420p -i bear_320x192.i420.yuv -vcodec rawvideo -f image2 -pix_fmt rgba bear_320x192.bgra

VP9 parser test files:

bear-vp9.ivf

Created using "avconv -i bear-vp9.webm -vcodec copy -an -f ivf bear-vp9.ivf".

bear-vp9.ivf.context

test-25fps.vp9.context

Manually dumped from libvpx with bear-vp9.ivf and test-25fps.vp9. See vp9_parser_unittest.cc for description of their format.

WebM files for testing multiple tracks.

green-a300hz.webm

WebM file containing 12 seconds of solid green video + 300Hz sine wave audio

red-a500hz.webm

WebM file containing 10 seconds of solid red video + 500Hz sine wave audio

Created with the following commands:

ffmpeg -f lavfi -i color=c=green:size=160x120 -t 12 -c:v libvpx green.webm
ffmpeg -f lavfi -i color=c=red:size=320x240 -t 10 -c:v libvpx red.webm
ffmpeg -f lavfi -i "sine=frequency=300:sample_rate=48000" -t 12 -c:v libvpx a300hz.webm
ffmpeg -f lavfi -i "sine=frequency=500:sample_rate=48000" -t 10 -c:v libvpx a500hz.webm
ffmpeg -i green.webm -i a300hz.webm -map 0 -map 1 green-a300hz.webm
ffmpeg -i red.webm -i a500hz.webm -map 0 -map 1 red-a500hz.webm

JPEG Test Files

pixel-1280x720.jpg

Single MJEPG encoded frame of 1280x720, captured on Chromebook Pixel. This image does not have Huffman table.

pixel-1280x720-grayscale.jpg

A version of pixel-1280x720.jpg converted to grayscale using:

jpegtran -grayscale pixel-1280x720.jpg > pixel-1280x720-grayscale.jpg

Then, using a hex editor, the Huffman table sections were removed from the resulting file.

pixel-1280x720-yuv420.jpg

A version of pixel-1280x720.jpg converted to 4:2:0 subsampling using:

convert pixel-1280x720.jpg -sampling-factor 4:2:0 -define jpeg:optimize-coding=false pixel-1280x720-yuv420.jpg

Then, using a hex editor, the Huffman table sections were removed from the resulting file.

pixel-1280x720-yuv444.jpg

A version of pixel-1280x720.jpg converted to 4:4:4 subsampling using:

convert pixel-1280x720.jpg -sampling-factor 4:4:4 -define jpeg:optimize-coding=false pixel-1280x720-yuv444.jpg

Then, using a hex editor, the Huffman table sections were removed from the resulting file.

peach_pi-1280x720.jpg

Single MJPEG encoded frame of 1280x720, captured on Samsung Chromebook 2(13"). This image has Huffman table.

blank-1x1.jpg

1x1 small picture to test special cases.

MP4 files with non-square pixels.

bear-640x360-non_square_pixel-with_pasp.mp4

Size in TKHD is (639.2x360) and size in STSD is (470x360). A PASP box is present with hSpacing=34 and vSpacing=25. Note that 470.0 * 34 / 25 = 639.2.

bear-640x360-non_square_pixel-without_pasp.mp4

Size in TKHD is (639.2x360) and size in STSD is (470x360). No PASP box is present.

MP4 files with AC3 and EAC3 audio

bear-ac3-only-frag.mp4

AC3 audio in framented MP4, generated with

ffmpeg -i bear.ac3 -acodec copy -movflags frag_keyframe bear-ac3-only-frag.mp4

bear-eac3-only-frag.mp4

EAC3 audio in framented MP4, generated with

ffmpeg -i bear.eac3 -acodec copy -movflags frag_keyframe bear-eac3-only-frag.mp4

Mpeg2ts stream with AAC HE audio that uses SBR

bear-1280x720-aac_he.ts

Generated by the following command:

ffmpeg -i bear-1280x720.mp4 -c:v libx264 -c:a libfdk_aac -profile:a aac_he  bear-1280x720-aac_he.ts

Mpeg2ts streams MP3 audio

bear-audio-mp4a.6B.ts

Generated by the following commands:

ffmpeg -i bear_pcm.wav -c:a mp3 -ar 44100 bear-audio-mp4a.6B.ts

bear-audio-mp4a.69.ts

Generated by the following commands:

ffmpeg -i bear_pcm.wav -c:a mp3 -ar 22050 bear-audio-mp4a.69.ts

MP4 file with HEVC

bear-320x240-v_frag-hevc.mp4

HEVC video stream in fragmented MP4 container, generated with

ffmpeg -i bear-320x240.webm -c:v libx265 -an -movflags faststart+frag_keyframe bear-320x240-v_frag-hevc.mp4

Multi-track MP4 file

(c) copyright 2008, Blender Foundation / www.bigbuckbunny.org

bbb-320x240-2video-2audio.mp4

Generated using following steps:

  1. Download the source file with 1 video and 1 audio stream.
    wget http://distribution.bbb3d.renderfarming.net/video/mp4/bbb_sunflower_1080p_30fps_normal.mp4
    
  2. Generate a scaled down to 320x240 video + 2 channel AAC LC audio from the source file.
    ffmpeg -i bbb_sunflower_1080p_30fps_normal.mp4 -c:v libx264 -crf 36 -vf  scale=320:240 -c:a libfdk_aac -ac 2 -t 24 bbb1.mp4
    
  3. Generate a file with the original video scaled down to 320x240 and flipped upside down and sine wave instead of audio.
    ffmpeg -i bbb_sunflower_1080p_30fps_normal.mp4 -f lavfi -i "sine=frequency=500:sample_rate=48000" -map 0:v -map 1:a -c:v libx264 -crf 36 -vf scale=320:240,vflip -c:a libfdk_aac -ac 2 -t 24 bbb2.mp4
    
  4. Combine the two files generated above into a single fragmented .mp4 file with 2 video and 2 audio tracks.
    ffmpeg -i bbb1.mp4 -i bbb2.mp4 -map 0:0 -map 0:1 -map 1:0 -map 1:1 -c:v copy -c:a copy -movflags frag_keyframe+omit_tfhd_offset+separate_moof bbb-320x240-2video-2audio.mp4
    

Multi-track WebM file

multitrack-3video-2audio.webm

Generated using following commands:

ffmpeg -f lavfi -i color=c=red:size=320x240 -t 5 -c:v libvpx red.webm
ffmpeg -f lavfi -i color=c=green:size=320x240 -t 5 -c:v libvpx green.webm
ffmpeg -f lavfi -i color=c=blue:size=160x120 -t 10 -c:v libvpx blue.webm
ffmpeg -f lavfi -i "sine=frequency=300:sample_rate=48000" -t 10 -c:v libvpx a300hz.webm
ffmpeg -f lavfi -i "sine=frequency=500:sample_rate=48000" -t 5 -c:v libvpx a500hz.webm
ffmpeg -i red.webm -i green.webm -i blue.webm -i a300hz.webm -i a500hz.webm -map 0 -map 1 -map 2 -map 3 -map 4  multitrack-3video-2audio.webm

Opus pre-skip and end-trimming test clips

https://people.xiph.org/~greg/opus_testvectors/

  • opus-trimming-test.mp4
  • opus-trimming-test.ogg
  • opus-trimming-test.webm
You can’t perform that action at this time.