Skip to content

Описание API Flussonic Watcher SDK для iOS

В этом разделе представлено описание Mobile Watcher API для iOS.

Классы

Перечисления

Протоколы

Структуры

Class FlussonicWatcherView

public class FlussonicWatcherView : UIView, FlussonicWatcher, NibLoadable, FlussonicPlayerAdapterDelegate, TimelineToPlayerDelegate

Представляет собой одно представление камеры в виде плеера и элементов управления в нём.

Представление камеры будет пытаться занять все доступное пространство экрана.

Может поддерживать до четырех одновременных экземпляров из-за аппаратных ограничений (информация требует проверки).

delegate: FlussonicWatcherDelegateProtocol?

weak public var delegate: FlussonicWatcherDelegateProtocol?

Делегат будет получать уведомления о событиях плеера.

alertDelegate: UIViewController?

weak public var alertDelegate: UIViewController?

Делегат будет использован для представления важных уведомлений (alert views).

downloadRequestListener: FlussonicDownloadRequestListener?

weak public var downloadRequestListener: FlussonicDownloadRequestListener?

Делегат будет получать уведомления о событиях запросов на загрузку видео.

bufferingListener: FlussonicBufferingListener?

weak public var bufferingListener: FlussonicBufferingListener?

Делегат будет получать уведомления о событиях буферизации.

updateProgressEventListener: FlussonicUpdateProgressEventListener?

weak public var updateProgressEventListener: FlussonicUpdateProgressEventListener?

Делегат будет получать уведомления о событиях, касающихся процесса получения и установки обновлений.

allowDownload: Bool

public var allowDownload: Bool { get set }

Устанавливает возможность загрузки части видеопотока в виде отдельного клипа.

startPositionDate: Date?

public var startPositionDate: Date?

Если значение startPositionDate инициализировано, экземпляр попытается начать играть с этой позиции, если возможно.

Инициализация

(Инициализация плеера) configure(withUrl url: URL, playerAdapter adapter: FlussonicPlayerAdapterProtocol)

public func configure(withUrl url: URL, playerAdapter adapter: FlussonicPlayerAdapterProtocol)

Настраивает представление с помощью URL камеры.

Параметры:

  • url: URL — URL в формате http[s]://access_token@host.com/camera_name[?from=1545660274]
  • adapter: FlussonicPlayerAdapterProtocol — Экземпляр класса FlussonicVlcAdapter или иная реализация протокола FlussonicPlayerAdapterProtocol.

(Инициализация плеера) configure(withCameraItem cameraItem: CameraItem, playerAdapter adapter: FlussonicPlayerAdapterProtocol?)

public func configure(withCameraItem cameraItem: CameraItem, playerAdapter adapter: FlussonicPlayerAdapterProtocol?)

Настраивает представление с помощью камеры CameraItem без указания токена сессии.

Параметры:

  • cameraItem: CameraItem CameraItem
  • adapter: FlussonicPlayerAdapterProtocol — Экземпляр класса FlussonicVlcAdapter или иная реализация протокола FlussonicPlayerAdapterProtocol.

Проигрывание архива начиная с указанного времени

mediaPlayerTimeChanged(oldTimeValue: Double, newTimeValue: Double)

public func mediaPlayerTimeChanged(oldTimeValue: Double, newTimeValue: Double)

Не задокументировано.

Методы протокола FlussonicPlayerView

setAllowDownload(allowDownload: Bool)

public func setAllowDownload(allowDownload: Bool)

Устанавливает возможность загрузки части видеопотока в виде отдельного клипа.

Параметры:

  • allowDownload: устанавливает значение.

public func setStartPosition(dateTimeInSecs: Int64)

public func setStartPosition(dateTimeInSecs: Int64)

Устанавливает начальную позицию (время), с которой будет начато проигрывание видео.

Экземпляр FlussonicWatcherView попытается начать проигрывание видео с этой позиции, если возможно.

Параметры:

  • dateTimeInSecs: начальная позиция для проигрывания видео, в Unix timestamp.

pause()

public func pause()

Ставит проигрываемый видеопоток на паузу.

resume()

public func resume()

Возобновляет проигрывание текущего видеопотока. Прямая трансляция возобновится в режиме проигрывания прямого эфира, архив возобновит воспроизведение с текущей позиции в режиме проигрывания архива.

seek(seconds: TimeInterval)

public func seek(seconds: TimeInterval)

Проигрывает видео начиная с указанной позиции.

Параметры:

  • seconds: позиция, на которую необходимо перейти и с которой начать проигрывание, Unixtime.

screenshotCaptured: (UIImage) -> ()

public var screenshotCaptured: (UIImage) -> ()

Этот блок вызывается при создании скриншота видеопотока.

captureScreenshot(destUrl: URL)

public func captureScreenshot(destUrl: URL)

Создает скриншот видеопотока, который проигрывается в данный момент времени.

Параметры:

  • destUrl: URL-адрес для сохранения изображения скриншота.

setBufferingListener(bufferingListener: FlussonicBufferingListener?)

public func setBufferingListener(bufferingListener: FlussonicBufferingListener?)

Установка слушателя на события буферизации.

Параметры:

  • bufferingListener: экземпляр, которому следует передавать уведомления о событиях.

setDownloadRequestListener(downloadRequestListener: FlussonicDownloadRequestListener?)

public func setDownloadRequestListener(downloadRequestListener: FlussonicDownloadRequestListener?)

Установка слушателя на события запросов на загрузку видео.

Параметры:

  • downloadRequestListener: экземпляр, которому следует передавать уведомления о событиях.

public func setUpdateProgressEventListener(updateProgressEventListener: FlussonicUpdateProgressEventListener?)

public func setUpdateProgressEventListener(updateProgressEventListener: FlussonicUpdateProgressEventListener?)

Установка слушателя на события, касающиеся процесса получения и установки обновлений.

Параметры:

  • updateProgressEventListener: экземпляр, которому следует передавать уведомления о событиях.

getCurrentUtcInSeconds() -> Int64

public func getCurrentUtcInSeconds() -> Int64

Текущая позиция, на которой плеер воспроизводит видео.

getPlaybackStatus() -> Int

public func getPlaybackStatus() -> Int

Текущий статус проигрывания.

getSpeed() -> CGFloat

public func getSpeed() -> CGFloat

Текущая скорость проигрывания.

getAvailableStreams() -> Array&ltStreamItem&gt

public func getAvailableStreams() -> Array<StreamItem>

Возвращает информацию о треках в доступных мультибитрейтных потоках.

getCurrentStream() -> StreamItem?

public func getCurrentStream() -> StreamItem?

Возвращает информацию о треках текущего (проигрываемого) мультибитрейтного потока.

setNetworkQualityThresholdCount(count: Int)

public func setNetworkQualityThresholdCount(count: Int)

Количество прерываний плеера из-за плохого сетевого соединения, необходимое для автоматического переключения на видеопоток с низким битрейтом.

Параметры:

  • count: Максимальное число прерываний работы плеера

setShowDebugInfo(newValue: Bool)

public func setShowDebugInfo(newValue: Bool)

Показывает либо скрывает отладочную информацию в правом верхнем углу окна плеера.

Параметры:

  • newValue: новое значение

Class PreviewMp4View

public class PreviewMp4View : UIView, NibLoadable

Загружает один кадр и показывает декодированное изображение как превью потока в плеере.

Загруженные изображения будут кэшироваться с использованием URL в качестве ключа.

В случае ошибки показывает изображение сломанной камеры.

statusListener: PreviewMp4ViewStatusListener?

public weak var statusListener: PreviewMp4ViewStatusListener?

Слушатель получит уведомление при смене статуса превью

status: PreviewMp4StatusEnum { get set }

public private(set) var status: PreviewMp4StatusEnum { get set }

Текущий статус превью видео с камеры.

init(frame: CGRect)

public override init(frame: CGRect)

Не задокументировано.

init?(coder: NSCoder)

public required init?(coder: NSCoder)

Не задокументировано.

(Инициализация) configure(withUrl url: URL, cacheKey: String?)

public func configure(withUrl url: URL, cacheKey: String?)

Настройка представления с помощью URL камеры.

Загрузка изображения начнется сразу, и успешно загруженное изображение будет помещено в кэш с использованием URL в качестве ключа.

Параметры:

  • url: URL, содержащий сессию пользователя:

    (protocol)://(session)@(server):(port)/(camera_name)/preview.mp4

(Инициализация) configure(withCameraItem cameraItem: CameraItem, cacheKey: String?)

public func configure(withCameraItem cameraItem: CameraItem, cacheKey: String?)

Настройка представления с помощью камеры CameraItem.

Загрузка изображения начнется сразу, и успешно загруженное изображение будет помещено в кэш с использованием cacheKey в качестве ключа.

Параметры:

reset()

public func reset()

Сбрасывает состояние представления при его переиспользовании.

Используется в UITableViewController, где при прокрутке старые представления переиспользуются для отображения новых картинок.

Метод reset() отменяет загрузку преью-картинки (если она еще не загружена) и сбрасывает состояние представления.

При этом текущая загрузка превью не будет отменена, и изображение будет кэшироваться при успешной загрузке.

cleanCache()

public func cleanCache()

Удаляет все превью из кэша.

При этом текущая загрузка превью не будет отменена, и изображение будет кэшироваться при успешной загрузке.

cleanCache(for cacheKey: String)

public func cleanCache(for cacheKey: String)

Очищает кэш указанного URL превью.

При этом текущая загрузка превью не будет отменена, и изображение будет кэшироваться при успешной загрузке.

layoutSubviews()

override public func layoutSubviews()

Не задокументировано.

setCacheKey(to cacheKey: String?)

public func setCacheKey(to cacheKey: String?)

Очищает старый кеш URL превью и загружает новые превью с новым cacheKey.

При этом текущая загрузка превью не будет отменена, и изображение будет кэшироваться при успешной загрузке.

Class ProgressEvent

public class ProgressEvent : NSObject

Класс используется для уведомления делегата о событиях, касающихся процесса получения и установки обновлений.

currentUtcInSeconds: Double

public private(set) var currentUtcInSeconds: Double

Текущее время UTC в секундах.

playbackStatus: UniversalStatus

public private(set) var playbackStatus: UniversalStatus

Текущий статус проигрывания.

playbackStatusString: String

public private(set) var playbackStatusString: String

Описание текущего статуса проигрывания.

speed: Double

public private(set) var speed: Double

Текущая скорость проигрывания.

Class DateTimeViewController

public class DateTimeViewController : UIViewController

Класс предоставляет способ определения даты и времени. DateTimeViewController — это календарь, который позволяет выбрать дату и время начала воспроизведения DVR архива.

startDate: Date

public var startDate: Date

Дата начала интервала видео для проигрывания.

Если дата начала находится в будущем, она будет уменьшена до текущей даты и времени.

onCompletion: ((Date?) -> Void)

public var onCompletion: ((Date?) -> Void)

Блок будет вызван при освобождении контроллера.

  • Возвращаемое значение: дата или ноль, если отменено.

instance() -> DateTimeViewController?

public static func instance() -> DateTimeViewController?

Функция загружает контроллер из внутренней storyboard.

Параметры:

  • Возвращаемое значение: экземпляр контроллера или nil если контроллер не удалось загрузить.

Enumeration UniversalStatus

public enum UniversalStatus : Int

Состояние плеера.

ERROR

case ERROR = 0

IDLE

case IDLE

PREPARING

case PREPARING

PLAYING

case PLAYING

PAUSED

case PAUSED

PLAYBACK_COMPLETED

case PLAYBACK_COMPLETED

Enumeration PreviewMp4StatusEnum

public enum PreviewMp4StatusEnum : Int8

Состояние загрузки изображения предварительного просмотра.

noUrl

case noUrl = 0

Изображение предварительного просмотра не указано.

loading

case loading

Изображение предварительного просмотра загружается.

loaded

case loaded

Изображение предварительного просмотра было успешно загружено.

loadedFromCache

case loadedFromCache

Не задокументировано.

error

case error

Ошибка, загрузка прервана.

Protocol FlussonicBufferingListener

public protocol FlussonicBufferingListener

Протокол определяет публичные методы FlussonicBufferingListener.

Используется для уведомления делегата о событиях буферизации.

onBufferingStart()

func onBufferingStart()

Вызывается при появлении метки буферизации.

onBufferingStop()

func onBufferingStop()

Вызывается при скрытии метки буферизации.

Protocol FlussonicDownloadRequestListener

public protocol FlussonicDownloadRequestListener : AnyObject

Протокол определяет публичные методы FlussonicDownloadRequestListener.

Используется для уведомления делегата о событиях запросов на загрузку видео.

onDownloadRequest(from: Int64, to: Int64)

func onDownloadRequest(from: Int64, to: Int64)

Вызывается при касании иконки с дискетой для сохранения выбранной части архива.

Параметры:

  • from: начало интервала в секундах, Unix time
  • to: околнчание интервала в секундах, Unix time

Внимание: Этот обработчик вам необходимо реализовать самостоятельно. Для этого нужно:

  1. Сформировать URL для скачивания, используя адрес стримера, токен и полученное в обработчике время начала и конца.

    URL на скачивание формируется согласно документации Экспорт в MP4

    URL должен иметь следующий вид:

    http://{camera.stream_status.server}/{camera.name}/archive-{from}-{duration}.mp4?token={camera.playback_config.token}

    где:

    • camera — объект, полученный из API https://flussonic.github.io/watcher-docs/api.html#get--vsaas-api-v2-cameras

      или

      https://flussonic.github.io/watcher-docs/api.html#get--vsaas-api-v2-cameras-(path-name)

    • from — целочисленный параметр, полученный в обработчике.

    • duration — длительность выгружаемого видеофрагмента в секундах. Формируется как разность параметров to, from. Вы можете корректировать это значение на основе вашей бизнес-логики, например, ограничивая максимальную длительность фрагмента.

  2. Произвести загрузку видеофрагмента, обратившись по полученному URL
    Эта процедура не является частью данного SDK, так как сильно зависит от используемых в приложении технологий, библиотек и прикладной логики
    Поэтому детали реализации оставляются на выбор разработчику, интегрирующему данный SDK.

Protocol FlussonicPlayerAdapterDelegate

public protocol FlussonicPlayerAdapterDelegate : AnyObject

Протокол определяет публичные методы FlussonicPlayerAdapter.

Используется для уведомления делегата об изменении состояния (статуса) плеера.

mediaPlayerStateChanged(_ aNotification: Notification!)

func mediaPlayerStateChanged(_ aNotification: Notification!)

Метод вызывается, когда происходит VLCMediaPlayerDelegate mediaPlayerStateChanged.

Параметры:

  • aNotification: Notification with the name mediaPlayerStateChanged

См. также: FlussonicVlcAdapter.mediaPlayerStateChanged(_: Notification!) (ссылка есть в ReadMe)

mediaPlayerTimeChanged(_ aNotification: Notification!)

func mediaPlayerTimeChanged(_ aNotification: Notification!)

Вызывается когда происходит VLCMediaPlayerDelegate mediaPlayerTimeChanged.

Параметры:

  • aNotification: Notification with the name mediaPlayerTimeChanged

См. также в Readme: FlussonicVlcAdapter.mediaPlayerTimeChanged(_: Notification!) (описание есть в ReadMe)

mediaPlayerTimeChanged(oldTimeValue: Double, newTimeValue: Double)

func mediaPlayerTimeChanged(oldTimeValue: Double, newTimeValue: Double)

Вызывается для того, чтобы изменить mediaPlayerTime вручную.

Параметры:

  • oldTimeValue: Double
  • newTimeValue: Double

См. также: FlussonicVlcAdapter.setupTimeObservation() (ссылка есть в ReadMe)

mediaPlayerSnapshot(_ aNotification: Notification!)

func mediaPlayerSnapshot(_ aNotification: Notification!)

Вызывается для снятия видео-скриншота проигрываемого потока.

Параметры:

  • aNotification: Notification with the name mediaPlayerSnapshot

См. также: FlussonicVlcAdapter.mediaPlayerSnapshot(_: Notification!) (ссылка есть в ReadMe)

Protocol FlussonicPlayerAdapterProtocol

public protocol FlussonicPlayerAdapterProtocol : AnyObject

Протокол определяет публичные методы FlussonicPlayerAdapter.

Используется для реализации адаптера для VLC плеера, необходимого для работы с Flussonic Watcher SDK для iOS.

delegate

var delegate: FlussonicPlayerAdapterDelegate? { get set }

drawable

var drawable: Any? { get set }

rate

var rate: Float { get set }

videoSize

var videoSize: CGSize { get }

hasVideoOut

var hasVideoOut: Bool { get }

timeValue

var timeValue: Double { get }

mediaUrl

var mediaUrl: URL? { get set }

audioIsMuted

var audioIsMuted: Bool { get set }

lastSnapshot

var lastSnapshot: UIImage? { get }

state

var state: FlussonicPlayerAdapterState { get }

mediaState

var mediaState: FlussonicPlayerAdapterMediaState { get }

play

func play()

pause

func pause()

stop

func stop()

saveVideoSnapshot

func saveVideoSnapshot(at path: String, withWidth width: Int32, andHeight height: Int32)

Protocol FlussonicUpdateProgressEventListener

public protocol FlussonicUpdateProgressEventListener

Протокол определяет публичные методы FlussonicUpdateProgressEventListener.

Используется для уведомления делегата о событиях, касающихся процесса получения и установки обновлений.

onUpdateProgress(event: ProgressEvent)

func onUpdateProgress(event: ProgressEvent)

Вызывается при событиях прогресса обновлений.

Protocol FlussonicWatcher

public protocol FlussonicWatcher : AnyObject

Протокол определяет публичные методы FlussonicWatcherView.

Используется для передачи делегату уведомления о событиях плеера.

setAllowDownload(allowDownload: Bool)

func setAllowDownload(allowDownload: Bool)

Устанавливает возможность загрузки части видеопотока в виде отдельного клипа.

Параметры:

  • allowDownload: новое значение.

setStartPosition(dateTimeInSecs: Int64)

func setStartPosition(dateTimeInSecs: Int64)

Устанавливает начальную позицию (время), с которой будет начато проигрывание видео.

Экземпляр FlussonicWatcherView попытается начать проигрывание видео с этой позиции, если возможно.

Параметры:

  • dateTimeInSecs: начальная позиция для проигрывания видео, в Unix timestamp.

pause()

func pause()

Ставит проигрываемый видеопоток на паузу.

resume()

func resume()

Возобновляет проигрывание текущего видеопотока. Прямая трансляция возобновится в режиме проигрывания прямого эфира, архив возобновит воспроизведение с текущей позиции в режиме проигрывания архива.

seek(seconds: TimeInterval)

public func seek(seconds: TimeInterval)

Проигрывает видео начиная с указанной позиции.

Параметры:

  • seconds: позиция, на которую необходимо перейти и с которой начать проигрывание, Unixtime.

screenshotCaptured: (UIImage) -> ()

public var screenshotCaptured: (UIImage) -> ()

Этот блок вызывается при создании скриншота видеопотока.

captureScreenshot(destUrl: URL)

public func captureScreenshot(destUrl: URL)

Создает скриншот видеопотока, который проигрывается в данный момент времени.

Параметры:

  • destUrl: UURL-адрес для сохранения изображения скриншота.

setBufferingListener(bufferingListener: FlussonicBufferingListener?)

public func setBufferingListener(bufferingListener: FlussonicBufferingListener?)

Установка слушателя на события буферизации.

Параметры:

  • bufferingListener: экземпляр, которому следует передавать уведомления о событиях.

setDownloadRequestListener(downloadRequestListener: FlussonicDownloadRequestListener?)

public func setDownloadRequestListener(downloadRequestListener: FlussonicDownloadRequestListener?)

Установка слушателя на события запросов на загрузку видео.

Параметры:

  • downloadRequestListener: экземпляр, которому следует передавать уведомления о событиях.

public func setUpdateProgressEventListener(updateProgressEventListener: FlussonicUpdateProgressEventListener?)

public func setUpdateProgressEventListener(updateProgressEventListener: FlussonicUpdateProgressEventListener?)

Установка слушателя на события, касающиеся процесса получения и установки обновлений.

Параметры:

  • updateProgressEventListener: экземпляр, которому следует передавать уведомления о событиях.

getCurrentUtcInSeconds() -> Int64

public func getCurrentUtcInSeconds() -> Int64

Текущая позиция, на которой плеер воспроизводит видео.

getPlaybackStatus() -> Int

public func getPlaybackStatus() -> Int

Текущий статус проигрывания.

getSpeed() -> CGFloat

public func getSpeed() -> CGFloat

Текущая скорость проигрывания.

getAvailableStreams() -> Array&ltStreamItem&gt

public func getAvailableStreams() -> Array<StreamItem>

Возвращает информацию о треках в доступных мультибитрейтных потоках.

getCurrentStream() -> StreamItem?

public func getCurrentStream() -> StreamItem?

Возвращает информацию о треках текущего (проигрываемого) мультибитрейтного потока.

setNetworkQualityThresholdCount(count: Int)

public func setNetworkQualityThresholdCount(count: Int)

Количество прерываний плеера из-за плохого сетевого соединения, необходимое для автоматического переключения на видеопоток с низким битрейтом.

Параметры:

  • count: Максимальное число прерываний работы плеера

setShowDebugInfo(newValue: Bool)

public func setShowDebugInfo(newValue: Bool)

Показывает либо скрывает отладочную информацию в правом верхнем углу окна плеера.

Параметры: * newValue: новое значение

Protocol FlussonicWatcherDelegateProtocol

public protocol FlussonicWatcherDelegateProtocol : AnyObject

Протокол определяет публичные методыFlussonicWatcherDelegateProtocol.

Используется для передачи делегату уведомления о событиях развертывания и свертывания панели инструментов.

expandToolbar()

func expandToolbar()

Вызывается плеером, когда началось разворачивание нижней панели инструментов.

collapseToolbar()

func collapseToolbar()

Вызывается плеером, когда началось сворачивание нижней панели инструментов.

showToolbar()

func showToolbar()

Вызывается плеером, когда нижняя панель инструментов появилась без анимации.

hideToolbar()

func hideToolbar()

Вызывается плеером, когда нижняя панель инструментов скрылась без анимации.

Protocol PreviewMp4ViewStatusListener

public protocol PreviewMp4ViewStatusListener : AnyObject

Протокол определяет публичные методы PreviewMp4ViewStatusListener.

Используется для передачи делегату уведомления о событиях изменения статуса PreviewMp4View.

onStatusChanged(_ status: Int8, _ code: String, _ message: String)

func onStatusChanged(_ status: Int8, _ code: String, _ message: String)

Эта функция вызывается при изменении состояния превью.

Параметры:

  • status: новый статус
  • code: код ошибки или 0 в случае отсутствия ошибки
  • message: сообщение об ошибке или "" в случае отсутствия ошибки.

Структура CameraItem

Структура описывает публичные поля CameraItem.

Может быть использована для инициализации классов FlussonicWatcherView и PreviewMp4View.

public struct CameraItem : Codable

Структура доступна глобально.

Содержит:

  • comment public let comment: String?

  • playbackConfig public let playbackConfig: PlaybackConfigItem См. PlaybackConfigItem

  • name public let name: String

  • title public let title: String

  • access public let access: String?

  • coordinates public let coordinates: String?

  • streamStatus public let streamStatus: StreamStatusItem См. StreamStatusItem

  • isStatic public let isStatic: Bool?

  • dvrEnabled public let dvrEnabled: Bool?

  • groups public let groups: Array<CameraGroupItem>? См. CameraGroupItem

  • owner public let owner: String?

  • dvrDepth public let dvrDepth: Int64?

  • permissions public let permissions: [String : Bool?]?

  • isAlive public func isAlive() -> Bool

  • useHttps public func useHttps() -> Bool

  • currentProtocol public func currentProtocol() -> String

  • currentPort public func currentPort() -> Int32

Структура CameraGroupItem

CameraGroupItem — это часть структуры CameraItem.

public struct CameraGroupItem : Codable

Структура доступна глобально.

Содержит:

  • id public let id: Int

  • title public let title: String

Структура PlaybackConfigItem

PlaybackConfigItem — это часть структуры CameraItem.

public struct PlaybackConfigItem : Codable

Структура доступна глобально.

Содержит:

  • token

    public let token: String

Структура StreamStatusItem

StreamStatusItem — это часть структуры CameraItem.

public struct StreamStatusItem : Codable

Структура доступна глобально.

Содержит:

  • lifetime

    public let lifetime: Int64?

  • sourceError

    public let sourceError: String?

  • bitrate

    public let bitrate: Int64?

  • alive

    public let alive: Bool

  • server

    public let server: String

  • httpPort

    public let httpPort: Int32?

  • httpsPort

    public let httpsPort: Int32?

Structure StreamItem

StreamItem содержит данные о выбранном видео-потоке.

public struct StreamItem : Codable

Стркутура доступна глобально.

Содержит:

  • bitrate

    public let bitrate: UInt32

  • codec

    public let codec: String

  • content

    public let content: StreamItemContentTyp

  • height

    public let height: Double?

  • lang

    public let lang: String?

  • lengthSize

    public let lengthSize: UInt32?

  • level

    public let level: String?

  • pixelHeight

    public let pixelHeight: Double?

  • pixelWidth

    public let pixelWidth: Double?

  • profile

    public let profile: String?

  • sarHeight

    public let sarHeight: Double?

  • sarWidth

    public let sarWidth: Double?

  • size

    public let size: String?

  • trackId

    public let trackId: String

  • width

    public let width: Double?