swfrender
из swftools работает для базовых SWF-файлов.
swfdec-thumbnailer
из swfdec-gnome работает, хотя получает только первый кадр swf.
Чтобы получить любой кадр из swf с использованием swfdec, см. Фрагмент кода C в следующем списке рассылки post .
gnash
из gnash также работает gnash -s<scale-image-factor> --screenshot last --screenshot-file output.png -1 -r1 input.swf
, последнее изображение SWF.
ffmpeg
из ffmpeg также работает для некоторых форматов SWF ffmpeg -i movie.swf -f image2 -vcodec png movie%d.png
См. также guide для конвейера командной строки.
Для вызова внешних программ из php вы используете документально exec
документированную здесь .
Обратите внимание, что для безопасностиПо причинам, связанным с безопасностью, важно избегать аргументов, переданных в exec
, с помощью другой команды, например escapeshellcmd
или escapeshellarg
.
После того, как вы конвертировали в формат изображения, будь то один кадр или весь кадр, вы не можете запустить скрипт действия.Другие не GNU / Linux инструменты поддерживают экспорт сценария действия из SWF.
Если SWF, который вы экспортируете в PNG, слишком сложен для других инструментов, чем вы можете использовать Flash Plugin или Gnash
и Xvfb
вместе с программным обеспечением для захвата экрана для захвата либо кадров изображения SWF, либо видео формата, такого как avi.Затем вы можете извлечь изображения из видео формата.
Этот метод виртуального кадрового буфера будет поддерживать сложные SWF-файлы, хотя он требует большой работы, так как вам нужно использовать Gnash и Xvfb и Screen Capture, или браузер, Xvfb и Selenium, если вы хотите захватитьопределенный набор взаимодействий мыши и клавиатуры с SWF.
Скрежет с и без Virtual FrameBuffer должен загружать ActionScript перед экспортом, но может иметь проблемы со сложным ActionScript.Плагин Flash с виртуальным кадровым буфером загрузит ActionScript перед экспортом.
Также см. Следующие вопросы StackOverFlow, которые вы задаете, является дубликатом