ホームページ バックエンド開発 PHPチュートリアル PHP が swf ファイルヘッダーの解析を停止する

PHP が swf ファイルヘッダーの解析を停止する

Jun 13, 2016 pm 12:51 PM
bit swf

PHP
で swf ファイルのヘッダーを解析します
最近、
CSDN
フォーラムで、PHP を使用して swf ファイルのフレーム番号を取得したいという投稿を目にしましたが、実際にはそれは不可能であるとの回答がありました。 swf ファイル形式、swf ファイル形式の仕様は公開されており、ファイル ヘッダーの解析や swf ファイルの生成など、PHP を直接使用して swf ファイルを処理する方法についても多くの情報を見つけることができます。暇なときに、SWF ファイルを解析するための大雑把なクラスも書きました。
swf ファイルのヘッダーを解析するには、当然のことながら、
swf ファイル形式の仕様
を最初に理解する必要があります。 swf ファイル形式については仕様で詳しく説明されています。 swf ファイルのヘッダーは次の部分で構成されます:
-------- ----- -------- ---------- -- - - ----
|ファイルID|バージョン|ファイルサイズ|RECTフィールド|フレームレート|フレーム番号|
-------- ----- ------- - ---------- ---- ----
????????? 「ファイル識別」は、ファイル圧縮フラグを含めて 3 バイトです。この 3 バイトの内容は「FWS」または「CWS」で、「C」で始まるものは、swf ファイルが圧縮出力であることを意味します (RECT フィールドの先頭からファイルの末尾まで、Zlib 標準が使用されます)。ファイル圧縮用)。
??????? 「バージョン」は 8 ビットの符号なし整数を格納するバイトです。たとえば、エクスポートされたバージョンは 16 進モードでこのバイトに格納されます。の場合、バイト ストレージ値は 0x07 であり、「7」 (0x37) に対応する ASCII 値ではありません。
????????? 「ファイル サイズ」ストレージは 32 ビットの符号なし整数であり、これらの 4 つのフィールドに 16 進形式で格納されることに注意してください。ファイルはリトル エンディアン、つまり下位バイトが最初になる「リトル エンディアン」モードで保存されます。解析するときは、バイト順序に注意する必要があります。たとえば、swf ファイルのサイズが 471 バイトの場合、この 4 バイトに格納される内容は、下位から上位まで 0xd7、0x01、0x00、0x00 になります。
??????? 「フレーム レート」は 2 バイトを占め、1 秒あたりに再生されるフレーム数を示します。格納方法は 8.8、合計 16 ビットの固定小数点数で、整数部分は です。上位ビット (つまり 2 番目のバイト)、小数部分は下位ビット (最初のバイト) にあり、バイト アライメントされています。たとえば、10 進数の 7.5 は 16 進数では 0x07.80 と表され、最初に下位桁、最後に上位桁に従って、これらの 16 ビットは次のバイナリ コード 10000000 00000111 として格納されます。
??????? 「フレーム番号」は 2 バイトを占め、16 ビットの符号なし整数であり、swf ファイル内のフレームの総数を示します。保存方法は「ファイルサイズ」の保存方法と同様です。
??????? 理解しにくいのは、swf ファイル形式仕様で定義されている「ビット値」(bit_value) を使用して格納される RECT フィールドです。このストレージ機能ではバイト数を節約できますが、値スパンバイト。このセクションのストレージ コンテンツは、「twip」(「twip」と訳され、1 ピクセル = 20twips)単位で表される再生ウィンドウのサイズです。 Nbit に分割され、次のフィールドの bit_value ビット長を表します。Xmin、Xmax、Ymin、Ymax はそれぞれ X 軸方向と Y 軸方向の最小値と最大値を表します。
??????? まず bit_value について説明します。その特徴は、バイトの区別に関係なく、最後のバイトの空きビットに応じて値が連続して格納されることです。 2 つの 9 ビット表現など、0 を使用すると、符号なしの値 7 と 8 は 3 バイトを占有し、バイナリで表現されます。 ? 3 バイトを押します。ビットは互いに接続されており、最初の 9 ビットの値は 7、次の 9 ビットの値は 8、3 番目のバイトの他のすべての空のビットは 0 で埋められます。 bit_value 表現について簡単に理解しましょう。このフィールドの最初の 5 ビット (ビット) は、後続のフィールドの bit_value ビット長を示します。最大値は 31 です。このように、RECT フィールド全体の最大長は 17 バイトです。これは、swf ファイルのヘッダーの最大長が 29 バイトを超えないことを意味します。 Nbits フィールドを通じて以下のフィールドの bit_value ビット長を取得すると、RECT の具体的な長さが決まり、「フレーム周波数」と「フレーム数」の格納場所がわかります。 RECT フィールドには、6 ビット目から再生ウィンドウのサイズデータが格納されます。Nbits の値に応じて、以降の部分はビットごとに計算され、対応する値が得られます。ただし、ファイル識別子が「CWS」の swf ファイルは、「ファイル サイズ」フィールドから (つまり、8 バイト目から)、swf ファイルを解析するときに Zlib 標準に従って圧縮されて保存されます。 header, first swf ファイルが圧縮形式でエクスポートされるかどうかを確認する必要があります。圧縮形式でエクスポートされた場合は、最初の 8 バイト以降のコンテンツを解凍してから、RECT フィールド、「フレーム レート」および「フレーム数」フィールドを処理する必要があります。
以下は、私が作成した swf ファイル ヘッダー解析クラスとインスタンス圧縮パッケージのアドレスです:
??????
swfHeaderParser

?????????さらに、関連コンテンツは多くの海外 Web サイトで見つけることができます。興味のある友人がチェックできる代表的なアドレスを 2 つ紹介します。 ?
この記事は http://www.5uflash.com/flashjiaocheng/Flashyingyongkaifa/825.html から転載しています。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

1 ビットは何バイトに相当します 1 ビットは何バイトに相当します Mar 09, 2023 pm 03:11 PM

1 ビットは 1 バイトの 8 分の 1 に相当します。 2 進数体系では、0 または 1 がそれ​​ぞれ 1 ビット (bit) であり、ビットはデータ記憶の最小単位であり、8 ビット (bit、略して b) ごとに 1 バイト (Byte) が構成されます。バイト) = 8 ビット」。ほとんどのコンピュータ システムでは、バイトは 8 ビット (ビット) 長のデータ単位であり、文字、数字、またはその他の文字を表すためにバイトが使用されます。

Redis ビット操作の使用方法 Redis ビット操作の使用方法 May 26, 2023 pm 02:14 PM

この記事の Redis テスト コードは次の環境に基づいています: オペレーティング システム: MacOS 64 ビット バージョン: Redis5.0.764bit 動作モード: スタンドアロン モード Redis ビット操作 reids ビット操作は、ビット配列操作およびビットマップとも呼ばれ、4 つのコマンドを提供します。 : SETBIT、GETBIT、BITCOUNT、および BITTOP バイナリ ビット配列を操作します。まず、一連の基本的な操作例を見てみましょう SETBIT 構文: SETBITkeyoffsetvalue は: コマンド キー オフセット 0/1 setbit コマンドは、指定されたオフセットのバイナリ ビット設定値をビット配列に書き込むために使用されます。オフセットは 0 からカウントを開始し、 1 または 0 の書き込みのみが許可されます。

1バイトは何ビットに相当します 1バイトは何ビットに相当します Mar 19, 2021 pm 02:52 PM

1バイトは8ビットに相当します。データの保存は「バイト」(Byte)単位で行われ、データ送信は主に「ビット」(ビット)単位で行われ、1ビットが0か1(つまり2進数)を表し、8ビット(ビット)ごとに0または1を表します。 ) バイトは情報の最小単位であるため、「1Byte=8bit」となります。

swfとはどのようなファイル形式ですか? swfとはどのようなファイル形式ですか? Jul 20, 2022 pm 04:03 PM

SWF は、Web デザイン、アニメーション制作、その他の分野で広く使用されているベクター ベースの Flash アニメーション ファイル形式であり、Flash ファイルとも呼ばれます。一般に、SWF ファイル形式の作成と生成には FLASH ソフトウェアが使用されます。PDF やその他のタイプも、対応するソフトウェアを通じて SWF 形式に変換できます。SWF は Flash Player で開くことができ、ブラウザには Flash Player プラグインがインストールされている必要があります。デザイナーや開発者はこれを使用して、ユーザー対話を可能にするプレゼンテーション、アプリケーション、その他のコンテンツを作成できます。

Linux でシステムが 32 ビットか 64 ビットかを確認するにはどうすればよいですか? Linux でシステムが 32 ビットか 64 ビットかを確認するにはどうすればよいですか? Mar 01, 2024 pm 07:34 PM

CentOS は、RHEL を起源とする Linux ディストリビューションであり、オープン ソース コードの規制に従ってコンパイルされています。さらに、RHEL との機能互換性が維持されており、ユーザーは著作権料を支払うことなく使用および変更できる無料のオープンソース オペレーティング システムです。では、CentOS は Linux の 32 ビットと 64 ビットを区別しますか? 詳細については、以下を参照してください。 CentOS は 32 ビットと 64 ビットを区別します! 主な違い: CentOS32 ビット システムは主に PC 用にリリースされます; CentOS64 ビット システムは主に大規模科学技術コンピューティングを目的としています; 64 ビット Linux システムは主に 64 ビット ハードウェア システムにインストールされます; 32 ビット

SWFファイルをMP4形式に変換する手順 SWFファイルをMP4形式に変換する手順 Jan 04, 2024 pm 02:20 PM

多くの友人が swf 形式でファイルをダウンロードしましたが、開くことができず、mp4 形式のファイルに変換する必要があります。今日は、非常に便利で高速な Format Factory を使用して mp4 形式に変換する方法を説明します。以下の具体的なチュートリアルを見てみましょう。 swf形式をMP4形式に変換する方法 1.まずビデオコンバータをダウンロードします、2.ダウンロードしてインストールした後、ソフトウェアに入り、左側の「ビデオ変換」を選択して「ファイルの追加」をクリックします、2.次に「出力」を選択します「出力形式」フォーマット」と「出力品質」、3. 次に、右側の「変換」機能をクリックします。速度を 30% 向上させることができる「エクストリーム スピード モード」を使用することをお勧めします。ビデオが変換されたら、右側の「フォルダーを開く」をクリックして、対応するフォルダーに転送します。

1バイトは何ビットに相当します 1バイトは何ビットに相当します Mar 02, 2023 pm 03:44 PM

1 バイトは 8 ビットに相当します。 2 進数体系では、0 または 1 がそれ​​ぞれ 1 ビット (bit) であり、ビットはデータ記憶の最小単位であり、8 ビット (bit、略して b) ごとに 1 バイト (Byte) が構成されます。バイト) = 8 ビット」。ほとんどのコンピュータ システムでは、バイトは 8 ビットのデータ単位であり、文字、数字、その他の文字を表すためにバイトが使用されます。

PIコインとは何ですか?どこで取引できますか?なぜそれが詐欺だと言う人がいるのですか? PIコインの使用は何ですか? PIコインとは何ですか?どこで取引できますか?なぜそれが詐欺だと言う人がいるのですか? PIコインの使用は何ですか? Mar 04, 2025 am 07:33 AM

PI COIN詳細分析:機会と課題と共存する暗号通貨であるPI COIN(π)は、2018年の誕生以来、ユニークな「モバイルマイニング」メカニズムで世界中で4700万人以上のユーザーを引き付けました。この記事では、基本的な情報、エコシステム、アプリケーションシナリオ、ピコインをめぐる論争について説明し、この物議を醸すデジタル資産を完全に理解するのに役立ちます。 PI COIN CORE情報中国語名:Pai Coin英語名:PI COIN、πコイン共通略語:π公式ウェブサイト:https://minepi.com/ Founder:Nicolas Kokkalis(Technical Head、Ph.D.、Stanford University)およびChengdiao

See all articles