RTP multicast
Модератор: Модераторы
RTP multicast
Собственно продолжение темы
http://lazarus.freepascal.org/index.php?topic=12704.0
Интересует как обстоят дела с RTP в Lazarus'е на 2012 год? Есть ли компоненты, какие-то? Планируются ли?
Окромя того в теме указанной выше есть ссылка:
https://sourceforge.net/projects/paslibvlc/
Как, я понял - это может помочь воспроизвести с удалённого места видео. Как обстоят дела с RTP и multicast'ом, я не совсем понял.
Итого: есть ли в Lazarus'е/Freepascal'е, компоненты с помощью которых можно создавать вещание RTP, подключаться к вещанию RTP?
Добавлено спустя 11 часов 53 минуты:
Ещё из интересных фактов:
1) Протокол RTP был разработан в 1996 г.
2) В библиотеки ararat synapse (http://www.ararat.cz/synapse/doku.php/features), которую я очень люблю нет реализации RTP (и RTCP тоже нет)
3) Нашёл реализацию RTP под Delphi на сайте http://tothpaul.free.fr . Прямая ссылка на исходники: http://tothpaul.free.fr/zip/SIPInside-0.4.9-src.zip. В этих исходниках человек реализовал ещё и RTCP.
Из всеобъемлющей: http://ru.wikipedia.org/wiki/RTP , я так понял, что в пакетиках RTP есть штамп времени и номер пакета. Значит ли это, что RTP - это по сути UDP+(штамп_времени+номер_пакета), так как несмотря на то, что RTP - это протокол транспортного уровня, я не совсем понимаю зачем ещё может понадобиться (штамп_времени+номер_пакета) в TCP например....
Появился вопрос - ежели не так уж много людей реализует под Delphi и Freepascal Real-Time-Protocol по multicast адресам, то может быть RTP не такая уж хорошая штука?
Добавлено спустя 20 минут 4 секунды:
Да, и есчё пока не забыл - сейчас пользуюсь реализацией Ararat Synapse, multicast, что мне очень нравится. Окромя того, писал под windows, но благодаря synapse ararat, перекомпиляция под linux не должна вызвать переписывания всего кода =) . Модуль только не win, а linux надо будет подключить... Но чего-то я я уже не по теме...
Т.е. ежели я сейчас буду добавлять внутрь пакетиков (штамп_времени+номер_пакета), то я внезапно получу RTP-протокол по multicast адресам?
Вообщем жду ответов - любых. =)
http://lazarus.freepascal.org/index.php?topic=12704.0
Интересует как обстоят дела с RTP в Lazarus'е на 2012 год? Есть ли компоненты, какие-то? Планируются ли?
Окромя того в теме указанной выше есть ссылка:
https://sourceforge.net/projects/paslibvlc/
Как, я понял - это может помочь воспроизвести с удалённого места видео. Как обстоят дела с RTP и multicast'ом, я не совсем понял.
Итого: есть ли в Lazarus'е/Freepascal'е, компоненты с помощью которых можно создавать вещание RTP, подключаться к вещанию RTP?
Добавлено спустя 11 часов 53 минуты:
Ещё из интересных фактов:
1) Протокол RTP был разработан в 1996 г.
2) В библиотеки ararat synapse (http://www.ararat.cz/synapse/doku.php/features), которую я очень люблю нет реализации RTP (и RTCP тоже нет)
3) Нашёл реализацию RTP под Delphi на сайте http://tothpaul.free.fr . Прямая ссылка на исходники: http://tothpaul.free.fr/zip/SIPInside-0.4.9-src.zip. В этих исходниках человек реализовал ещё и RTCP.
Из всеобъемлющей: http://ru.wikipedia.org/wiki/RTP , я так понял, что в пакетиках RTP есть штамп времени и номер пакета. Значит ли это, что RTP - это по сути UDP+(штамп_времени+номер_пакета), так как несмотря на то, что RTP - это протокол транспортного уровня, я не совсем понимаю зачем ещё может понадобиться (штамп_времени+номер_пакета) в TCP например....
Появился вопрос - ежели не так уж много людей реализует под Delphi и Freepascal Real-Time-Protocol по multicast адресам, то может быть RTP не такая уж хорошая штука?
Добавлено спустя 20 минут 4 секунды:
Да, и есчё пока не забыл - сейчас пользуюсь реализацией Ararat Synapse, multicast, что мне очень нравится. Окромя того, писал под windows, но благодаря synapse ararat, перекомпиляция под linux не должна вызвать переписывания всего кода =) . Модуль только не win, а linux надо будет подключить... Но чего-то я я уже не по теме...
Т.е. ежели я сейчас буду добавлять внутрь пакетиков (штамп_времени+номер_пакета), то я внезапно получу RTP-протокол по multicast адресам?
Вообщем жду ответов - любых. =)
Re: RTP multicast
Я тоже жду) Тихо подписался на тему и жду)
Re: RTP multicast
Хмм...странно, что так мало людей отвечает - предварительные выводы:
1) RTP по multicast - не нужен.
2) Я задаю глупые вопросы.
3) Власти скрывают мой пост, чтобы люди не узнали всей правды об инопланетянах!!
Случай 3) зауряден, его рассматривать не будем.
В случае 1) я ничего не понимаю - проект vlc - довольно стар, и вообще говоря - это единственный способ трансляции киношек по RTP и multicast адресам.
Нашёл в гугле некоторые платные компоненты для Delphi - здесь писать не буду дабы баном не получить по наглой ....
Бесплатных компонентов, кроме описанных выше - не нашёл.
Случай 2) - возможно я КриворуконоК... но ведь тогда, добрые люди на форуме уже давно сказали бы мне об этом?
Для удобства - вот "нормализованные" вопросы из первого поста:
I) Есть ли в Lazarus'е/Freepascal'е, компоненты с помощью которых можно создавать вещание RTP, подключаться к вещанию RTP? Планируются ли?
II) Ежели не так уж много людей реализует под Delphi и Freepascal Real-Time-Protocol по multicast адресам, то может быть RTP не такая уж хорошая штука?
Ш) Если я сейчас буду добавлять внутрь пакетиков (штамп_времени+номер_пакета), то я внезапно получу RTP-протокол по multicast адресам?
IV) Эта штука https://sourceforge.net/projects/paslibvlc/, как я понял может помочь воспроизвести с удалённого места видео. Как обстоят дела с RTP и multicast'ом, я не совсем понял. Могёт ли? Знаю, что надо брать и проверять самому - но если кто пробовал, подскажите стоит ли заниматься. По-моему - создать трансляцию RTP по multicast адресам, она не сможет.
1) RTP по multicast - не нужен.
2) Я задаю глупые вопросы.
3) Власти скрывают мой пост, чтобы люди не узнали всей правды об инопланетянах!!
Случай 3) зауряден, его рассматривать не будем.
В случае 1) я ничего не понимаю - проект vlc - довольно стар, и вообще говоря - это единственный способ трансляции киношек по RTP и multicast адресам.
Нашёл в гугле некоторые платные компоненты для Delphi - здесь писать не буду дабы баном не получить по наглой ....
Бесплатных компонентов, кроме описанных выше - не нашёл.
Случай 2) - возможно я КриворуконоК... но ведь тогда, добрые люди на форуме уже давно сказали бы мне об этом?
Для удобства - вот "нормализованные" вопросы из первого поста:
I) Есть ли в Lazarus'е/Freepascal'е, компоненты с помощью которых можно создавать вещание RTP, подключаться к вещанию RTP? Планируются ли?
II) Ежели не так уж много людей реализует под Delphi и Freepascal Real-Time-Protocol по multicast адресам, то может быть RTP не такая уж хорошая штука?
Ш) Если я сейчас буду добавлять внутрь пакетиков (штамп_времени+номер_пакета), то я внезапно получу RTP-протокол по multicast адресам?
IV) Эта штука https://sourceforge.net/projects/paslibvlc/, как я понял может помочь воспроизвести с удалённого места видео. Как обстоят дела с RTP и multicast'ом, я не совсем понял. Могёт ли? Знаю, что надо брать и проверять самому - но если кто пробовал, подскажите стоит ли заниматься. По-моему - создать трансляцию RTP по multicast адресам, она не сможет.
Re: RTP multicast
Боюсь, что на ваши вопросы никто не ответит, т.к. это очень специфичная штука. Открытые реализации её которой есть на сях - можно подглядывать, а то и юзать, как библиотеки.
1) Вряд ли.. по крайней мере не в открытом доступе.
3) Нет, но получите свой велосипед, с ограниченными возможностями.
4) Эту штуку тут недавно проклинали и пытались заставить работать. Не получилось. Я с ней сталкивался под виндой на делфе и тоже проклинал, хотя работать заставил.
Дела с мультикастом никак не обстоят. Мало кто с этим сталкивается. Лучше попробуйте сами и расскажете нам, как с этим обстоит дело)
1) Вряд ли.. по крайней мере не в открытом доступе.
3) Нет, но получите свой велосипед, с ограниченными возможностями.
4) Эту штуку тут недавно проклинали и пытались заставить работать. Не получилось. Я с ней сталкивался под виндой на делфе и тоже проклинал, хотя работать заставил.
Дела с мультикастом никак не обстоят. Мало кто с этим сталкивается. Лучше попробуйте сами и расскажете нам, как с этим обстоит дело)
Re: RTP multicast
Спасибо за ответ.
Пойду делать велосипеды =)
До мопедов ещё далеко, значится...
Кстати, вопрос на миллион долларов же - Lazarus уже может делать полно-приводные внедорожники или ещё только мотоциклы без прицепа? Ответ давать конечно же согласно своему мнению, кратенько без холиваров =)
Пойду делать велосипеды =)
До мопедов ещё далеко, значится...
Кстати, вопрос на миллион долларов же - Lazarus уже может делать полно-приводные внедорожники или ещё только мотоциклы без прицепа? Ответ давать конечно же согласно своему мнению, кратенько без холиваров =)
Re: RTP multicast
mildok писал(а):Кстати, вопрос на миллион долларов же - Lazarus уже может делать полно-приводные внедорожники или ещё только мотоциклы без прицепа? Ответ давать конечно же согласно своему мнению, кратенько без холиваров =)
Это зависит от квалификации программиста, а не как не от среды. FPC довольно мощный инструмент.
Re: RTP multicast
Mr.Smart писал(а):Это зависит от квалификации программиста, а не как не от среды. FPC довольно мощный инструмент.
Теперь, Я счастлив!
Спасибо =)
Re: RTP multicast
Mr.Smart писал(а):Это зависит от квалификации программиста, а не как не от среды. FPC довольно мощный инструмент.
Еще от терпимости программиста к workarround-ам. Я один проектик клепаю в свободное время, уже где-то на четыре метра сорцов и всяких разных воркэраундов там хватает. Причем их приходится править при обновлении fpc. Иногда вообще чудеса чудесатые происходят и приходится искать другие методики работы, но, в принципе, все работоспособно.
Re: RTP multicast
Угу, workaround - они вообще весёлые... =D
Я вобщем-то студентообразный чудовищ и вот - делал такую шткуовину:
Зеркальный драйвер+приложение, которое по multicast вещает в компьютерный класс картинку рабочего стола.
Вначале использовал зеркальный драйвер uvnc, потом сделал свой.
Дык и вот - когда только начинал писать всё это я сделал dll, в которую запихнул функцию создающую класс для работы с зерк. драйвером uvnc! А приложение использовало эту dll получало адрес в памяти с картинкой рабочего стола.
Спрашивается зачем такие извращения с dll'кой? Разгадка - я использовал класс предоставленный в SDK UVNC идущей вместе с зерк. драйвером. А там всё было на c++. А потом у меня начинались весёлые танцы с VMT (Virtual Method Table), т.к. итить VMT Lazarus'а и VMT C++ не совпадают..... кстати жешь разрешение этой проблемы оказалось в смещении на SizeOf(TVmt).
Такой вот workaround - я как истиный студент делаю всё через..
...
Но вобщем-то всё переделал - сейчас никаких dll'ок и вообще ничего из uvnc... Иногда только сравниваю работу зерк. драйвера своего и uvnc'ного...(Приложению без разницы - мой драйвер возвращает такую же структуру, как в uvnc sdk).
Собственного - сейчас делаю передачу только изменений рабочего стола вместо передачи всей картинки по multicast'у - думал может RTP мне поможет - тему поэтому создал.
А RTP значится не будет мне помогать - пичально сиё =( ... Ну да ладно, велосипеды изобретать - оно тоже интересно
Кстати, может подскажете: как я понял в RTP решается проблема кадров приходящих в разном порядке (штамп_времени+номер_пакета). А в RTCP, как я понимаю - частично решается ещё проблема потерянных пакетов, за_счёт "периодической передаче управляющих пакетов всем участникам сессии".
Итого две ненавистные проблемы UDP MULTICAST, решаются на ура. Собственно только, из-за того, что эти 2 проблемы решаются в RTP и RTCP я и обратил внимание на протокол RTP.
А вдруг есть что-то ещё? Какой-нибудь неизведанный и прекрасный протокол, который ещё лучше,чем RTP и RTCP! Подскажите
..Укажите путь заблудшему....блуднику...студенту с горящими бешенными, но красивыми глазами....
Оно можно, конечно можно делать flv или avi, а потом в настройках vlc транслировать по udp multicast - но мы идём другим путём! Ну...workaround жешь...
Я вобщем-то студентообразный чудовищ и вот - делал такую шткуовину:
Зеркальный драйвер+приложение, которое по multicast вещает в компьютерный класс картинку рабочего стола.
Вначале использовал зеркальный драйвер uvnc, потом сделал свой.
Дык и вот - когда только начинал писать всё это я сделал dll, в которую запихнул функцию создающую класс для работы с зерк. драйвером uvnc! А приложение использовало эту dll получало адрес в памяти с картинкой рабочего стола.
Спрашивается зачем такие извращения с dll'кой? Разгадка - я использовал класс предоставленный в SDK UVNC идущей вместе с зерк. драйвером. А там всё было на c++. А потом у меня начинались весёлые танцы с VMT (Virtual Method Table), т.к. итить VMT Lazarus'а и VMT C++ не совпадают..... кстати жешь разрешение этой проблемы оказалось в смещении на SizeOf(TVmt).
Такой вот workaround - я как истиный студент делаю всё через..
Но вобщем-то всё переделал - сейчас никаких dll'ок и вообще ничего из uvnc... Иногда только сравниваю работу зерк. драйвера своего и uvnc'ного...(Приложению без разницы - мой драйвер возвращает такую же структуру, как в uvnc sdk).
Собственного - сейчас делаю передачу только изменений рабочего стола вместо передачи всей картинки по multicast'у - думал может RTP мне поможет - тему поэтому создал.
А RTP значится не будет мне помогать - пичально сиё =( ... Ну да ладно, велосипеды изобретать - оно тоже интересно
Кстати, может подскажете: как я понял в RTP решается проблема кадров приходящих в разном порядке (штамп_времени+номер_пакета). А в RTCP, как я понимаю - частично решается ещё проблема потерянных пакетов, за_счёт "периодической передаче управляющих пакетов всем участникам сессии".
Итого две ненавистные проблемы UDP MULTICAST, решаются на ура. Собственно только, из-за того, что эти 2 проблемы решаются в RTP и RTCP я и обратил внимание на протокол RTP.
А вдруг есть что-то ещё? Какой-нибудь неизведанный и прекрасный протокол, который ещё лучше,чем RTP и RTCP! Подскажите
..Укажите путь заблудшему....блуднику...студенту с горящими бешенными, но красивыми глазами....
Оно можно, конечно можно делать flv или avi, а потом в настройках vlc транслировать по udp multicast - но мы идём другим путём! Ну...workaround жешь...
Re: RTP multicast
Добрый день.
Не знаю в тему или нет. Но я в свое время для голоса использовал библиотеку libortp. Она входит в проект linphone. Написана на C, значит перевести заголовочный файл на паскаль можно. Я частично это и сделал. Прием и передача RTP работали.
Не знаю в тему или нет. Но я в свое время для голоса использовал библиотеку libortp. Она входит в проект linphone. Написана на C, значит перевести заголовочный файл на паскаль можно. Я частично это и сделал. Прием и передача RTP работали.
