Передача звука по сети
От: Cy  
Дата: 08.08.05 16:53
Оценка:
Всем привет! По поиску посмотрел похожие темы, но боле-мене подходящих не нашел.

Так что вопрос знатокам.

Есть 2 компа, с одного с микрофона пишем голос, передаем на другой, на том выводим звук на колонки.
А условия такие, на машинках стоит WinNT 4.0 sp6, машинки слабые, на уровне 1-го пня. Канал связи для передачи звука между машинами где-то 2 килобайта в секунду, т.е. 16 килобит\с. Вообще реально что-либо из этого выжать? И если да, то с помощью чего? Качество звука не критично, лишь бы речь различима была.
Выручайте!
Re: Передача звука по сети
От: tamburin73  
Дата: 08.08.05 19:32
Оценка:
Cy wrote:
> А условия такие, на машинках стоит WinNT 4.0 sp6, машинки слабые, на
> уровне 1-го пня. Канал связи для передачи звука между машинами где-то 2
> килобайта в секунду, т.е. 16 килобит\с. Вообще реально что-либо из этого
> выжать? И если да, то с помощью чего? Качество звука не критично, лишь
> бы речь различима была.

Обрати внимание на Speex (http://www.speex.org/)
Posted via RSDN NNTP Server 1.9
Re: оЕПЕДЮВЮ ГБСЙЮ ОН ЯЕРХ
От: tamburin73  
Дата: 08.08.05 19:40
Оценка:
Cy wrote:
> Есть 2 компа, с одного с микрофона пишем голос, передаем на другой, на
> том выводим звук на колонки.
> А условия такие, на машинках стоит WinNT 4.0 sp6, машинки слабые, на
> уровне 1-го пня. Канал связи для передачи звука между машинами где-то 2
> килобайта в секунду, т.е. 16 килобит\с. Вообще реально что-либо из этого
> выжать? И если да, то с помощью чего? Качество звука не критично, лишь
> бы речь различима была.
> Выручайте!

Да, а если под windows, то добрая половина кодеков, что там стоят по
умолчанию даст тебе достаточное сжатие.
Posted via RSDN NNTP Server 1.9
Re: Передача звука по сети
От: Slava Antonov Россия http://deadbeef.narod.ru
Дата: 09.08.05 00:09
Оценка:
Hello Cy, you wrote:

> А условия такие, на машинках стоит WinNT 4.0 sp6, машинки слабые, на уровне 1-го пня. Канал связи для передачи звука между машинами где-то 2 килобайта в секунду, т.е. 16 килобит\с. Вообще реально что-либо из этого выжать? И если да, то с помощью чего? Качество звука не критично, лишь бы речь различима была.


Есть такая программка Battlecom. Позволяет общаться по сети. Особенность в том, что использует очень мало трафика. Так при минимальных настройках качества на секунду речи уходит окола 100 байт.

--
Всего хорошего, Слава
Posted via RSDN NNTP Server 1.9
Re: Передача звука по сети
От: Slava Antonov Россия http://deadbeef.narod.ru
Дата: 09.08.05 00:09
Оценка:
Hello Cy, you wrote:

> А условия такие, на машинках стоит WinNT 4.0 sp6, машинки слабые, на уровне 1-го пня. Канал связи для передачи звука между машинами где-то 2 килобайта в секунду, т.е. 16 килобит\с. Вообще реально что-либо из этого выжать? И если да, то с помощью чего? Качество звука не критично, лишь бы речь различима была.


Есть такая программка Battlecom. Позволяет общаться по сети. Особенность в том, что использует очень мало трафика. Так при минимальных настройках качества на секунду речи уходит окола 100 байт.

--
Всего хорошего, Слава
Posted via RSDN NNTP Server 1.9
Re: Передача звука по сети
От: aik Австралия  
Дата: 09.08.05 05:51
Оценка:
Здравствуйте, Cy, Вы писали:

Cy>Всем привет! По поиску посмотрел похожие темы, но боле-мене подходящих не нашел.

Cy>Так что вопрос знатокам.
Cy>Есть 2 компа, с одного с микрофона пишем голос, передаем на другой, на том выводим звук на колонки.
Cy>А условия такие, на машинках стоит WinNT 4.0 sp6, машинки слабые, на уровне 1-го пня. Канал связи для передачи звука между машинами где-то 2 килобайта в секунду, т.е. 16 килобит\с. Вообще реально что-либо из этого выжать? И если да, то с помощью чего? Качество звука не критично, лишь бы речь различима была.
Cy>Выручайте!

afaik весь голосовой трафик в сетях gsm бегает на 9600. Так что ты даже стерео гонять можешь
mp3 кодек для этого плохо подойдет, а всякие gsm (их в винде по дефолту толпа разных) — вполне.
Re[2]: Передача звука по сети
От: Cy  
Дата: 09.08.05 09:37
Оценка:
Спасибо всем за советы! Буду разбираться.
Re: Передача звука по сети
От: Amethyst  
Дата: 19.08.05 09:33
Оценка:
Привет, Cy.

Cy>Есть 2 компа, с одного с микрофона пишем голос, передаем на другой, на том выводим звук на колонки.

Cy>А условия такие, на машинках стоит WinNT 4.0 sp6, машинки слабые, на уровне 1-го пня. Канал связи для передачи звука между машинами где-то 2 килобайта в секунду, т.е. 16 килобит\с. Вообще реально что-либо из этого выжать? И если да, то с помощью чего? Качество звука не критично, лишь бы речь различима была.
Пара встречных вопросов:
1. какого рода канал между машинами ?
2. нужно ли прослушивание с микрофона в реальном времени или нет ?

Если у тебя dial-up модем, то real-time сложно добиться. Поскольку для подобных вещей критична не максимальная скорость, а равномерность отправки голосовых пакетов. Что же касается кодеков, то рекомендую взглянуть в сторону G723, G729. Или даже LPC10 если качество не оч. важно. GSM кодек не рекомендую, т.к. он на выходе выдаёт ~13 килобит/сек. С учётом того, что придётся пересылать вспомогательную информацию (time stamps, etc ...) ты можешь вывалиться за пределы пропускной способности канала.
Почему добро всегда побеждает зло? Потому что историю пишут победители.
Re[2]: Вдогонку
От: Amethyst  
Дата: 19.08.05 11:32
Оценка:
Если тебе нужно быстрое решение и ты готов использовать чужие библиотеки можешь воспользоваться моим велосипедом. При инсталляции программы если указать вариант установки Optional, затем выбрать пункт Copy C++ code examples, в каталог программы будут помещены примеры того, как можно использовать бинарные компоненты. В том числе и для передачи звукового потока с компа на комп.
Почему добро всегда побеждает зло? Потому что историю пишут победители.
Re[2]: Передача звука по сети
От: Evil_Genius  
Дата: 19.09.05 13:14
Оценка:
>Обрати внимание на Speex (http://www.speex.org/)

А ни кто не знает как speex в Builder использовать? Скачал со speex.org файл speex_win32_1.0.4_setup.exe, там в наличии заголовочные файлы (*.h), libspeex.dll, libspeex.exp, libspeex.lib. А подключить к проекту не получается.
Re[3]: Передача звука по сети
От: tamburin73  
Дата: 20.09.05 14:05
Оценка:
Evil_Genius wrote:
>
>
> А ни кто не знает как speex в Builder использовать? Скачал со speex.org
> файл speex_win32_1.0.4_setup.exe, там в наличии заголовочные файлы
> (*.h), libspeex.dll, libspeex.exp, libspeex.lib. А подключить к проекту
> не получается.

Вероятнее всего это бинарники были собраны под студией.
Если классы не экспортируются и иже с ними, т.е. експорт только extern
"C" (в h файле увидишь), то у билдера есть такая утилитка implib. Она
тебе сделает подходящий для линковки .lib файл для билдера.
Иначе, через LoadLibrary ...
Posted via RSDN NNTP Server 1.9
Re[4]: Передача звука по сети
От: Evil_Genius  
Дата: 21.09.05 06:47
Оценка:
Здравствуйте, tamburin73, Вы писали:

>Вероятнее всего это бинарники были собраны под студией.

>Если классы не экспортируются и иже с ними, т.е. експорт только extern
>"C" (в h файле увидишь), то у билдера есть такая утилитка implib. Она
>тебе сделает подходящий для линковки .lib файл для билдера.
>Иначе, через LoadLibrary ...

Да, либы похоже от студии, т.к. выдается: [Linker Error] 'D:\PROJECTS\SIGNAL\LIBSPEEX.LIB' contains invalid OMF record, type 0x21 (possibly COFF). Во всех h-ах идет только extern "C" но там помимо функциий еще и структура есть, и что-то я не понял как implib работает (если не трудно, мжно поподробней пожалуйста). coff2omf.exe тоже пробывал, непомогает, новая либа получается "пустая". Пробывал напрямую грузить с Dll (через LoadLibrary) — с функциями проблем нет. Но там есть стандартные толи переменные, толи константы peex_nb_mode и speex_wb_mode структуры SpeexBits. Как их вытянуть? Еще исходники есть но я не предстовляю что с ними можно сделать, только начинаю осваивать С++ по настоящему.
Re[5]: Передача звука по сети
От: Nazik Россия  
Дата: 21.09.05 16:21
Оценка:
implib — утилита коммандной строки от Borland, позволяет превращать Microsoftовские lib файлы в формат, который понимает Borland

Здравствуйте, Evil_Genius, Вы писали:

E_G>Здравствуйте, tamburin73, Вы писали:


>>Вероятнее всего это бинарники были собраны под студией.

>>Если классы не экспортируются и иже с ними, т.е. експорт только extern
>>"C" (в h файле увидишь), то у билдера есть такая утилитка implib. Она
>>тебе сделает подходящий для линковки .lib файл для билдера.
>>Иначе, через LoadLibrary ...

E_G>Да, либы похоже от студии, т.к. выдается: [Linker Error] 'D:\PROJECTS\SIGNAL\LIBSPEEX.LIB' contains invalid OMF record, type 0x21 (possibly COFF). Во всех h-ах идет только extern "C" но там помимо функциий еще и структура есть, и что-то я не понял как implib работает (если не трудно, мжно поподробней пожалуйста). coff2omf.exe тоже пробывал, непомогает, новая либа получается "пустая". Пробывал напрямую грузить с Dll (через LoadLibrary) — с функциями проблем нет. Но там есть стандартные толи переменные, толи константы peex_nb_mode и speex_wb_mode структуры SpeexBits. Как их вытянуть? Еще исходники есть но я не предстовляю что с ними можно сделать, только начинаю осваивать С++ по настоящему.
Re[6]: Передача звука по сети
От: Evil_Genius  
Дата: 22.09.05 06:26
Оценка:
Все, взял исходники от студии, конвертнул в билдоровский проект, получил новую lib-у. Не знаюкак она будет работать, но подключается без проблем.
Re[7]: Передача звука по сети
От: Evil_Genius  
Дата: 26.09.05 13:33
Оценка:
Все, под виндой все заработало. Теперь вопрос, как под Линуксом ее подключить. Там я вообще раньше не работал. Есть Makefile сгенерированный qmake-ом, проект в КДевелопе делаю с использованием Qt. Че, где там добавить надо. Подскажите пожалуйста.
#############################################################################
# Makefile for building: commtest
# Generated by qmake (1.07a) (Qt 3.3.4) on: Mon Sep 26 14:00:05 2005
# Project:  commtest.pro
# Template: app
# Command: $(QMAKE) -o Makefile commtest.pro
#############################################################################

####### Compiler, tools and options

SDL_CFLAGS := $(shell sdl-config --cflags)
SDL_LDFLAGS := $(shell sdl-config --libs)
CC       = gcc
CXX      = g++
LEX      = flex
YACC     = yacc
CFLAGS   = -pipe -O2 -march=i586 -mcpu=i686 -fmessage-length=0 -Wall -g -Wall -W -g -D_REENTRANT  -D_TTY_POSIX_ -DQT_THREAD_SUPPORT
CXXFLAGS = -pipe -O2 -march=i586 -mcpu=i686 -fmessage-length=0 -Wall -g -Wall -W -g -D_REENTRANT  -D_TTY_POSIX_ -DQT_THREAD_SUPPORT
LEXFLAGS = 
YACCFLAGS= -d
INCPATH  = -I/usr/lib/qt3/mkspecs/default -I. -I. -I/usr/include -I$(QTDIR)/include -Imoc/
LINK     = g++
LFLAGS   = 
LIBS     = $(SUBLIBS) -L/usr/lib/ -L$(QTDIR)/lib/ -L/usr/X11R6/lib/ -lqextserialport -lqt-mt -lXext -lX11 -lm -lpthread
AR       = ar cqs
RANLIB   = 
MOC      = $(QTDIR)/bin/moc
UIC      = $(QTDIR)/bin/uic
QMAKE    = qmake
TAR      = tar -cf
GZIP     = gzip -9f
COPY     = cp -f
COPY_FILE= $(COPY)
COPY_DIR = $(COPY) -r
INSTALL_FILE= $(COPY_FILE)
INSTALL_DIR = $(COPY_DIR)
DEL_FILE = rm -f
SYMLINK  = ln -sf
DEL_DIR  = rmdir
MOVE     = mv -f
CHK_DIR_EXISTS= test -d
MKDIR    = mkdir -p

####### Output directory

OBJECTS_DIR = obj/

####### Files

HEADERS = qesptest.h
SOURCES = main.cpp \
        qesptest.cpp
OBJECTS = obj/main.o \
        obj/qesptest.o
FORMS = 
UICDECLS = 
UICIMPLS = 
SRCMOC   = moc/moc_qesptest.cpp
OBJMOC = obj/moc_qesptest.o
DIST       = commtest.pro
QMAKE_TARGET = commtest
DESTDIR  = 
TARGET   = commtest

first: all
####### Implicit rules

.SUFFIXES: .c .o .cpp .cc .cxx .C

.cpp.o:
    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.cc.o:
    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.cxx.o:
    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.C.o:
    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.c.o:
    $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

####### Build rules

all: Makefile $(TARGET)

$(TARGET):  $(UICDECLS) $(OBJECTS) $(OBJMOC)  
    $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(OBJCOMP) $(LIBS) $(SDL_LDFLAGS)

mocables: $(SRCMOC)
uicables: $(UICDECLS) $(UICIMPLS)

$(MOC): 
    ( cd $(QTDIR)/src/moc && $(MAKE) )

Makefile: commtest.pro  /usr/lib/qt3/mkspecs/default/qmake.conf 
    $(QMAKE) -o Makefile commtest.pro
qmake: 
    @$(QMAKE) -o Makefile commtest.pro

dist: 
    @mkdir -p obj/commtest && $(COPY_FILE) --parents $(SOURCES) $(HEADERS) $(FORMS) $(DIST) obj/commtest/ && ( cd `dirname obj/commtest` && $(TAR) commtest.tar commtest && $(GZIP) commtest.tar ) && $(MOVE) `dirname obj/commtest`/commtest.tar.gz . && $(DEL_FILE) -r obj/commtest

mocclean:
    -$(DEL_FILE) $(OBJMOC)
    -$(DEL_FILE) $(SRCMOC)

uiclean:

yaccclean:
lexclean:
clean: mocclean
    -$(DEL_FILE) $(OBJECTS)
    -$(DEL_FILE) *~ core *.core


####### Sub-libraries

distclean: clean
    -$(DEL_FILE) $(TARGET) $(TARGET)


FORCE:

####### Compile

obj/main.o: main.cpp qesptest.h
    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/main.o main.cpp

obj/qesptest.o: qesptest.cpp qesptest.h
    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/qesptest.o qesptest.cpp

obj/moc_qesptest.o: moc/moc_qesptest.cpp  qesptest.h 
    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_qesptest.o moc/moc_qesptest.cpp

moc/moc_qesptest.cpp: $(MOC) qesptest.h
    $(MOC) qesptest.h -o moc/moc_qesptest.cpp

####### Install

install:  

uninstall:
Re[8]: Передача звука по сети
От: Evil_Genius  
Дата: 26.09.05 13:57
Оценка:
Здравствуйте, Evil_Genius, Вы писали:

E_G>Все, под виндой все заработало. Теперь вопрос, как под Линуксом ее подключить. Там я вообще раньше не работал. Есть Makefile сгенерированный qmake-ом, проект в КДевелопе делаю с использованием Qt. Че, где там добавить надо. Подскажите пожалуйста.


Можно сообщение предыдущее удалить? Т.к. ларчик просто открывался. Вместо -libspeex почему-то надо указывать -lspeex.
Re[9]: Передача звука по сети
От: aik Австралия  
Дата: 26.09.05 14:08
Оценка:
Здравствуйте, Evil_Genius, Вы писали:

E_G>>Все, под виндой все заработало. Теперь вопрос, как под Линуксом ее подключить. Там я вообще раньше не работал. Есть Makefile сгенерированный qmake-ом, проект в КДевелопе делаю с использованием Qt. Че, где там добавить надо. Подскажите пожалуйста.

E_G>Можно сообщение предыдущее удалить? Т.к. ларчик просто открывался. Вместо -libspeex почему-то надо указывать -lspeex.

Это в юнихах стандартное соглашение. По первому разу конкретно обламывает, согласен
Re[2]: Speex и Delphi
От: Bogdan Kobets Украина  
Дата: 15.07.06 19:19
Оценка:
Здравствуйте,

T>Обрати внимание на Speex (http://www.speex.org/)


Подскажите пожалуйста компонент/модуль/ActiveX/wrapper — что-нибудь, что бы можно было использовать Speex в Delphi-проекте.
Заранее благодарен!

P.S. Извините, что поднимаю старую тему.
--
С уважением,
Богдан Кобец
Re[3]: Speex и Delphi
От: Psijic  
Дата: 01.02.07 17:19
Оценка:
Здравствуйте, Bogdan Kobets, Вы писали:

BK>Подскажите пожалуйста компонент/модуль/ActiveX/wrapper — что-нибудь, что бы можно было использовать Speex в Delphi-проекте.

BK>Заранее благодарен!

Прошу подробнее рассказать, как работать со Speex в Delphi, т.к. этот кодек — один из лучших свободных кодеков для сжатия речи, а тема полностью не раскрыта ни здесь, ни даже на официальном форуме (http://lists.xiph.org/pipermail/speex-dev/). Либо укажите, как работать с другими аналогичными кодеками.
Re[10]: Передача звука по сети
От: Аноним  
Дата: 03.06.08 16:06
Оценка:
Здравствуйте, aik, Вы писали:

aik>Здравствуйте, Evil_Genius, Вы писали:


E_G>>>Все, под виндой все заработало. Теперь вопрос, как под Линуксом ее подключить. Там я вообще раньше не работал. Есть Makefile сгенерированный qmake-ом, проект в КДевелопе делаю с использованием Qt. Че, где там добавить надо. Подскажите пожалуйста.

E_G>>Можно сообщение предыдущее удалить? Т.к. ларчик просто открывался. Вместо -libspeex почему-то надо указывать -lspeex.

aik>Это в юнихах стандартное соглашение. По первому разу конкретно обламывает, согласен


-L<path> -l<filename_without_ext>

а вот префикс lib — это да, чисто договорённость
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.