Videor venisse
128 / 109 / 6
Регистрация: 19.02.2010
Сообщений: 221
|
|
1 | |
Организация видеоконференции с использованием пакета DSPack24.03.2010, 13:41. Показов 10275. Ответов 16
Метки нет (Все метки)
Всем привет
Изначально воспользовался пакетом DSPack (обёртка над DirectShow). Обработал захват видео с веб-камеры и запись в avi файл. Это было не сложно, быстро и действительно удобно. Загвоздка возникла в организации видеоконференции. Одна и та же программа будет и сервером и клиентом. Варианты компонентной организации передачи видео и аудио по сети: 1) компоненты Indy: IdTCPClient, IdTCPServer; 2) компоненты Internet: TClientSocket, TServerSocket; 3) компоненты DSPack: TASFWriter; 4) пакет DSPack, класс TSock, разработанный в одной из демок к этому пакету. Вопрос в том, какими компонентами наиболее эффективно и быстро можно организовать видеоконференцию по сети, и в какой технологической последовательности? Отдельный вопрос по компоненту TASFWriter, т.к. я уже завязался с пакетом DSPack. Подходит ли он для организации видеоконференции (видеочата)? Читал на форумах и статьях, что TASFWriter может по сети передавать видеофайлы, но рабочего исходника или программы с использованием этого компонента добыть не удалось. Читал также, что одни создают картинки весом 512 байт, другие используют картинки до 6 кБ, и т.о. передают их по сети с незначительной задержкой. Из этих картинок формируется непрерывное изображение собеседника по ту сторону чата. Для начала разобраться бы с видео, а с аудио потом, и с тем как их соединять, разделять, или сразу раздельно посылать и принимать. И если можно, набросайте рабочие куски кода или дайте ссылку на исходники (может даже на другом языке). Заранее благодарен.
1
|
24.03.2010, 13:41 | |
Ответы с готовыми решениями:
16
Delphi с использованием пакета Mathcad организация пакета беспроводной сети Решение задачи с использованием пакета concurrent Создание приложений с использованием пакета java.awt |
0 / 0 / 0
Регистрация: 24.05.2010
Сообщений: 3
|
|
24.05.2010, 16:57 | 2 |
а ты написал эту программу? нужна помощь с передачей изображения с веб камеры по сети
0
|
Videor venisse
128 / 109 / 6
Регистрация: 19.02.2010
Сообщений: 221
|
|
26.05.2010, 11:06 [ТС] | 3 |
На Delphi я программу не доделал, она так и осталась на уровне снятия видеоизображения и звука и записи их в файл, это то, что позволяет сделать без проблем пакет DSPack.
Но он не содержит механизмов для передачи по сети отдельных файлов, хотя бы таких как отдельные изображения (кадры), снятые с камеры. Компонент TASFWriter для этих целей не подходит. Для того, чтобы отослать отдельный файл, его нужно «грабить» с камеры компонентом TSampleGrabber этого пакета. Затем передавать и принимать компонентами TClientSocket, TServerSocket или компонентами IdTCPClient, IdTCPServer. Таким образом, для начала нужно отдельно овладеть пакетом DSPack, и отдельно принципами передачи файлов по сети, и формированием потоков (компонент TStream) для передачи этих файлов. Разработку видеочата с помощью Delphi и DSPack я забросил до поры. Я быстрее программу видеочата реализовал на другом языке. Заранее оговариваюсь, что кода своих программ предоставлять не буду, т.к. они представляют коммерческий интерес. Своих упрощённых обучающих примеров пока нет, но вот сам DSPack и Интернет кишат такими примерами.
1
|
1 / 1 / 0
Регистрация: 21.07.2010
Сообщений: 4
|
|
21.07.2010, 07:01 | 4 |
blazonic,
Я тоже пишу такую же прогу, и с теми же компонентами:dspack,server/client socket! И точно так же воспроизвожу видео(но на диск не сохраняю) и samplegrabber'ом вытягиваю bitmap, потом передаю по сокетам! В принципе у меня всё получилось, НО небольшая трабла с приёмом сокета: картинка передаётся по частям, и в конечном итоге не удаётся её склеить и отобразить в image Передача звука отдельная проблема, но проблема тоже я так думаю легко решаемая))) Могу скинуть исходник,но думаю у тебя тож самое)) Может кто нить поможет куском кода для передачи bitmap > 512kb и склеивания этих кусочков в конечном итоге! Заранее спасибо,Александр!
1
|
Videor venisse
128 / 109 / 6
Регистрация: 19.02.2010
Сообщений: 221
|
|
21.07.2010, 10:18 [ТС] | 5 |
Как я уже писал в предыдущем посте, разработку видеочата с помощью Delphi и DSPack я забросил до поры. Я полностью реализовал видеочат (IP конференцию) на другом языке и пока под локальную сеть. Склеиванием частей изображения пока не занимался. Кадр с камеры передаю целиком, т.к. локальная сеть позволяет оперировать намного большими размерами файлов. Но, тем не менее, кадр передаю в формате jpg, и такой кадр весит 60-100 кБ. Поэтому рекомендую изображение переводить из формата bmp в формат jpg и отсылать его по любой сети целиком, т.о. избавиться от алгоритмов склеивания кусков изображения и решить эту задачу намного быстрее и проще. При приёме изображения его формат, если необходимо, перевести из jpg назад в bmp и вывести на камеру абонента.
А позднее, если позволит время, поупражняться в склеивании частей изображения. Я так понимаю, ты задал довольно большое разрешение для снятия с web-камеры или видеокамеры? Если с web-камеры, то у них изначально не очень-то разрешающая оптика и даже большие изображения выглядят некачественно. А если ещё учесть, что передаются отдельные кадры за определённый промежуток времени, да ещё учесть сетевую задержку передачи кадра, то торможения изображения на камере абонента будут, так или иначе, портить впечатление от увиденного. Например, в Скайпе это выглядит просто сносно, потому что хорошо, что хотя бы эта у людей возможность есть. А если учесть, что большинство видеочатов должны быть преимущественно не однопользовательскими, а многопользовательскими, то картинки большого разрешения будут вообще весьма проблематично по скорости передаваться по любой сети.
1
|
1 / 1 / 0
Регистрация: 21.07.2010
Сообщений: 4
|
|
21.07.2010, 11:20 | 6 |
blazonic,
Если не секрет, на каком языке написали?) На счёт jpg тож подумывал...так и сделаю)) а с передачей аудио не думали как разобраться?по форумам полазил, нашёл интересные советы, но хотелось бы узнать как Вы планировали это реализовать
0
|
Videor venisse
128 / 109 / 6
Регистрация: 19.02.2010
Сообщений: 221
|
|
21.07.2010, 13:31 [ТС] | 7 |
В итоге реализовал программу на C#, т.к. в нём разработчиками языка уже внесены классы, работающие с соответствующими устройствами, в данном случае и с микрофоном. Просто создаётся буфер, в него записывается звук с микрофона и через определённый интервал времени посылается по сети абоненту, который слышит его либо в наушники, либо в акустическую систему. Определённая функция в C# в данном случае, отвечающая за непосредственный механизм накопления звука в буфере и его посылку по сети, просто делегируется (delegate), что в какой-то степени эквивалентно созданию потока (thread), поэтому посылка звука независима от основного потока.
Основной механизм работы со звуком: приём звука через микрофон и запись его в буфер, содержимое буфера вложить в сокет и отправить содержимое по сети, с той стороны принять сокетом содержимое в определённый буфер, буфер заложить в компонент, выводящий его содержимое через акустику. Не забывать при этом буферы после использования очищать для приёма и передачи нового содержимого. Кроме того, когда компоненты создают разработчики языка, то есть большая степень уверенности, что эти компоненты достаточно качественно протестированы. На Delphi немного иначе. Удобство работы со всевозможными устройствами разрабатывают сторонние программисты. В среде Delphi вам потребуется для удобства воспользоваться пакетами сторонних разработчиков. Например, попробовать пакеты AsyncPro (компоненты ApdSapiPhone и ApdVoIP) и Audio (компоненты DXAudioIn, DXAudioOut, ASIOAudioIn, ASIOAudioOut, WMStreamedIn и WMStreamedOut), но с этими компонентами я пока не работал, по мнемонике и по их свойствам можно догадываться, что некоторые из них принимают звук с микрофона, некоторые выводят звук через акустику, а некоторые создают потоки для передачи их по сети. С ними вам придётся повозиться. Эти пакеты без труда найдёте и скачаете в Инете. И почему-то я вам не смог отправить личное сообщение на форуме, у вас что-то с настройками профайла?
2
|
1 / 1 / 0
Регистрация: 21.07.2010
Сообщений: 4
|
|
21.07.2010, 17:30 | 8 |
blazonic,
У меня вообще что то с акаунтом не то...даже в настройки свои зайти не могу... Вот мыло если что:starlanc@yandex.ru За информацию огромное Спасибо)))
0
|
v1m
|
|
12.08.2010, 19:00 | 9 |
вообще я представляю так это
есть 5 потока 1 главный 2 звук записывает и отправляет 3 звук принимает и обрабатывает 4 грабит изображение с камеры и отправляет 5 принимает и составляет принятые изображения вопрос! 1 с помощью чего записывать звук в буффер? 2 как грабить изображение сразу в jpeg что бы размер нормальный был а не 500> |
Videor venisse
128 / 109 / 6
Регистрация: 19.02.2010
Сообщений: 221
|
|
13.08.2010, 00:29 [ТС] | 10 |
Если использовать DSPack, то для приминения звукового устройства использовать компонент TFilter. А дальше вам надо освоить работу с сокетами, чтобы из TFilter брать звук и запихивать в буфер, а сам буфер запихивать в сокет-клиент и передавать по сети на сокет-сервер.
Но дело в том, что я это пока только предполагаю. Эта задача на Делфи отошла в сторону, на неё пока времени нет. Грабить позволяет компонент TSampleGrabber. У него есть странные Суб_Типы: MJPG, IJPG, OtJpeg. Но грабить им я тоже не успел. Предполагаю, что эти субтипы помогут грабить сразу в Jpeg, что ещё лучше. Этот Jpeg через сокет-сервер принимать и выводить сразу без конвертаций из Bmp. Разборки с этим пакетом отложены на неопределённое время. Вы скачайте его, установите. К нему даются очень хорошие примеры, в том числе и по захвату изображения с вебкамеры.
1
|
Videor venisse
128 / 109 / 6
Регистрация: 19.02.2010
Сообщений: 221
|
|
05.09.2010, 18:30 [ТС] | 11 |
Проблема по данной теме решена, тему можно закрывать, всем спасибо.
0
|
1 / 1 / 0
Регистрация: 30.10.2010
Сообщений: 9
|
|
03.03.2011, 18:33 | 12 |
TourerX,
привет Мне вот тоже нужна момощь .передачи по сети данных видео . Можете помочь? bleznec_ua @ mail.ru
0
|
7 / 1 / 0
Регистрация: 25.02.2010
Сообщений: 8
|
|
15.06.2011, 14:49 | 13 |
Кстати, в Visual C# имеется интересный компонент TableLayoutPanel. Он позволяет избежать многооконности приложения за счёт добавления на одну форму нескольких таких компонентов TableLayoutPanel, на которых в свою очередь размещаются другие компоненты пользовательского интерфейса.
1
|
3 / 3 / 0
Регистрация: 31.07.2009
Сообщений: 201
|
|
06.01.2012, 13:08 | 14 |
Ребят, подскажите где можно скачать WMStreamedOut ? Буду нереально признателен!
0
|
Videor venisse
128 / 109 / 6
Регистрация: 19.02.2010
Сообщений: 221
|
|
10.01.2012, 21:17 [ТС] | 15 |
0
|
3 / 3 / 0
Регистрация: 31.07.2009
Сообщений: 201
|
|
11.01.2012, 19:44 | 16 |
0
|
Videor venisse
128 / 109 / 6
Регистрация: 19.02.2010
Сообщений: 221
|
|
11.01.2012, 21:00 [ТС] | 17 |
Ну где искать, в Инете, где же ещё.
У меня это всё давно было, похоже, что твой компонент входит в состав NewAC (New Audio Components) – набор Delphi-компонентов, предназначенных для работы со звуком. Ищи в Инете пакет NewAC (New Audio Components) для Delphi.
0
|
11.01.2012, 21:00 | |
11.01.2012, 21:00 | |
Помогаю со студенческими работами здесь
17
Решение задачи с использованием пакета MS Excel+VBA Построение изображения на языке паскаль с использованием пакета Graph Установка deb пакета с использованием исходных данных( не через rpm) Метод итерации решения систем линейных уравнений с использованием прикладного пакета MathCad Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |