Flash 動画 (.flv)
Adobe 標準Flash Video(FLV)は、Adobe Flash Player ブラウザプラグインを介してウェブ上で同期された動画と音声を配信するために、Macromedia および Adobe によって開発されたコンテナ形式です。
調査とメタデータ
オペレーティングシステムやファイル解析ツールは、先頭のバイナリバイトシーケンスを検査することで FLV ファイルを識別します:
バイトレベルのヘッダーシグネチャ (マジックバイト)
オペレーティングシステムやファイル解析ツールは、先頭のバイナリバイトシーケンスを検査することで FLV ファイルを識別します:
16進数シグネチャ (オフセット 0):
46 4C 56 01ASCII表現: FLV
標準化: Adobe Systems Flash Video File Format Specification
技術仕様
| コンテナアーキテクチャ | Tag-based streaming container with interleaved audio, video, and script data tags |
| 圧縮 | Sorenson Spark, VP6, or H.264 video with MP3 or AAC audio |
| バイトエンディアン | Big-Endian bit and byte ordering |
| 色空間 | YUV 4:2:0 |
| チャンネルと構造 | Mono and Stereo audio with video stream |
| 最大寸法 | Commonly up to 1080p |
| 透過性 | Alpha channel transparency supported in VP6 video streams |
| ストリーミングとプログレッシブ | Native support for RTMP (Real-Time Messaging Protocol) live streaming |
技術比較マトリックス: FLV 対 競合製品
| 技術属性 | FLV (現在) | MP4 | WEBM | MKV |
|---|---|---|---|---|
| 今日のブラウザサポート | 0%(すべてのモダンブラウザから完全に削除済み) | すべてのブラウザで 100% 普遍的 | 100% モダンブラウザでサポート | デスクトップメディアプレイヤーが必要 |
| 標準化 | Adobe 独自のプロプライエタリ仕様 | ISO/IEC 国際オープン標準 | W3C / WebM オープン標準 | オープンソースの Matroska 標準 |
| モバイルデバイスでの再生 | iOS および現代の Android でネイティブ非対応 | ネイティブハードウェアサポート | ネイティブハードウェアサポート | VLC / サードパーティアプリ経由でサポート |
| アルファ透明度 | On2 VP6 コーデック経由でサポート | 限定的(canvas または WebCodecs が必要) | ネイティブアルファチャンネルサポート(VP9) | VP9/ProRes ストリームでサポート |
一般的な破損モードと16進数リカバリガイド
ダウンロードした FLV 動画の総再生時間が「不明」と表示され、スクラブ(早送り・巻き戻し)できない。
根本原因: キーフレームのタイムスタンプとファイルサイズテーブルを含む 'onMetaData' スクリプトタグが欠落しているため。
復旧: 'yamdi'(Yet Another MetaData Injector)を使用して欠落しているキーフレームテーブルをインジェクションするか、File2File を使用して MP4 に変換します。
セキュリティ分析とパーサー攻撃ベクトル
ActionScript および FLV 解析におけるメモリ破損バグのため、Flash Player プラグインはコンピュータの歴史において最も悪用されたソフトウェアコンポーネントの 1 つでした。
既知の攻撃ベクター
- ActionScript 3 FLV 解析エンジンにおける Use-After-Free およびヒープオーバーフロー(例:CVE-2015-5122)。
- 任意のメモリ実行を引き起こす、細工された AMF0/AMF3 メタデータパケット。
- レガシーの Sorenson Spark 解凍ルーチンにおけるバッファオーバーフロー。
防御的ベストプラクティス:
歴史的背景とマイルストーン
主な利点とメリット
- 普及しているオンライン動画の歴史的パイオニア:スタンドアロンのデスクトッププレイヤーなしでのウェブ動画再生を可能にした。
- On2 VP6 コーデックを使用した動画ストリームでのアルファ透明度をサポート。
- 低遅延の RTMP ライブ動画配信に最適化された低いパケットオーバーヘッド。
技術的な制限とデメリット
- Flash Player のサポート終了に伴い、すべてのモダンなウェブブラウザで完全に廃止され、サポートされていない。
- iOS、Android、およびスマート TV で再生するには、MP4 への再エンコードまたはコンテナの切り替えが必要。
- マルチトラック音声やレスポンシブなアダプティブビットレートストリーミングなどの、モダンなコンテナ機能が欠けている。
興味深い技術トリビア
- YouTubeにアップロードされた最初の動画(2005年4月の「Me at the zoo」)は、FLVファイルとしてエンコードおよび配信されました。
- Flash Video のマジックバイトシーケンス「46 4C 56 01」は、ASCII の「FLV」の後にコンテナのバージョン 1 が続くスペルになっています。
- Steve Jobs は 2010年に有名なオープンレター「Thoughts on Flash」を公開し、業界が FLV から HTML5 の MP4 へ移行するのを加速させました。
よくある技術的な質問
コンピュータで FLV ファイルをもう再生できないのはなぜですか?
Adobe およびすべての主要なウェブブラウザは、セキュリティ上の脆弱性のため、2020 年 12 月に Flash Player のサポートを正式に終了しました。現在 FLV ファイルを再生するには、VLC メディアプレーヤーを使用するか、MP4 に変換してください。
画質を落とせずに FLV を MP4 に変換できますか?
FLV ファイルに H.264 動画と AAC 音声が含まれている場合、File2File は動画を再圧縮することなく、数秒で MP4 へのロスレスコンテナレマックス(再コンテナ化)を実行できます。
FLV 動画はもともとどのコーデックを使用していましたか?
初期の FLV ファイルは、Adobe が 2007 年に標準の H.264 のサポートを追加する前は、Sorenson Spark(H.263 のバリアント)やその後 On2 VP6 を使用していました。