|
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 13
|
|
Алгоритм разбора rtp трафика18.12.2013, 08:09. Показов 7806. Ответов 12
Метки нет (Все метки)
Всем привет !
Есть задача : разобрать rtp пакеты с аудиоданными, собрать аудиоданные сессии в аудиофайл, раскодировать и воспроизвести на плеере. Можно использовать готовые библиотеки. Для образца rtp трафика я скачал файл с сайта wireshark (http://wiki.wireshark.org/Samp... IP_and_RTP). Создал проект (kdevelop) который будет разбирать rtp трафик, и возникли вопросы с алгоритмом решения задачи : 1. как мне имитировать поток rtp для разбора - открывать скачаный файл функцией open() и считывать байты оттуда или как то по другому ? 2. Каков алгоритм разбора трафика - ведь до rtp еще надо добраться. Я понимаю что вначале надо считать кадр ethernet и уже оттуда разбирать согласно rfc ? Но как узнать где начало и где конец кадра ? Буду признателен за направление в нужное русло
0
|
|
| 18.12.2013, 08:09 | |
|
Ответы с готовыми решениями:
12
Алгоритм шаблонного или полного разбора Программа, считывающая диапазон и выдающая «OK» в случае успешного разбора или «FAIL» в случае неуспешного разбора Построение решающих LR разбора и LL разбора |
|
503 / 352 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
|
|
| 19.12.2013, 03:46 | |
|
Давайте поначалу определимся, что Вам нужно:
1. Вам нужно разобрать rtp пакет? В данном случае под разбором подразумевается определение header'a (версии, src идентификаторов и т.д) и payload'a (тип, длина и прочее), на составляющие? Тогда читайте rfc - структура rtp пакета. 2. Просто записать аудио файл и потом воспроизвести? Тогда используйте ffmpeg или аналог. Стримить можете тем же ffmpeg'ом, к примеру: Кликните здесь для просмотра всего текста
FFmpeg can stream a single stream using the RTP protocol. In order to avoid buffering problems on the other hand, the streaming should be done through the -re option, which means that the stream will be streamed in real-time (i.e. it slows it down to simulate a live streaming source. For example the following command will generate a signal, and will stream it to the port 1234 on localhost: ffmpeg -re -f lavfi -i aevalsrc="sin(400*2*PI*t)" -ar 8000 -f mulaw -f rtp rtp://127.0.0.1:1234 To play the stream with ffplay, run the command: ffplay rtp://127.0.0.1:1234 Note that rtp by default uses UDP, which, for large streams, can cause packet loss. See the "point to point" section in this document for hints if this ever happens to you. https://trac.ffmpeg.org/wiki/StreamingGuide В своем приложении открываете поток делаете demux и decode (если надо) пишете в файл. п.с. Все выше следующие имеет смысл если Вы представляете как работать с udp трафиком.
0
|
|
|
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 13
|
|
| 19.12.2013, 14:05 [ТС] | |
|
Спасибо за информацию.
Я направил с помощью команды ffmpeg -re -f mp3 -i sender.mp3 -ar 8000 -f mulaw -f rtp rtp://10.14.35.23:1234 аудиофайл на другой хост, на котором отслеживал прием потока в wireshark. Но почему в wireshark показываются только udp пакеты, а rtp не распознаны. Почему так происходит ?
0
|
|
|
503 / 352 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
|
|
| 19.12.2013, 14:27 | |
|
потому что епу нужно указать как трактовать пакеты (Decode As: RTP).
0
|
|
|
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 13
|
|
| 19.12.2013, 15:49 [ТС] | |
|
Спасибо
0
|
|
|
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 13
|
|
| 25.12.2013, 07:17 [ТС] | |
|
Теперь у меня другая проблема. Трафик я научился имитировать. Через ffmpeg (ffmpeg -re -f mp3 -i sender.mp3 -ar 8000 -f mulaw -f rtp rtp://10.14.35.23:1234) я посылаю rtp пакеты на другой компьютер, где ловлю трафик через wireshark.
Вопрос: как мне теперь сохранить этот трафик в mp3 или wav формате ? Wireshark позволяет сохранить только в raw формат ?
0
|
|
|
503 / 352 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
|
|
| 25.12.2013, 13:09 | |
|
Вы не правильно ставите задачу. Я так понял у вас она такая: "Перача аудио файла постредством готовых приложений".
Ответ используйте ffmpeg как на стороне отправителя так и на стороне получателя.
0
|
|
|
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 13
|
|
| 25.12.2013, 15:55 [ТС] | |
|
Вообще задача у меня такая: мне подают трафик, а я должен из него найти пакеты содержащие голос, собрать из пакетов сессии и записать данные в файл чтобы в дальнейшем их можно было воcпроизводить.
Пока через wireshark в трафике нахожу rtp пакеты, выделяю группу пакетов по ssid, но дальше не понимаю как сохранить данные в аудиофайл. Wireshark мои rtp пакеты не проигрывает или сохраняет только в raw, я подозреваю что плеер wireshark поддерживает не все аудиокодеки. В rtp пакетах кодек обозначен как dynamicrtp-type-96 (payload type=dynamicrtp-type-96). Этот тип пайлоада соответствует кодеку mpa-robust (http://en.wikipedia.org/wiki/R... eo_profile) Как мне теперь из пакетов сохранить голос в аудиофайл ? Добавлено через 7 минут Пробовал так через ffmpeg декодировать - FFmpeg -f mpa-robust -i in.raw out.wav - в итоге ffmpeg не знает что такое mpa-robust
0
|
|
|
503 / 352 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
|
|
| 25.12.2013, 16:16 | |
|
Ну вопервых не mpa-robust а mp3, во вторых Вы ffmpeg должны собрать с поддержкой mp3.
https://trac.ffmpeg.org/wiki/H... and%20x264 п.с. Вообщето "пакеты содержащие голос" понятие не техническое. п.с.с. Но на самом деле ffmpeg может сам разобратся что есть что, просто ffmpeg -i path/to/imput -acodec copy -f mp3 path/to/out.mp3 Также: http://ffmpeg.org/ffmpeg.html#Stream-copy
0
|
|
|
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 13
|
|
| 25.12.2013, 16:51 [ТС] | |
|
Спасибо попробую
0
|
|
|
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 13
|
|
| 28.12.2013, 15:37 [ТС] | |
|
Проиграть направляемый на хост rtp поток получилось (ffplay -i /path/file.sdp) , а вот сохранить поток в аудиофайл не получается.
ffmpeg собрал с поддержкой mp3. Команда ffmpeg -i path/to/input.raw -acodec copy -f mp3 path/to/out.mp3 выдает ошибку : Invalid data found when processing input. input.raw файл я получаю через wireshark путем копирования в файл payload всех пакетов rtp сессии потока, направляемого на хост через команду ffmpeg -re -f mp3 -i sender.mp3 -ar 8000 -f mulaw -f rtp rtp://10.14.35.23:1234. Подскажите как из rtp пакетов собрать аудиофайл wav?
0
|
|
|
503 / 352 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
|
||
| 28.12.2013, 16:32 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 13
|
|
| 28.12.2013, 17:15 [ТС] | |
|
0
|
|
| 28.12.2013, 17:15 | |
|
Помогаю со студенческими работами здесь
13
Поведенческие факторы. Влияние накрученного Трафика., Управление ПФ с помощью трафика. На примере we Контроль трафика приложения, получение текущего трафика в переменную RTP нагрузка Разбор RTP RTP. Пакеты в секунду. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|