Отрисовка swf в png или другой формат изображения

Как я могу в linux отобразить swf в файл изображения? Мне нужно иметь возможность загружать другие swfs в этот swf и запускать код actionscript.

Это вообще возможно в linux? Мне нужно сделать это с PHP, это нормально, если мне нужно использовать инструменты командной строки.

3 ответов


swfrender с swftools работает для основных файлов SWF.

swfdec-thumbnailer С swfdec-gnome работает, хотя он получает только первый кадр swf.

чтобы получить любой кадр из swf с помощью swfdec, см. фрагмент кода C в следующем списке рассылки в должности.

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

Также см. ниже руководство для конвейера командной строки.

для вызова внешних программ с php вы используете документирована здесь.

обратите внимание, что по соображениям безопасности важно избежать аргументов, переданных exec С другой командой, как escapeshellcmd или escapeshellarg по соображениям безопасности.

после преобразования в формат изображения для одного кадра или для всего кадра вы не можете запустить сценарий действий. Другие инструменты, отличные от GNU / Linux, поддерживают экспорт скрипта действий из SWF.

если SWF, который вы экспортируете в PNG, слишком сложен для других инструментов, чем вы можете использовать плагин Flash или Gnash и Xvfb вместе с программным обеспечением захвата экрана, чтобы захватить либо кадры изображения SWF или формат видео, как avi. Затем вы можете извлечь изображения из видеоформата.

этот виртуальный метод фреймбуффера будет поддерживать сложные SWF-файлы, хотя он требует много работы, так как вам нужно использовать либо Gnash и Xvfb и захват экрана, либо браузер , Xvfb и Selenium, если вы хотите захватить определенный набор взаимодействий мыши / клавиатуры с SWF.

Gnash с виртуальным Фреймбуффером и без него должен загружать ActionScript перед экспортом, но может иметь проблемы со сложным ActionScript. Flash-плагин с виртуальным Фреймбуффером загрузит В ActionScript перед экспортом.

Также см. Следующие вопросы StackOverFlow, которые вы задаете, являются дубликатом


Это решение, которое я использовал.

вы можете использовать такой инструмент, как Xvfb (сервер X11) и запустите автономный проектор flash player внутри него (вам может потребоваться установить кучу 32-разрядных библиотек), затем используйте утилиту захвата экрана, такую как импорт чтобы захватить экран и обрезать его по размеру.

нашел на этой странице при рендеринге скриншотов swf в linux полезно. Он также говорит, что вы можете использовать gnash для этого, однако gnash не будет работать для flash player 9+.


попробуйте это приложение airhttp://swfrenderer.kurst.co.uk

он отображает swf кадр за кадром