2010-06-05 3 views
2

Я хотел бы написать Skype, как программное обеспечение, которое позволяет потоковое видео/аудио P2P. Какой язык лучше подходит для этого?Какой язык лучше подходит для потоковой передачи P2P?

Есть несколько требований:

  1. Программное обеспечение должно быть легко установить.

  2. Его следует легко программировать.

  3. Я хочу иметь доступ к видеоинформации. Например, чтобы распознать выражение лица на лету.

  4. Должно быть бесплатным.

Я думаю о Python и Java. Какой из них лучше? Или, может быть, есть третий выбор, который лучше?

ДОБАВЛЕНО

Вспышка является привлекательным вариантом, поскольку пользователи могут использовать свой браузер, в котором вспышка установлена ​​по умолчанию, и если нет, то это легко установить вспышку. Но я не знаю, могу ли я иметь доступ к видео (если я хочу сделать некоторую обработку). Кроме того, Flash не является бесплатным.

+0

Этот вопрос действительно о «библиотеках и платформах», а не «языках». Изменение названия может дать вам некоторые ответы. –

ответ

2

Функциональные возможности, которые вас интересуют, могут включать в себя несколько тяжелый сетевой трафик (для потоковой передачи видео) и использование ЦП (для распознавания лиц). Эффективность, следовательно, будет иметь большое значение в вашем конечном продукте, что подразумевает, что вы захотите, чтобы эти критические части обрабатывались с помощью собственного кода, возможно, написанного на C или C++.

С другой стороны, вы просите язык, который легко программировать, что очень удобно, когда вы экспериментируете и прототипируете. Выразительный язык, который делает ваш смысл понятным в небольшом количестве кода, поможет вам сосредоточиться на решении проблем, стоящих перед вами, вместо того, чтобы увязнуть в деталях реализации. Python - очень хороший выбор для этого. (В самом деле, Python был языком разработка ряда других p2p проектов, включая BitTorrent, P2P-Next, и мою собственную систему потокового видео.)

Позвольте мне предложить этот подход:

  1. Разработки вашего первый версии на языке высокого уровня, например Python.
  2. Используйте скомпилированные библиотеки для обработки видеофрагментов. Несколько основных мультимедийных библиотек имеют привязки к python, включая gstreamer и libavcodec.
  3. Как только у вас есть рабочий прототип и вы удовлетворены своим дизайном, подумайте о повторной реализации системы на C или C++.
0

Я бы сказал, вспышка, потому что плагин широко распространен, у вас есть язык высокого уровня, и это уже есть API для потокового видео, так что вам не придется заново изобретать колесо в C.

Смежные вопросы