Как выполнить редактирование видео с помощью Silverlight? - PullRequest
4 голосов
/ 08 января 2010

Я хотел бы перенести мой ActiveX (в Silverlight), который имеет следующие функции:

  • Встраивание изображения логотипа в любой видеофайл.
  • Встраивание субтитров в любой видеофайл.
  • Обрезка любого видеофайла (например: обрезка 10 секунд видео продолжительностью 1 мин).
  • Сохранить результат видеофайла (по текущим кодировщикам клиента).

Текущий ActiveX использует DirectShow - к сожалению, его нельзя использовать в Silverlight. Как я могу отказаться от старой технологии ActiveX для новой технологии Silverlight?

Ответы [ 2 ]

2 голосов
/ 08 января 2010

Простой ответ: вы не можете.

Silverlight предназначен для двух основных типов приложений: -

  • Представление контента, будь то видео, аудио и изображения, с целью создания интересных и интересных способов взаимодействия с такого рода контентом.
  • В последнее время приложения Line of Business - это ввод данных и представление данных. Опять же, с целью сделать это, по крайней мере, немного более визуально стимулирующим, чем предыдущие технологии, создавшие подобные приложения.

Редактирование видео на самом деле не относится ни к одному из этих лагерей и не обслуживается.

Я не уверен, что все же верно сказать, что ActiveX устарел, в конце концов, какая технология используется для размещения подключаемого модуля Silverlight в Internet Explorer? ActiveX.

1 голос
/ 08 января 2010

Я не знаю, будет ли это легко выполнимо. Различные кодеки, изначально доступные для Silverlight, заключены в элемент управления Silverlight MediaElement, и, насколько я могу судить, они не доступны напрямую через API, например, вы не можете получить доступ к необработанному декодированному потоку битов RGBA. (Если я ошибаюсь в этом, я хотел бы знать, но я осмотрелся и не могу понять, как это сделать.) В исходном дереве Mono есть реализация * 1001 только для декодирования Кодек * Dirac , но, насколько я знаю, ничего такого, что могло бы легко декодировать, например, файлы WMV или AVI.

И даже если бы вы могли каким-то образом получить необработанный, декодированный поток битов RGBA (или YCbCr), чтобы иметь возможность вставлять любые данные, которые вы хотите в эти кадры, вам все равно придется перекодировать видеопоток также и Silverlight не предоставляет никакой встроенной поддержки для этого. Вам нужно написать свои собственные кодировщики (совсем не тривиально), перенести их из библиотеки ffmpeg (тоже нетривиально) или подождать, пока кто-нибудь другой сделает это.

Короче говоря, я подозреваю, что на данный момент вам нужно будет придерживаться своего решения ActiveX - хотя при некотором умном кодировании JavaScript можно было бы обернуть это в красивый интерфейс Silverlight.

...