Есть ли способ отредактировать видео, полученное с веб-камеры через Expression Encoder SDK, перед потоковой передачей? - PullRequest
1 голос
/ 31 августа 2011

Я пытаюсь создать приложение с WPF, приложение в основном должно получать видео с вашей веб-камеры и транслировать его (эта часть очень похожа на Skype, и я уже сделал эту часть), но сложная часть заключается в том, что я хотите, чтобы пользователи могли играть со своими видеопотоками. Как будто они должны уметь рисовать усы (усы - это просто пример, это может быть что угодно ... как виртуальная белая доска), а клиент на другой стороне должен видеть это, а также, если возможно, манипулировать им.

Я знаю, что с Silverlight, возможно, было бы проще, но WPF просто необходим. Буду очень признателен за любую помощь! Пожалуйста, покажи мне путь .. Спасибо.

Вот код, который я использую, чтобы собрать поток, если он в любом случае поможет вам, но я открыт для всего, для любых изменений;

_job = new LiveJob();
EncoderDevice videoDev = null;
foreach (EncoderDevice ved in EncoderDevices.FindDevices(EncoderDeviceType.Video))
    if (ved.Name == VideoDevices.SelectedItem.ToString())
        videoDev = ved;

EncoderDevice audioDev = null;
foreach (EncoderDevice aed in EncoderDevices.FindDevices(EncoderDeviceType.Audio))
    if (aed.Name == AudioDevices.SelectedItem.ToString())
        audioDev = aed;
LiveDeviceSource deviceSource = _job.AddDeviceSource(videoDev, audioDev);

_job.ActivateSource(deviceSource);

PullBroadcastPublishFormat outputFormat = new PullBroadcastPublishFormat();
outputFormat.BroadcastPort = 8080;
_job.PublishFormats.Add(outputFormat);

_job.StartEncoding();

1 Ответ

1 голос
/ 31 августа 2011

Мое предложение состоит в том, чтобы создать набор команд рисования / манипуляции, чтобы они отправляли по отдельности видео на провод и восстанавливали его на другом конце, накладывая результаты.Это позволило бы легко взаимодействовать в двух направлениях, так как они оба отправляли свои изменения по отдельности, они могли легко «отменять» действия, выполнять не растровые манипуляции и т. Д.

Такие команды могут быть;Нарисуйте кривую Безье вдоль этих точек с помощью этой кисти, примените трансформацию здесь, с этими параметрами, нарисуйте круг здесь, призовите усы и т. Д.

...