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

Я пытаюсь создать приложение с 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 ответ

Решение

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

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

Другие вопросы по тегам