|
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 35
|
|||||||||||
.NET 2.x DirectShowNet Фильтры для Передачи аудио по сети06.04.2018, 16:06. Показов 937. Ответов 4
Метки нет (Все метки)
Добрый день, прошу помощи знающих людей.
Пишу аудио фильтры для передачи звука по сети. За основу были взяты фильтры Pure C# DirectShowFilters Максима Картавенкова. В интернете очень мало примеров по звуковым фильтрам, тем более под Net. В целом я изменил его фильтры для передачи видео по сети для звука, но есть проблема. На приемнике я слышу что то типа шума(металическое зудение). Выкладываю код фильтров. Помогите понять, что я делаю не так? За код прошу прощения, рабочий процесс идет, много мусора типа комментарии. Сервер:
0
|
|||||||||||
| 06.04.2018, 16:06 | |
|
Ответы с готовыми решениями:
4
Сериализация объекта для передачи по сети Программа для передачи документов по сети Программа для передачи видео по сети |
|
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 35
|
|
| 06.04.2018, 16:14 [ТС] | |
|
Вот скриншот как собраны графы.
0
|
|
|
|
|
| 07.04.2018, 10:08 | |
|
Ozzee,
1) А отправка и прием идет в одном и том же формате аудио? В каком? 2) А вы ведь в курсе, что UDP пакеты не сохранят очередность. Как вы решаете эту проблему? Судя по коду, никак? 3) В целях тестирования я бы сначала сделал передачу данных непосредственно с клиента на сервер (без сети, например через файл) - что бы убедиться, что клиент и сервер работают с одним форматом данных. И потом, если это работает - повесил бы поверх этого UDP.
0
|
|
|
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 35
|
||
| 07.04.2018, 12:42 [ТС] | ||
Если посмотреть информацию о выходном пине декодера AAC, то он использует Wav контейнер. При отправке я указываю такой же контейнер с такими же настройками как у выходного пина. Приемная часть имеет те же параметры контейнера. Если вместо моего сервер фильтра сразу подключить аудиорендер, то звук после AAC декодера воспроизводится рендером без каких либо проблем. Насколько я понимаю, мне необходимо обеспечить доставку семпла с моего сервер фильтра на фильтр приемник, ничего не поломав при этом, не изменяя данные семпла. 2) Конечно я знаю об этом. Но логика данных фильтров подразумевает мультикаст вещание, а для этого используется UDP. В исходном примере фильтров все отлично работает для передачи видео, смею предположить, что для звука это будет работать так же, просто я накосячил где то. 3) Разумная идея. Я вот тоже не уверен в части кода, где создается контейнер звука. Дело в том, что примеров по Net фильтрам можно пересчитать по пальцам, а звуковые фильтры это вообще недостижимое чудо. Если Вы можете подсказать хорошие ресурсы, литературу, любые примеры по DirectShowNet буду признателен.
0
|
||
|
|
|||||
| 07.04.2018, 13:54 | |||||
|
В целом для передачи нужно использовать потоковые форматы, а не тупо отправлять семплы. Например тот-же mp3 подходит под стрим формат. Он состоит из независимых чанков, и каждый чанк можно отправить отдельно в отдельном UDP пакете. При этом чанки сжатые. Ну в крайнем случае можно отправлять и семплы, но нужно их хотя бы сжимать (так что бы сжатый кусок поместился в 1500 байт (а еще лучше в 508 байт) - максимальный размер UDP пакета, который может быть принят любым хостом). Если уж работать с семплами, то нужно каждый пакет нумеровать на отправителе (в начале пакета отправлять порядковый номер пакета), а на приемнике - создать буфер в виде очереди с приоритетом. Пока декодер играет первый принятый пакет, очередь наполняется новыми принятыми пакетами и сортируются по порядковым номерам. Таким образом, вы обеспечите правильный порядок пакетов (но проблема потери пакетов конечно все равно останется).
0
|
|||||
| 07.04.2018, 13:54 | |
|
Помогаю со студенческими работами здесь
5
Приложение для передачи файлов по сети Программа для передачи сообщений по сети Av_read_frame и avformat_open_input для аудио по сети (FFMPEG) Может кто то знает софт для подключения к сети когда свободному доступу в инет мешают всякие фильтры Программа для передачи файлов по локальной сети Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|