pub struct StreamMetadata {
pub key: StreamKey,
pub publisher_addr: Option<SocketAddr>,
pub width: u32,
pub height: u32,
pub fps: f64,
pub video_bitrate_bps: u64,
pub audio_bitrate_bps: u64,
pub started_at_ms: u64,
pub ingest_protocol: String,
}Expand description
Runtime metadata about a stream, updated continuously while publishing.
Resolution and the ingest protocol are set by the protocol handler (e.g. via
StreamHandle::update_metadata after parsing the codec config), while the
fps and *_bitrate_bps fields are overlaid live from measured throughput
by StreamHandle::metadata_snapshot.
Fields§
§key: StreamKeyThe (app, stream_id) this metadata describes.
publisher_addr: Option<SocketAddr>Publisher remote address.
width: u32Video width in pixels (0 = unknown).
height: u32Video height in pixels (0 = unknown).
fps: f64Video frames per second (0 = unknown). Overlaid from measured throughput.
video_bitrate_bps: u64Measured video ingest bitrate in bits-per-second.
audio_bitrate_bps: u64Measured audio ingest bitrate in bits-per-second.
started_at_ms: u64Timestamp of the first frame received (Unix ms).
ingest_protocol: StringProtocol used for ingest (e.g. "rtmp").
Implementations§
Trait Implementations§
Source§impl Clone for StreamMetadata
impl Clone for StreamMetadata
Source§fn clone(&self) -> StreamMetadata
fn clone(&self) -> StreamMetadata
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for StreamMetadata
impl RefUnwindSafe for StreamMetadata
impl Send for StreamMetadata
impl Sync for StreamMetadata
impl Unpin for StreamMetadata
impl UnsafeUnpin for StreamMetadata
impl UnwindSafe for StreamMetadata
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more