VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Перекодирование аудио в meetme

Раздел для разработчиков для обсуждения программных и аппаратных продуктов и их реализации.

Модераторы: april22, Zavr2008

Ответить
drug591
Сообщения: 56
Зарегистрирован: 24 фев 2014, 00:01

Перекодирование аудио в meetme

Сообщение drug591 »

Добрый день. Возможно пишу не в тот раздел. Возможно ли сделать так, чтобы в режиме конференции meetme не перекодировало из одного кодека в другой, а просто микшировало все аудио-каналы и отправляло все подключенным абонентам. Все абоненты используют одинаковый кодек. Т.к. он не поддерживается Asterisk'ом пришлось в заголовках подменять название кодека на поддерживаемый. И естественно в таком виде конференция не работает. Прошу подсказки на каком мементе в meetme происходит перекодирование из "приходящего" кодека в slin и обратно.
gland
Сообщения: 115
Зарегистрирован: 25 янв 2012, 11:07

Re: Перекодирование аудио в meetme

Сообщение gland »

может что-то не так понял, но в meetme кажется по умолчанию используется G711u, и если на клиентах тот же кодек, то * ничего не перекодирует.
drug591
Сообщения: 56
Зарегистрирован: 24 фев 2014, 00:01

Re: Перекодирование аудио в meetme

Сообщение drug591 »

Вот мне этот момент тоже не совсем понятен. Я выводил в файл форматы, которые используются в конференции при звонке. Получалась такая схема: кодек клиента -> ulaw -> slin. И в исходниках meetme явно указано:

Код: Выделить всё

if ((f->frametype == AST_FRAME_VOICE) && (f->subclass.format.id == AST_FORMAT_SLINEAR)) {
					if (user->talk.actual) {
						ast_frame_adjust_volume(f, user->talk.actual);
					}

					if (ast_test_flag64(confflags, (CONFFLAG_OPTIMIZETALKER | CONFFLAG_MONITORTALKER))) {
						if (user->talking == -1) {
							user->talking = 0;
						}

						res = ast_dsp_silence(dsp, f, &totalsilence);
						if (!user->talking && totalsilence < MEETME_DELAYDETECTTALK) {
							set_user_talking(chan, conf, user, 1, ast_test_flag64(confflags, CONFFLAG_MONITORTALKER));
						}

						if (user->talking && totalsilence > MEETME_DELAYDETECTENDTALK) {
							set_user_talking(chan, conf, user, 0, ast_test_flag64(confflags, CONFFLAG_MONITORTALKER));
						}
					}
					if (using_pseudo) {
						/* Absolutely do _not_ use careful_write here...
						   it is important that we read data from the channel
						   as fast as it arrives, and feed it into the conference.
						   The buffering in the pseudo channel will take care of any
						   timing differences, unless they are so drastic as to lose
						   audio frames (in which case carefully writing would only
						   have delayed the audio even further).
						*/
						/* As it turns out, we do want to use careful write.  We just
						   don't want to block, but we do want to at least *try*
						   to write out all the samples.
						 */
						if (user->talking || !ast_test_flag64(confflags, CONFFLAG_OPTIMIZETALKER)) {
							careful_write(fd, f->data.ptr, f->datalen, 0);
						}
					}
				} 
Возможно я не туда смотрю. Да и на каком-то ресурсе я встречал, что внутри meetme используется slin.
gland
Сообщения: 115
Зарегистрирован: 25 янв 2012, 11:07

Re: Перекодирование аудио в meetme

Сообщение gland »

речь про это?
drug591
Сообщения: 56
Зарегистрирован: 24 фев 2014, 00:01

Re: Перекодирование аудио в meetme

Сообщение drug591 »

Да, ковыряюсь в исходниках app_meetme.c
gland
Сообщения: 115
Зарегистрирован: 25 янв 2012, 11:07

Re: Перекодирование аудио в meetme

Сообщение gland »

странный путь решения проблемы...
у клиентов какие кодеки используются?
drug591
Сообщения: 56
Зарегистрирован: 24 фев 2014, 00:01

Re: Перекодирование аудио в meetme

Сообщение drug591 »

Кодеки используются самописные, поэтому приходится так извращаться. В принципе я думал сделать так. Перед перекодированием из одного кодека в другой поставить условие если используется определенный формат, то не выполнять перекодирование и сразу переходить к микшированию. Но пока что не могу разобраться как meetme перекодирует аудио.
gland
Сообщения: 115
Зарегистрирован: 25 янв 2012, 11:07

Re: Перекодирование аудио в meetme

Сообщение gland »

meetme ничего не перекодирует - перекодирует *
gland
Сообщения: 115
Зарегистрирован: 25 янв 2012, 11:07

Re: Перекодирование аудио в meetme

Сообщение gland »

drug591 писал(а):Кодеки самописные
интересно,чем они примечательны
drug591
Сообщения: 56
Зарегистрирован: 24 фев 2014, 00:01

Re: Перекодирование аудио в meetme

Сообщение drug591 »

Кодек ничем не примечателен, просто нужно использовать именно его.
gland писал(а):meetme ничего не перекодирует - перекодирует *
Как я понимаю выбор кодека осуществляется в channel.c в функции set_format и там же происходит определение нужно ли перекодировать из одного формата в другой?
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH