PHP停解析swf文件头
PHP下解析swf文件头
近日,在
CSDN
论坛上看到一个帖子,想要实现用PHP来得到swf文件帧数的功能,一些网友回复说不可能,其实是他们对swf文件格式不了解,swf文件格式规范是开放的,而且也可以找到相当多的关于直接用PHP处理swf文件的,包括解析文件头,生成swf文件等。利用闲暇时间,我也写了一个粗陋的解析swf文件的类。
要想解析swf文件头,首先要弄清楚的当然是
swf文件格式规范
。规范中对swf文件格式作了详细的说明。关于swf文件头,它是由以下几个部分组成:
+--------+-----+--------+----------+----+----+
|文件标识|版本|文件大小|RECT字段|帧频|帧数|
+--------+-----+--------+----------+----+----+
??????? 其中“文件标识”为3个字节,包括文件压缩标志。这3个字节的内容为“FWS”或“CWS”,以‘C’开头的表示swf文件是采用的压缩输出(从RECT字段开始至文件结尾,采用Zlib标准进行文件压缩)。
??????? “版本”为一个字节,存储8位字长的无符号整数,将swf文件的导出版本以16进制方式存储在该字节,如导出版本为7,则该字节存储值为0x07,而不是‘7’对应的ASCII值(0x37)。
??????? “文件大小”存储占用4个字节,为32位无符号整数,将未压缩的swf文件大小以16进制形式存入该4个字段,值得注意的是,swf文件存储是按照little-endian,即低字节在前的“小尾”方式存储的,解析时,需要注意字节序。如一个swf文件大小为471字节,则该4个字节,由低位到高位,存储的内容将是0xd7,0x01,0x00,0x00。
??????? “帧频”占用两个字节,表示每秒播放的帧数,存储方式是8.8共16位的定点数,整数部分在高位(即第二个字节),小数部分在低位(第一个字节),并按字节对齐。如小数7.5表示为16进制是0x07.80,按照低位在前,高位在后表示,这16位将存储为如下的2进制代码10000000 00000111。
??????? “帧数”占用两个字节,为16位无符号整数,表示swf文件的总帧数。存储方式类似于“文件大小”存储方式。
??????? 难理解的是RECT字段,该字段采用swf文件格式规范中定义的“位值”(bit_value)进行存储的,这种存储特征是可以节约字节数,但数值是跨字节的。该段存储内容是用‘twip’(翻译为‘缇’,1pixel = 20twips)单位表示的播放窗口的尺寸。分为Nbits,表示后面字段的bit_value位长;Xmin,Xmax,Ymin,Ymax分别表示X,Y轴方向上的最小和最大值。
??????? 先说一下bit_value,其特点是不管字节区分,按照最小位数(bits)将值连续存储,在末字节中空位补0,比如两个9位表示的无符号值7,8将占用3个字节,表示为2进制就是:
??????? 00000011 10000010 00000000
??????? 将3个字节按位连在一起,前9位值为7,再9位值为8,在第3个字节的其他空位全部补0。简单了解了bit_value表示方式,再说RECT结构,该字段前5位(bit)为Nbits字段,表示后面字段的bit_value位长,是一个无符号数,也就是说最大值为为31,如此一来,整个RECT字段的最大长度为17个字节,也就是说swf文件头最大不超过29个字节。通过Nbits字段得到后面字段的bit_value位长后,就可以确定RECT的具体长度,继而得知“帧频”和“帧数”的存储位置。在RECT字段中,从第6位开始,存储的是播放窗口的尺寸数据,根据Nbits值,将后面的部分按位分开计算,即可得到相应值。但对文件标识为“CWS”的swf文件,从“文件大小”字段后面开始(即从第8个字节后面开始),是按照Zlib标准压缩存储的,所以,在解析swf文件头时,首先需判断swf文件是否按照压缩格式导出的。如果是以压缩格式导出的,则需先对头8个字节后面的内容进行解压缩处理了,再来处理RECT字段和“帧频”和“帧数”字段。
下面给出我写的swf文件头解析类及实例压缩包的地址:
???????
swfHeaderParser
???????另外,在国外的许多网站上可以找到相关的内容,这里提供两个有代表性的地址,有兴趣的朋友可以去看看。?
本文转自:http://www.5uflash.com/flashjiaocheng/Flashyingyongkaifa/825.html

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



1 Bit entspricht einem Achtel eines Bytes. Im binären Zahlensystem ist jede 0 oder 1 ein Bit (Bit), und ein Bit ist die kleinste Datenspeichereinheit. Alle 8 Bits (Bit, abgekürzt als b) bilden ein Byte (Byte), also „1 Byte (; Byte) = 8 Bits“. In den meisten Computersystemen ist ein Byte eine 8 Bit lange Dateneinheit. Die meisten Computer verwenden ein Byte zur Darstellung eines Zeichens, einer Zahl oder eines anderen Zeichens.

Der Redis-Testcode in diesem Artikel basiert auf der folgenden Umgebung: Betriebssystem: MacOS 64-Bit-Version: Redis5.0.764bit Betriebsmodus: Standalone-Modus Redis-Bit-Operation Reids-Bit-Operation wird auch Bit-Array-Operation und Bitmap genannt. Es bietet vier Befehle : SETBIT, GETBIT, BITCOUNT und BITTOP Zum Bearbeiten binärer Bit-Arrays. Schauen wir uns zunächst eine Reihe grundlegender Operationsbeispiele an. SETBIT-Syntax: SETBITkeyoffsetvalue ist: Befehlstasten-Offset 0/1 Der Befehl setbit wird verwendet, um den binären Bit-Einstellungswert des angegebenen Offsets in das Bit-Array zu schreiben. Der Offset beginnt bei 0 und zu zählen ist nur erlaubt Schreiben 1 oder 0,

1 Byte entspricht 8 Bit. Die Datenspeicherung erfolgt in „Byte“ (Byte) als Einheit, und die Datenübertragung erfolgt meist in „Bit“ (Bit) als Einheit. Ein Bit stellt eine 0 oder 1 (also binär) dar, und alle 8 Bits (Bit). ) bilden ein Byte und sind daher die kleinste Informationseinheit;

SWF ist ein vektorbasiertes Flash-Animationsdateiformat, das häufig in Webdesign, Animationsproduktion und anderen Bereichen verwendet wird. SWF-Dateien werden auch oft als Flash-Dateien bezeichnet. Im Allgemeinen wird FLASH-Software zum Erstellen und Generieren von SWF-Dateiformaten verwendet. PDF-Dateien und andere Typen können auch mit der entsprechenden Software in das SWF-Format konvertiert werden. SWF kann mit Flash Player geöffnet werden, und im Browser muss das Flash Player-Plug-In installiert sein . Designer und Entwickler können damit Präsentationen, Anwendungen und andere Inhalte erstellen, die eine Benutzerinteraktion ermöglichen.

CentOS ist eine Linux-Distribution, die von RHEL stammt und nach den Regeln des Open-Source-Codes kompiliert ist. Darüber hinaus bleibt die funktionale Kompatibilität mit RHEL erhalten und es handelt sich um ein kostenloses Open-Source-Betriebssystem, das Benutzer verwenden und ändern können, ohne Urheberrechtsgebühren zu zahlen. Unterscheidet CentOS unter Linux zwischen 32-Bit und 64-Bit? Einzelheiten finden Sie weiter unten. CentOS unterscheidet zwischen 32-Bit und 64-Bit!

1 Byte entspricht 8 Bits. Im binären Zahlensystem ist jede 0 oder 1 ein Bit (Bit), und ein Bit ist die kleinste Datenspeichereinheit. Alle 8 Bits (Bit, abgekürzt als b) bilden ein Byte (Byte), also „1 Byte (; Byte) = 8 Bits“. In den meisten Computersystemen ist ein Byte eine 8-Bit-Dateneinheit. Die meisten Computer verwenden ein Byte zur Darstellung eines Zeichens, einer Zahl oder eines anderen Zeichens.

Viele Freunde haben Dateien im SWF-Format heruntergeladen, können sie jedoch nicht öffnen und müssen sie in Dateien im MP4-Format konvertieren. Heute werde ich Ihnen beibringen, wie Sie Format Factory zum Konvertieren in das MP4-Format verwenden, was sehr praktisch und schnell ist. Schauen wir uns das spezifische Tutorial unten an. Methode zum Konvertieren des SWF-Formats in das MP4-Format 1. Laden Sie zuerst den Videokonverter herunter. 2. Rufen Sie nach dem Herunterladen und Installieren die Software auf, wählen Sie links „Videokonvertierung“ und klicken Sie auf „Datei hinzufügen“. 2. Wählen Sie dann „Ausgabe“ aus „Ausgabeformat“ „Format“ und „Ausgabequalität“, 3. Klicken Sie dann rechts auf die Funktion „Konvertieren“. Es wird empfohlen, den „Extreme-Speed-Modus“ zu verwenden, der die Geschwindigkeit um 30 % erhöhen kann. 4. Danach Nachdem das Video konvertiert wurde, können Sie rechts auf „Ordner öffnen“ klicken, um die Übertragung in den entsprechenden Ordner zu starten.

PI-Münzmünze Eingehende Analyse: PI Coin (π), eine Kryptowährung, die mit Möglichkeiten und Herausforderungen zusammenfasst, hat seit seiner Geburt im Jahr 2018 mit seinem einzigartigen "mobilen Mining" -Mechanismus mehr als 47 Millionen Benutzer weltweit angezogen. In diesem Artikel werden die grundlegenden Informationen, das Ökosystem, die Anwendungsszenarien und die Kontroverse um Picoin untersucht und Ihnen helfen, dieses kontroverse digitale Vermögenswert vollständig zu verstehen. PI -Münzkerninformationen Chinesischer Name: PAI -Münze Englisch Name: Pi Coin, π Coin Common Abkreviation: π offizielle Website: https://minpi.com/ Gründer: Nicolas Kokkalis (technischer Leiter, Ph.D., Stanford University) und Chengdiao
