|
<< Нажмите, чтобы показать Содержание >>
|
TRVCamSenser передает видео и аудио (а также другие данные) по сети.
Модуль [VCL и LCL] MRVSender;
Модуль [FMX] fmxMRVSender;
Синтаксис
TRVCamSender = class(TCustomRVSender)
TObject TPersistent TComponent |
Если Active=True, компонент получает видео из VideoSource и аудио из AudioSource и отправляет их по сети. Эти отправленные видео- и аудиопотоки могут быть приняты TRVCamReceiver или TRVMediaServer. Помимо аудио и видео, отправитель может отправлять команды и файлы.
Формат видео указывается параметре Encoding.
Данные могут быть организованы в несколько медиаканалов.
Медиаканалы полезны при отправке информации через TRVMediaServer; например, они позволяют клиентам отправлять видео с нескольких камер. Для прямых подключений (к TRVCamReceiver) вместо медиаканалов можно использовать несколько компонентов TRVCamSender.
Источники видео и аудио для медиаканала по умолчанию (0-го) задаются в свойствах VideoSource и AudioSource.
Источники видео и аудио для 1-го, 2-го медиаканалов и так далее задаются в свойствах VideoSource и AudioSource элементов коллекции ExtraMediaSource.
К медиаканалу также могут быть привязаны команды, файлы и особые данные. Соответствующие методы имеют параметр MediaIndex, где можно указать номер медиаканала.
Для передачи видео и аудио, особенно видео, рекомендуется использовать UDP-соединение. Для других типов данных оно крайне не рекомендуется.
При использовании прокси-серверов требуется HTTP-соединение.
Настройка TRVCamSender:
•Active=True
Настройка TRVCamReceiver:
•Active=True
Настройка TRVCamSender: •Protocol=rvpUDP •ReceiverHost:ReceiverPort должны быть заданы. Настройка TRVCamReceiver: •Protocol=rvpUDP •Port (должен совпадать с Sender.ReceiverPort) |
Настройка TRVCamSender: •Protocol=rvpTCP (или rvpHTTP) •ReceiverHost:ReceiverPort должны быть заданы. •ProxyProperty (не обязательно, для rvpHTTP) •TCPConnectionType=rvtcpSenderToReceiver Настройка TRVCamReceiver: •Protocol=rvpTCP (или rvpHTTP) •Port (должен совпадать с Sender.ReceiverPort) •TCPConnectionType=rvtcpSenderToReceiver |
Настройка TRVCamSender: •Protocol=rvpTCP (или rvpHTTP) •TCPConnectionType=rvtcpReceiverToSender Настройка TRVCamReceiver: •Protocol=rvpTCP (или rvpHTTP) •Senders должна содержать элемент, имеющий свойства SenderHost:SenderPort указывающие на данный отправитель (свойство SenderPort элемента должно совпадать со свойством SenderPort отправителя) •TCPConnectionType=rvtcpReceiverToSender |
Для идентификации отправителей и получателей могут использоваться уникальные идентификаторы.
Получатель может (по желанию) проверять, действительно ли данные адресованы ему. Это помогает игнорировать неавторизованных отправителей.
Чтобы включить эту функцию, присвойте допустимое значение свойству TRVCamReceiver.GUIDMy. Если оно присвоено, получатель принимает данные только от отправителей, содержащих то же значение в свойствах GUIDTo.
В простейшем случае, когда один отправитель подключен к одному получателю, идентификация отправителя не требуется.
Однако получатель может получать видео от нескольких отправителей; свойство GUIDFrom позволяет различать отправителей. Получатель может либо принимать данные от указанных отправителей (перечисленных в TRVCamReceiver.Senders), либо принимать данные от всех отправителей (в этом случае TRVCamReceiver.Senders должен быть пустым).
См. раздел о TRVMediaServer.
См. раздел обзора.
В Lazarus этот компонент должен иметь оконный компонент в качестве владельца: вы можете разместить его на форме, но не можете разместить его на модуле данных.
Если компонент создан с параметром Owner = nil, ему назначается главная форма в качестве владельца.