Russian Qt Forum

Qt => Вопросы новичков => Тема начата: virtual_root от Май 15, 2012, 22:04



Название: Онлаин-консультант
Отправлено: virtual_root от Май 15, 2012, 22:04
Ещё раз здравствуйте. У меня такая задумка: хочу сделать программу на которую можно будет звонить с прямо с сайта, не устанавливая при этом программного обеспечения. Т.е. на сайте есть какой-то скриптик который обрабатывает звонок.
Ребята, скажите возможно такое сделать и с чего начать? Я так понимаю что на сайте должен быть мощный скриптик чтобы быстро обмениваться данными. Возможно ли это реализовать через flashPlayer ? Чтобы моя программка посылала данные, а на сайте flashPlayer их ловил ? Будет ли это происходить с большой скоростью, чтобы было ощущение реального разговора?
Может кто посоветует в какую сторону читать и с чего начать ? А может у кого-нибудь есть опыт по обмену данными с flash Player ?


Название: Re: Онлаин-консультант
Отправлено: mutineer от Май 15, 2012, 22:09
видеозвонки в фейсбуке/гугле/втентакле показывают что сделать такое вполне реально


Название: Re: Онлаин-консультант
Отправлено: DmitryM от Май 16, 2012, 07:30
Я бы посмотрел бы в сторону VoIP через XMPP.


Название: Re: Онлаин-консультант
Отправлено: Krysk от Май 16, 2012, 11:13
Что-типа Meebo, imo.im?

посмотри red5 открытый медиа сервер для flash


Название: Re: Онлаин-консультант
Отправлено: virtual_root от Май 18, 2012, 09:34
спасибо ребята! У меня появилась идея реализации:
На виртуальном хостинге запустить сервер, который будет осуществлять соединение с оператором, дозваниваться до него. Когда разговор начнется, то данные писать в порт звуковой платы, а flashPlayer будет их оттуда непрерывно считывать и воспроизводить. Вот только у меня вопрос: как быть если нужно и писать сразу в порт звуковой платы(голос оператора) и тут же flashPlaer должен писать в звуковую плату (голос клиента). И тут же я должна считывать и те и другие данные с порта. Возможно какое-то разделение порта звуковой платы?  Или такое решение не подойдёт для моей задачи?  Ребята, заранее извиняюсь, если какие-то глупые вопросы задаю.

Смотрела так же в сторону: VoIP через XMPP. И совсем запуталась. Я не очень понимаю как можно через Jabber мгновенно передавать информацию, с одного компьютера на другой. Ведь главная задача моего приложение, чтобы клиенту не нужно было ничего устанавливать дополнительно, чтобы позвонить оператору. Получается моя программа как сама должна работать с Jabber сервером ? Не совсем представляю как это вообще возможно. Пожалуйста, если не трудно разъясните по подробней мне как это можно было бы реализовать. Мне бы хоть идею понять)


Название: Re: Онлаин-консультант
Отправлено: DmitryM от Май 19, 2012, 10:05
Смотрела так же в сторону: VoIP через XMPP. И совсем запуталась. Я не очень понимаю как можно через Jabber мгновенно передавать информацию, с одного компьютера на другой. Ведь главная задача моего приложение, чтобы клиенту не нужно было ничего устанавливать дополнительно, чтобы позвонить оператору. Получается моя программа как сама должна работать с Jabber сервером ? Не совсем представляю как это вообще возможно. Пожалуйста, если не трудно разъясните по подробней мне как это можно было бы реализовать. Мне бы хоть идею понять)
Есть куча библиотек для разных языков http://xmpp.org/xmpp-software/libraries/ включая JavaScript/Java/Flash.
Есть клиенты написанные на JavaScript/Java/Flash.
Встраиваешь клиент на своей странице и настраиваешь его на подключение к оператору.
Из достоинств, тебе не нужно писать клиент для оператора, и не нужно писать никакого сервера для соединения с оператором.


Название: Re: Онлаин-консультант
Отправлено: virtual_root от Май 20, 2012, 15:43
Ребята, пожалуйста, помогите мне разобраться - объясните на пальцах. Немного отойду от своей задачи. У же несколько дней гуглю по интернету в поисках решения моей задачи. Мне интересно самой попробовать написать, не из готового, так как к готовому я всегда успею обратиться. Пока хочу попробовать написать простую звонилку между двумя пользователями. Прочитав около сотни статей, я поняла что это не так просто. У меня вопрос: для написания такой звонилки мне понадобится протокол SIP и VOIP ? Наверное я задам очень глупый вопрос, но как их использовать в будующем приложении, если это не библиотеки и  их нельзя скачать??? Я так понимаю у меня должно быть что-то настроено в оборудовании? И как именно происходит звонок с одного компьютера на другой? Так же наткнулась на RTP протокол, но тоже не пойму как его зацепить и использовать? Для моей цели он мне подходит. Может кто-то писал уже звонилки, и его не затруднит разложить мне всё пополочкам) Мне бы только понять как это всё должно функционировать между собой, как с этим работать, а дальше я уже запрограммирую.


Название: Re: Онлаин-консультант
Отправлено: alexis031182 от Май 20, 2012, 16:17
Очень интересная задача. Мне тоже придётся решать её, т.к. собираюсь встроить поддержку мультимедиа в проект своего вебсервера.

Как я понимаю, стандартно-интерфейсного доступа из браузера к клиентскому мультимедиа оборудованию нет. Этот функционал может предоставить только flash. Ну или можно написать собственные плагины к браузерам (отдельно для каждого браузера и, возможно, отдельно для разных версий одного браузера). flash получается предпочтительнее, т.к. можно считать, что поддерживается всеми клиентами. Класс доступа к микрофону описан в документации (http://livedocs.adobe.com/fms/2/docs/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000550.html) Adobe. Однако возникают вопросы о сжатии данных и о транспорте их на сервер. По первому пункту нужно уточнить, предоставляет ли flash-интерфейс доступ к уже сжатым данным или это raw-поток (отчего-то кажется, что это именно второе). Что касаемо транспорта, то здесь придётся озадачиться изучением одного из соответствующих протоколов. Ну или гнать данные поверх того же HTTP, как это сделали (https://code.google.com/p/wami-recorder/) вот эти товарищи (я бы всё-таки в этом случае на WebSockets взглянул).


Название: Re: Онлаин-консультант
Отправлено: V1KT0P от Май 20, 2012, 16:24
Ребята, пожалуйста, помогите мне разобраться - объясните на пальцах.
Пока хочу попробовать написать простую звонилку между двумя пользователями.
Сперва происходит соединение между двумя компьютерами по TCP. Затем уже в зависимости от звукового кодека посылаем по UDP(попроще и задержек поменьше, но кодек должен нормально работать с поврежденными данными) или по TCP(тут могут быть задержки, но можно использовать все что угодно) поток звуковых данных. Обычно принятые данные сразу не воспроизводятся а складываются в буфер 100-200 мс. Это нужно чтоб не было разрывов.
Звук пишется с микрофона и кодируются любым потоковым кодеком, либо блочным если блок не большой(например меньше половины буфера).
Для реализации всего этого необходимо сперва создать свой протокол обмена. Обычно первые два байта длина пакета, вторые два байта указывают на тип пакета: текстовое сообщение, звуковые данные или служебные(для посылки сигналов соединения, отсоединения и т.д.). Также в конце обычно контрольная сумма находится.
Кодек выбираешь любой что подходит, для локальной сети можно обычный ogg или mp3 использовать. Для интернета лучше всего подойдет Speex.


Название: Re: Онлаин-консультант
Отправлено: virtual_root от Май 20, 2012, 16:28
Спасибо большое стало хоть немного понятней с чего начинать и куда двигаться)


Название: Re: Онлаин-консультант
Отправлено: DmitryM от Май 22, 2012, 09:57
TCP будет медленно. Потеря нескольких пакетов вполне терпимо при передаче звука/видео.
Эх любите геморрой http://www.nixp.ru/news/sipML5-%D1%81%D0%B2%D0%BE%D0%B1%D0%BE%D0%B4%D0%BD%D1%8B%D0%B9-SIP-%D0%BA%D0%BB%D0%B8%D0%B5%D0%BD%D1%82-%D1%81-%D0%BF%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D0%BE%D0%B9-%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9-%D0%BD%D0%B0-JavaScript.html (http://www.nixp.ru/news/sipML5-%D1%81%D0%B2%D0%BE%D0%B1%D0%BE%D0%B4%D0%BD%D1%8B%D0%B9-SIP-%D0%BA%D0%BB%D0%B8%D0%B5%D0%BD%D1%82-%D1%81-%D0%BF%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D0%BE%D0%B9-%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9-%D0%BD%D0%B0-JavaScript.html)


Название: Re: Онлаин-консультант
Отправлено: alexis031182 от Май 22, 2012, 10:35
Я думал, что WebRTC ещё пока не полностью поддерживается браузерами. А оказывается полный нопасаран. Отлично!