Принять по UDP multicast медиа-поток MPEG2-TS18.07.2012, 13:39. Показов 9009. Ответов 16
Метки нет (Все метки)
Прочитал про сокеты и как подключиться к multicast group.
Добавлено через 2 часа 43 минуты Уточню вопрос. Есть сервер, который вещяет медиа-поток по UDP. IP и multicast group я знаю. Мне надо написать клиент, с помощью которого я смогу подключиться к серверу и multicast group и получить медиа-поток. Пока что проблема возникла с подключением к multicast group. В данный момент застрял на подключение к multicast group. Подскажите, что я делаю не правильно?
0
|
||||||
| 18.07.2012, 13:39 | |
|
Ответы с готовыми решениями:
16
UDP - MUlticast LwIP + UDP + multicast multicast udp ipv6 |
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|||
| 18.07.2012, 15:06 | |||
|
1
|
|||
| 18.07.2012, 16:01 [ТС] | ||
но плохо понял. Не могли бы вы объяснить? А что такое форвардинг мультикаст трафика на lo?
0
|
||
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
| 18.07.2012, 16:22 | |
|
Ваше, "mreq.imr_interface.s_addr = inet_addr("127.0.0.1");" означает, что Вы просите систему добавить интерфейс которому принадлежит этот адрес в мультикаст группу. На 99.99% систем этот адрес принадлежит интерфейсу lo0. Т.е. это будет работать только если сервер живет на localhost, либо настроен проброс/пересыл (я хз как правильней сказать forwarding по-русски) мультикаста с реального сетевого интерфейса на lo. Вам нужно написать там локальный адрес интерфейса (например eth0, судя по коду у Вас это 10.10.20.14) по которому реально бегает мультикаст трафик, либо написать INADDR_ANY, позволив системе выбрать интерфейс за Вас (в случае когда в системе несколько интерфейсов она это может делать не правильно/не так как Вы хотите).
1
|
|
| 18.07.2012, 16:54 [ТС] | ||||||||||||
|
Здесь я создаю переменную, в которой храниться порт и ip сервера(10.10.20.14).
Дальше я создаю переменную, в которой храниться информация о multicast group.
А что должно храниться тогда в mreq.imr_interface.s_addr?
0
|
||||||||||||
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
||||
| 18.07.2012, 17:13 | ||||
|
Т.е псевдокодом делаете так: bind(локальный_ip_адрес_интерфейса_eth0: порт_с_которого_вещает_сервер); setsockopt(,,IP_ADD_MEMBERSHIP,[imr_interface=локальный_ip_адрес_интерфе йса_eth0 imr_multiaddr=ip_адрес_с_которого_вещает _сервер)
1
|
||||
| 18.07.2012, 21:48 [ТС] | ||||||||||||
0
|
||||||||||||
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|||||
| 19.07.2012, 09:54 | |||||
0
|
|||||
| 19.07.2012, 11:10 [ТС] | |||
Тогда почему вы сказали про struct sockaddr_in addr, что
0
|
|||
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
||||||
| 19.07.2012, 11:29 | ||||||
|
0
|
||||||
| 19.07.2012, 11:47 [ТС] | |||||||||||||||||
|
Чтобы получать медиа-поток по UDP.
Мне же сначала надо подключиться к серверу, а потом уже присоединиться к multicast group. 1) создаю сокет(AF_INET, DGRAM, IPPROT_UDP) 2) создаю struct sockaddr_in addr, в которой указываю ip и порт машины, к которой подключаюсь
5)
Добавлено через 1 минуту
0
|
|||||||||||||||||
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
||
| 19.07.2012, 11:58 | ||
|
0
|
||
|
dmzavr
|
|||||||
| 21.07.2012, 00:13 | |||||||
|
Да все верно в твоем 1-м посте было написано. В бинде не тот адрес просто. - Чтобы снова не тереть ... и если по-простому ..., то с чтением выглядит как-то так:
1. Запускаем (из консоли) мультикастовую трансляцию какой-нибудь авишки/мп3-шки: vlc -vvv <файл_с_какой-нибудь_авишкой> --sout udp:237.7.7.7:3425 --ttl 12 --loop 2. Для порядка проверяем, что трансляция действительно идет (должны увидеть/услышать картинку/звук): vlc udp://@237.7.7.7:3425 3. Запускаем нашу утилитку. Добавлено через 9 минут |
|||||||
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
| 24.07.2012, 09:07 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 04.02.2015
Сообщений: 8
|
|
| 11.05.2013, 00:51 | |
|
Давайте запилим утилиту, принимающую UDP в стандартный канал
Я сделать отличный сервер выдачи звука на винде с помощью VCL C:\win\VLCPortable\VLCPortable.exe dshow://dshow-adev=Virtual Cable 1 --sout=#transcode{acodec=mp3,ab=320,channe ls=2,samplerate=44100}:std{access=udp,mu x=raw,dst=192.168.1.2:1234} мой роутер должен принять UDP и передать музыку в mp3 плеер. Работать должно вот так: утилита | madplay -i --tty-control - Я сам вообще не программер, мне просто нужна утилита. вот такая вот односложная, без лишенего (пока) функционала.
0
|
|
| 11.05.2013, 00:51 | |
|
Помогаю со студенческими работами здесь
17
Multicast udp sender UDP Multicast на Qt 4.6.2 Linux Запрос на UDP Multicast Udp multicast поиск сервера UDP Multicast Internet возможно? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|