Есть ли способ создать миниатюру из файла флэш-ролика (flv / swf) [НЕ ИЗ ВИДЕО-файла] в ASP.NET? Есть образцы реализации?
.NET: как создать миниатюру из flash
Ответы (7)
вы можете использовать ffmpeg для создания эскизов флэш-видео.
Для .flv вы можете использовать ffmpeg для преобразования частей видео (например, одного кадра) в изображение (последовательность).
Я использовал его как приложение командной строки, вызвав Process.Start()
, но есть как минимум одна оболочка для .NET (сам я ее не тестировал): http://www.codeplex.com/ffmpegdotnet
Для .swf я не знаю, как это сделать без какого-либо инструмента Adobe.
для flv это можно сделать легко, как уже упоминалось...
для swf это ОЧЕНЬ зависит от swf ... если внешний вид swf определяется кодом, нет другого способа, кроме как встроить флеш-плеер в ваше приложение и либо позволить флеш-плееру делать снимки, кодировать их как JPEG /PNG и отправить их куда-нибудь с помощью TCP или LocalConnection (соединение flash‹->flash, которое можно использовать и с C#) или попытаться как-то самостоятельно захватить его выходной буфер... первая возможность должна быть не более чем 10-20 строчек кода actionscript... не знаю насчет последнего...
кроме этого, вы можете использовать внешний конвертер командной строки... в Интернете есть несколько...
приветствие
back2dos
Взгляните на эту статью, она должна указать вам правильное направление. Он использует SharpFFmpeg для извлечения эскизов из видеоклипов различных форматов.
единственный способ получить изображение — использовать клиент с полной флэш-памятью, который начинает воспроизведение и позволяет захватить первый кадр.
Я бы внимательно посмотрел на flirt (на самом деле у них есть пример, который отображает png). могут помочь другие флеш-библиотеки ( swfdec скрежет быстрые инструменты gplflash)
Gnash, вероятно, лучший выбор, поскольку это самый зрелый проект, но я не знаю, насколько легко его интегрировать в инструменты командной строки или в ваши собственные проекты.
Мы работали над этим в моей компании, и мы довольно быстро получили доказательство работоспособности концепции (но проект, для которого мы это сделали, сейчас приостановлен). Я не могу поделиться кодом, но могу дать вам несколько советов.
Это не чистый ASP.NET, но, возможно, вы все еще можете его использовать. Мы сделали службу Windows, которую можно вызывать из ASP.NET.
В основном вы устанавливаете флэш-плагин на сервер, службы Windows могут затем просто открыть swf через компонент swf ActiveX, и тогда вы можете получить изображение всего этого. Это работает довольно хорошо, обратите внимание, что вам не нужно отображать компонент ActiveX на экране, чтобы захватить изображение.
Прочтите эту публикацию. Он не говорит вам всего, но я думаю, что он обеспечивает необходимую для этого основу. Вероятно, вам придется выяснить, как получить тег объекта из flash-html, который вы пытаетесь загрузить с веб-страницы. После этого вам нужно будет выяснить, когда захватывать кадры. Однако это долгая поездка. Вам не нужна часть asp.net. Просто сконцентрируйтесь на части проекта Windows. Надеюсь это поможет. :)