Tengo un archivo SWF de origen desconocido, y necesito saber a qué versión del reproductor flash estaba destinado cuando se publicó. ¿Cómo obtengo esta información?¿Cómo puedo determinar para qué versión de Flash Player se publicó un swf?
Respuesta
El cuarto byte en el archivo SWF lleva el número de versión, por ejemplo 0A es para Flash Player 10.
EDITAR : Debido al gran interés que tiene esta pregunta, he decidido dar más comentarios
Los primeros 8 bytes de cualquier archivo SWF no están comprimidos, el resto del archivo se puede comprimir (o no) mediante compresión zlib.
- 1st byte: 'F' (no comprimido) OR 'C' (comprimido).
- 2do byte: 'W' siempre.
- 3er byte: 'S' siempre.
- 4to byte: número de versión (09 significa que este archivo está dirigido a Flash Player 9 y así sucesivamente ...)
- 5to a 8vo: Longitud del archivo completo en bytes.
echar un vistazo a la especificación SWF desde http://www.adobe.com/devnet/swf.html
A continuación, hacer un volcado hexadecimal o abrir el archivo SWF en un editor que puede mostrar hexagonal. La versión SWF es uno de los primeros pocos bytes y está antes de que comience la información comprimida. Quiero decir que es el byte 4, pero no lo recuerdo del todo. El valor es el número de versión. IIRC, la versión de punto no está codificada en el SWF.
El archivo GNU también puede informarle. Aunque puedo haber editado mis reglas para hacer esto.
Nota rápida sobre la cosa punto de versión. Adobe ha realizado algunos cambios bastante significativos en la versión media de Flash Player (por ejemplo, compatibilidad con H.264 en 9.0.115). Cuando agrega un archivo SWF a una página, debe usar swfobject y especificar la versión de punto para asegurarse de que el usuario tenga el reproductor adecuado (y proporcione ExpressInstall si es posible). La determinación de la versión de punto mínimo de un archivo SWF desconocido requiere un poco de prueba y error junto con todos los reproductores Flash archivados de adobe.com, así como el conocimiento de qué buscar. – mpdonadio
¿Algún consejo sobre cómo funciona este proceso? El solo hecho de saber el número de versión completo es suficiente para mí en este momento, pero me gustaría saber cómo funciona este proceso. – John
Debe comprobar las notas de la versión para las versiones de punto y buscar las nuevas características o cosas que no funcionan. Entonces, adivina si esas características se están utilizando. Algunos son obvios (como el soporte H.264), otros son más sutiles. También puede instalar la versión de depuración de Flash Player que le permitirá ver cualquier excepción. A menudo puede ver una solicitud de función en la pila de llamadas. – mpdonadio
El SDK de Flex contiene una herramienta llamada swfdump que muestra todos los metadatos dentro de un archivo SWF. Aquí está el principio de la salida cuando corro "foo.swf swfdump":
<swf xmlns='http://macromedia/2003/swfx' version='9' framerate='24' size='10000x7500' compressed='true'>
¿Mayoría de todos? - De las respuestas hasta ahora son incorrectas, lo cual es desafortunado ya que esperaba encontrar una respuesta a esta pregunta :).
El byte 4 del SWF indica qué versión del formato de archivo SWF utiliza el archivo SWF. Eso es no igual que la versión del reproductor de destino.
La versión mínima del reproductor se establece en tiempo de compilación a través de la opción del compilador jugador de destino, mientras que la versión del formato de archivo SWF se establece a través de la opción swf-version.
Los valores predeterminados para estas opciones se pueden encontrar en FLEX_SDK/frameworks/flex-config.xml. Para la versión del SDK que estoy usando (4.5.1), los valores predeterminados son los siguientes:
<!-- Specifies the minimum player version that will run the compiled SWF. -->
<target-player>10.2.0</target-player>
<!-- Specifies the version of the compiled SWF -->
<swf-version>11</swf-version>
Esto significa swfversion.com muestra 11 para mi SWF, a pesar de que sólo se requiere que los usuarios tienen 10.2. Y de acuerdo con http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7a92.html, Flex 4.6 establece target-player en 11.1 y swf-version en 14. Así que no estoy seguro de cómo swfversion.com es útil.
¿Puede hacer una referencia cruzada a una especificación publicada por Adobe para respaldar la afirmación de que otras respuestas son * incorrectas *? Entendí que el byte Todavía hay algo que se aplicó, pero la traducción ya no era la única entre la versión de SWF y la versión de Flash Player ahora que hay versiones menores. Sin embargo, sigue en pie que no se puede detectar la liberación de puntos. – mpdonadio
suponiendo que tiene razón , ¿hay alguna forma de averiguar a qué versión del reproductor flash se dirige un archivo swf? –
@MPD Brian tiene razón, mira mi respuesta para más detalles, y aquí está la referencia que querías fr om Adobe - http://blogs.adobe.com/airodynamics/2011/08/16/versioning-in-flash-runtime-swf-version/ – danishgoel
Esto agrega lo que dijo Brian Sharon.
Sí, la correlación de 1 a 1 de la versión swf y la versión de Flash Player ya no existe.
Lo que representa el El 4to byte es la versión -swf, y lo bueno de esto es que ahora hay una relación de uno a uno con las versiones de punto.
mirada a estos referencias:
http://blogs.adobe.com/airodynamics/2011/08/16/versioning-in-flash-runtime-swf-version/
http://sleepydesign.blogspot.in/2012/04/flash-swf-version-meaning.html
A partir del segundo enlace:
Compiler Option Flash Player Version
-swf-version=9 9
-swf-version=10 10, 10.1
-swf-version=11 10.2
-swf-version=12 10.3
-swf-version=13 11.0
-swf-version=14 11.1
-swf-version=15 11.2
-swf-version=16 11.3
estoy usando esta información de archivos de juego de flash para advertir a los usuarios que su reproductor flash podría estar desactualizado en mi portal de juegos flash. Y esto funciona bien.
Se podría utilizar la herramienta Validador de Flash de DoubleClick:
https://flashval-temp.appspot.com/validator/
Además, proporcionará información como el nombre SWF, versión, tamaño de archivo, las dimensiones, cuadros por segundo, compresión y cuadros en total.
- 1. Memoria en SWF (Flash Player)
- 2. ¿Puede ActionScript decir cuándo se publicó un archivo SWF?
- 3. ¿Cómo instalo una versión anterior de Flash Player?
- 4. Velocidad de fotogramas mágicos de Flash Player
- 5. Flash Builder 4 - Flash Player no se pudo conectar al depurador
- 6. Configuración de proxy para Flash Player
- 7. ¿Cómo puedo confirmar que FireFox está utilizando la versión de depuración de Flash Player?
- 8. Flash Builder no puede encontrar la versión de depuración necesaria de Adobe Flash Player
- 9. Guardar Java2D en SWF (flash)
- 10. Determinar si swf está en un reproductor o modo "depurar"
- 11. Adobe Air vs Flash Player 10.1 Tiempo de ejecución
- 12. Python lib para leer un archivo swf de formato Flash
- 13. ¿Cómo puedo determinar para qué plataforma se compila un ejecutable?
- 14. evento de cambio de tamaño de vista para flash player
- 15. Argumentos de la línea de comando de Flash Player para "Crear proyector"
- 16. Incrustar MP4 en HTML con flash-player
- 17. En Flash Player 10 con vectores, ¿por qué usarías Arrays?
- 18. ¿Cómo puedo encontrar el tamaño/dimensiones naturales de un archivo SWF de Flash?
- 19. ¿Cómo incrustar un archivo flash (.swf) en asp.net?
- 20. flash player no funciona en xvfb
- 21. ¿Cómo protejo mi Flash/Flex SWF con código?
- 22. VideoEvent no trabajar en Flash Player 10.2
- 23. ¿Cómo sé si la solicitud proviene de flash swf?
- 24. ¿Cómo puede mi aplicación Flash determinar su propia URL?
- 25. ¿Cómo se puede determinar qué versión (es) de .NET se están ejecutando en un sistema?
- 26. ¿Cómo saber la dimensión del archivo swf sin Flash?
- 27. Cómo descompilar un archivo swf
- 28. ¿Hay alguna herramienta gratuita para crear animaciones SWF/Flash?
- 29. ¿Puedo convertir un archivo .swf a un formato de imagen?
- 30. ¿Determinar qué versión de Mono se ejecuta en Linux?
Gracias, parece que es un reproductor flash 10. ¿Cómo podría diferenciar 10 y 10.1? http://www.johndierks.com/img/flashversionhexdump.png – John
El archivo SWF en sí mismo no está dirigido a una versión menor específica de Flash Player. –
Como publiqué a continuación, esto le indica la versión de la especificación SWF que sigue su archivo, pero no la versión mínima requerida de Flash Player. –