|
<< Нажмите, чтобы показать Содержание >> TRVGStreamerProperty |
Это класс свойства TRVCamera.GStreamerProperty. Содержит свойства для конфигурации использования GStreamer.
Модуль [VCL и LCL] MRVCamera;
Модуль [FMX] fmxMRVCamera;
Синтаксис
TRVGStreamerProperty = class(TPersistent)
TObject TPersistent |
Этот класс имеет свойства, описанные ниже.
Основные свойства
•UseGStreamer: Boolean. Если True и GStreamer доступен, компонент использует его (по умолчанию: True). Если и GStreamer и FFmpeg доступны и их поддержка включена, компонент использует FFmpeg (см. TRVCamera.FFMpegProperty.UseFFMpeg).
•LaunchString: String. Это свойство позволяет указать собственную строку конвейера (pipeline) для GStreamer 1.0, переопределяя настройки компонента. Подробности см. в конце этого раздела.
•LaunchStringMiddle: String. Это свойство позволяет добавлять дополнительные элементы в строку конвейера GStreamer 1.0.
Свойства масштабирования видеокадров:
•UseVideoScale: Boolean – разрешает использовать GStreamer для масштабирования видео (по умолчанию: False). Другие свойства в этой группе применяются только в том случае, если UseVideoScale = True.
•AddBorders: Boolean при необходимости добавляет чёрные рамки для сохранения соотношения сторон экрана (по умолчанию: False).
•Dither: Boolean добавляет дизеринг; используется только для метода Ланцоша (по умолчанию: False). См. также: Method.
•Envelope: Integer – размер envelope фильтра (по умолчанию: 200)
•Method: TRVGVideoScaleMethod – алгоритм масштабирования кадров (умолчанию: rvgvfBilinear)
•Sharpen: Integer – параметр резкости; допустимые значения от 0 до 100 (по умолчанию: 0)
•Sharpness: Integer – резкость фильтра; допустимые значения от 50 до 150 (по умолчанию: 100)
•VideoHeight: Integer – выходная высота кадра; 0 - использовать исходный размер (по умолчанию: 0)
•VideoWidth: Integer – выходная ширина кадра; 0 - использовать исходный размер (по умолчанию: 0)
Свойства RTSP:
•BufferSize: Integer – размер UDP-буфера, используемого GStreamer (по умолчанию: 524288)
•Latency: Integer – количество миллисекунд для буферизации в RTSP (по умолчанию: 2000)
Другие свойства:
•UseQueue: Boolean – если True, в строку конвейера GStreamer 1.0 добавляется дополнительный элемент "queue2" между элементами "videoscale" и видеоприемником РВ-Медиа (RVMedia). Он обеспечивает дополнительную буферизацию. В некоторых случаях (например, при чтении UDP-потока) это помогает устранить артефакты в видеокадрах.
Свойства, зарезервированные для будущего использования (кодирование видео):
•KBitrate: Intege – битрейт в кбит/сек (Значение по умолчанию: = 2048)
•SlicedThreads: Boolean – многопоточность с низкой задержкой, но меньшей эффективностью (по умолчанию: False)
•Threads: Integer – количество потоков, используемых кодеком, 0 — автоматический выбор значения; допустимые значения: <= 4 (по умолчанию: 0)
Типы, используемые в свойствах
type
TRVGVideoScaleMethod = (rvgvfNearest, rvgvfBilinear, rvgvf4Tap,
rvgvfLanzos);
Типы методов масштабирования видеокадров (см. свойство Method):
•rvgvfNearest – масштабирование методом ближайшего соседа (быстро и некрасиво)
•rvgvfBilinear – билинейное масштабирование (медленнее, но красивее)
•rvgvf4Tap – четырёхточечный фильтр для масштабирования (медленно)
•rvgvfLanzos – многоточечный фильтр Ланцоша для масштабирования (медленно)
Свойства LaunchString и LaunchStringMiddle используются, если доступна версия GStreamer 1.0. Для GStreamer 0.1 они игнорируются. Это низкоуровневые свойства, для их использования требуется знание конвейеров GStreamer.
LaunchString
Если LaunchString не пуста, она используется вместо элементов источника видео и элементов декодирования видео, созданных TRVCamera.
В этом случае эта строка должна задавать конвейер для источника видео и формата видео (в противном случае TRVCamera создаёт строку конвейера самостоятельно, используя свойства VideoFormat, URL, UserName, UserPassword, CameraPort, RTSPPort, ProxyProperty).
Пример LaunchString:
'souphttpsrc location="https://www.trichview.com/videotest/h264.avi " ! avidemux ! h264parse ! avdec_h264'
LaunchStringMiddle
Подобно LaunchString, эта строка задаёт часть конвейера GStreamer. Однако она не переопределяет конвейер TRVCamera, а добавляет в него новые элементы.
Полный конвейер состоит из:
•если LaunchString не пуста: LaunchString, затем LaunchStringMiddle, затем элементы масштабирования видео, затем приёмник видео РВ-Медиа;
•если LaunchString пуста: элемент источника видео, элементы декодирования видео, затем LaunchStringMiddle, затем элементы масштабирования видео, затем приёмник видео РВ-Медиа.
Вы можете использовать это свойство для разделения конвейера (с помощью элемента "tee") на две или более ветвей. Одна ветвь, как и прежде, будет использоваться TRVCamera для отображения видео. Другие ветви могут использоваться для записи или потоковой передачи видео.