|
<< Нажмите, чтобы показать Содержание >> TRVFFMpegProperty |
Класс свойства TRVCamera.FFMpegProperty. Содержит свойства для конфигурации использования FFmpeg.
Модуль [VCL и LCL] MRVCamera;
Модуль [FMX] fmxMRVCamera;
Синтаксис
TRVFFMpegProperty = class(TPersistent)
TObject TPersistent |
Если значение какого-либо свойства изменяется во время воспроизведения видео, воспроизведение перезапускается. Единственное исключение составляют свойства ремуксирования.
Свойство для включения/выключения поддержки FFmpeg:
•UseFFMpeg: Boolean. Если True и FFmpeg доступен, компонент использует его (по умолчанию: True). Если и GStreamer и FFmpeg доступны и их поддержка включена, компонент использует FFmpeg (см. TRVCamera.GStreamerProperty.UseGStreamer).
Свойство, разрешающее/запрещающее использование параметров FFmpeg, указанных в этом классе:
•UseFFMpegProperty: Boolean. Если True, то в FFmpeg передаются параметры, перечисленные ниже (по умолчанию: True). В противном случае FFmpeg используется с параметрами по умолчанию.
Свойства, влияющие на обработку видео с помощью TRVCamera:
•FrameDrop: Boolean. Если True, TRVCamera отбрасывает кадры, полученные слишком поздно (по умолчанию: False).
•NoDelay: Boolean. Если True, полученные видеокадры будут отображаться как можно быстрее. Если False, TRVCamera добавляет задержки между кадрами, используя информацию, указанную в видео. Эта опция полезна для отображения онлайн-видеопотоков и не должна использоваться для отображения видеофайлов (они будут отображаться слишком быстро). TRVCamera использует эту опцию только для видео без звука, и не из локальных файлов (по умолчанию: False).
Свойства для изменения размера кадров:
•UseVideoScale: Boolean – если True, видеокадры выдаются в размере, указанном в свойствах VideoWidth и VideoHeight. В противном случае (по умолчанию) кадры имеют исходный размер.
•VideoWidth, VideoHeight: Integer – ширина и высота кадра; используются только если UseVideoScale = True. Для применения масштабирования хотя бы одно из этих значений должно быть положительным (если значение одного из этих свойств равно нулю или отрицательному числу, эта сторона кадра автоматически рассчитывается для сохранения соотношения сторон).
•VideoFilter: TRVFFMpegFilter – метод, используемый для масштабирования видеокадров, по умолчанию rvffBilinear.
Свойства ремуксирования (сохранения в файл или потоковой передачи)
Ремуксирование — это сохранение в файл/видеопоток без изменения формата видео и аудио.
•Remuxing: TRVFFmpegRemuxProperty содержит свойства первого ремуксирования.
•Remuxing2: TRVFFmpegRemuxProperty содержит свойства второго ремуксирования
Remuxing и Remuxing2 независимы. Вы можете запускать и останавливать любое из них в любое время. Например, вы можете использовать одно для записи в файл, а другое — для потоковой передачи по UDP.
Формат ввода (поддержка специальных видеоисточников):
•VideoInputFormat: String. Если не пустое, указывает формат ввода видео. См. GetListOfVideoInputFormats.
Другие параметры FFmpeg:
•Видео: Boolean разрешает приём видео (чтение видеодорожки), по умолчанию True.
•Аудио: Boolean разрешает приём аудио (чтение аудиодорожки), по умолчанию True. Если True, звук обрабатывается связанным компонентом TRVCamSound.
•CustomProperties: TStringsList – дополнительные параметры для FFmpeg. Позволяет указывать параметры в дополнение к параметрам, перечисленным ниже. Каждая строка должна иметь формат 'имя_параметра=значение_параметра'. Список поддерживаемых параметров см. в документации по командной строке ffplay.
•Threads: Integer – количество потоков обработки видео; 0 (по умолчанию) для автоматического расчёта.
•TimeOut: Integer – максимальное время ожидания (в секундах) для входящих соединений, -1 для бесконечного ожидания. По умолчанию: -1. Примечание: в любом случае, компонент не допускает тайм-аутов более 20 секунд.
•RTSPTransport: TRVProtocolsEx – транспортный сетевой протокол для RTSP, по умолчанию [rvpeTCP, rvpeUDP]. Можно указать несколько транспортных протоколов, в этом случае они будут опробованы по очереди.
•RTSPFlags: TRVRTSPFlags конфигурирует RTSP, по умолчанию: [].
•MaxDelay: Integer – максимальная задержка мультиплексирования или демультиплексирования в микросекундах (0 или -1 для использования значения по умолчанию), 0 по умолчанию.
•STimeOut: Integer – максимальное время ожидания (в микросекундах) операций ввода-вывода TCP-сокета (0 для использования значений по умолчанию), по умолчанию 0.
•RecvBufferSize: Integer – размер буфера приёма UDP в байтах, по умолчанию 65535.
•UdpFifoBufferSize: Integer – размер буфера пакета в байтах, по умолчанию 1000000. Может быть установлен в 0.
•TcpNodelay: Boolean – True отключает алгоритм Нейгла, False включает его; по умолчанию — False.
•OverrunNonfatal: Boolean позволяет выживать в случае переполнения кольцевого буфера при приёме UDP. По умолчанию — True.
•ProbeSize: Int64 – размер зондирования в байтах, то есть размер данных для анализа с целью получения информации из потока. Большее значение позволит обнаружить больше информации, если она рассеяна в потоке, но увеличит задержку. Должно быть целым числом не меньше 32. По умолчанию равно 5000000.
•DecodeAudioCodecName, DecodeVideoCodecName: String – названия кодеков для декодирования аудио и видео. Если значение пустое, кодеки определяются автоматически в зависимости от содержимого. Это низкоуровневое свойство. Неправильные названия кодеков могут привести к невозможности декодирования. Для получения возможных значений этих свойств можно использовать функции GetListOfAudioDecoders и GetListOfVideoDecoders.