1s Color AVI
1s Color AVI は のサンプル(ファイル形式テスト用に生成)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
color-1s.aviVideo
古くから使われるRIFFベースの動画コンテナ。先頭RIFFと8バイト目のAVIで識別します。
52 49 46 46 RIFFSIGNATURE = bytes.fromhex("52494646")
OFFSET = 0
def is_avi(path: str) -> bool:
with open(path, "rb") as f:
f.seek(OFFSET)
head = f.read(len(SIGNATURE))
return head == SIGNATUREconst SIGNATURE = [0x52, 0x49, 0x46, 0x46];
const OFFSET = 0;
// bytes: a Uint8Array / Buffer holding the start of the file
export function isAvi(bytes) {
return SIGNATURE.every((byte, i) => bytes[OFFSET + i] === byte);
}package fileid
import "bytes"
var isaviSignature = []byte{0x52, 0x49, 0x46, 0x46}
const isaviOffset = 0
func IsAvi(b []byte) bool {
end := isaviOffset + len(isaviSignature)
if len(b) < end {
return false
}
return bytes.Equal(b[isaviOffset:end], isaviSignature)
}const SIGNATURE: &[u8] = &[0x52, 0x49, 0x46, 0x46];
const OFFSET: usize = 0;
fn is_avi(bytes: &[u8]) -> bool {
bytes.get(OFFSET..OFFSET + SIGNATURE.len()) == Some(SIGNATURE)
}<?php
$signature = "\x52\x49\x46\x46";
$offset = 0;
function is_avi(string $bytes): bool {
global $signature, $offset;
return substr($bytes, $offset, strlen($signature)) === $signature;
}Audio Video Interleave は動画プレビュー、エンコード確認、レスポンシブUIのテスト、アップロード処理で使われます。コンテナとコーデックは別の問題なので、先頭バイトだけでは再生可否は判断できません。
メディアファイルも、壊れたメタデータ・極端な寸法・長い再生時間・異常なチャンクでデコーダに負荷をかけることがあります。処理前にサイズ・寸法・長さを読み取ってください。
11 個のサンプルで、再生時間の処理・再生開始・メタデータ読み取り・ダウンロード挙動をテストできます。
1s Color AVI は のサンプル(ファイル形式テスト用に生成)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
color-1s.aviCloud Flight AVI 0.5s は のサンプル(Wikimedia Commons を基にしています)、160×284、0.5秒。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
01-flight-over-clouds.avi9bacd84254db1f020e974d34a6acf40d57bc86dc7a69ba4e8bd4122d10efa0e7Cloud Flight AVI 1s は のサンプル(Wikimedia Commons を基にしています)、240×426、1秒。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
02-flight-over-clouds.avi29980286d0c22d8a0418c482847f1ba80100a063f9943f0ac5e5ba1cf09a1aceCloud Flight AVI 1.5s は のサンプル(Wikimedia Commons を基にしています)、320×568、1.5秒。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
03-flight-over-clouds.avid448039c1c8b5ed42d67c4a9be4fee29842f3b463a247c3fb7f7d0cbd223f534Cloud Flight AVI 2s は のサンプル(Wikimedia Commons を基にしています)、480×854、2秒。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
04-flight-over-clouds.avi0f4b6d85a95e8bd68c5b9893bc90326a59d8fcaba904a3abae0fbf63c3a7d5a3Cloud Flight AVI 3s は のサンプル(Wikimedia Commons を基にしています)、640×1138、3秒。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
05-flight-over-clouds.avief8d0f98bf110b00aec9fcb9815f18807926e2cbaceba6a45497aa498eaf0018Cloud Flight AVI 4s は のサンプル(Wikimedia Commons を基にしています)、720×1280、4秒。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
06-flight-over-clouds.avi58d53a18c96c5673196ee9dd416cd8fe67030180a57ead0094e9437051e5da37Cloud Flight AVI 5s は のサンプル(Wikimedia Commons を基にしています)、854×1518、5秒。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
07-flight-over-clouds.avi1d10e9598ce4b4c74b95b70262b202edd93e63c6d82244771bd2896e625ad076Cloud Flight AVI 6s は のサンプル(Wikimedia Commons を基にしています)、960×1706、6秒。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
08-flight-over-clouds.avieae4a9a28d58e32bf327d776e653ed931b6550b855b0b007484c9b08337dd130Cloud Flight AVI 8s は のサンプル(Wikimedia Commons を基にしています)、1080×1920、8秒。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
09-flight-over-clouds.avi8e7a0150bf6176e49160fd2931151f21cde6a441ffeb99e0194e43ecd6a2be4aNASA Clouds AVI は のサンプル(NASA Image and Video Library を基にしています)、480×270、2秒。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
nasa-clouds-orbit.avi126b9edfd4162627d8f70b6ea509af92e1b6bf0ffc99347d3d97820ff1f1320aAudio Video Interleave ファイルはバイトシグネチャ 52 49 46 46 ("RIFF") で始まります。拡張子に頼らず、この先頭バイトを読み取って形式を判定してください。
Audio Video Interleave のMIMEタイプは video/x-msvideo です。
Audio Video Interleave ファイルは .avi 拡張子を使います。拡張子は慣習にすぎず中身を保証しないため、シグネチャや構造のチェックと組み合わせてください。