Skip to content
/ bpm Public

Broadcast Performance Metrics (BPM) for AWS IVS Multitrack Streaming

License

Notifications You must be signed in to change notification settings

anttiai/bpm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Broadcast Performance Metrics (BPM)

Library for collecting Broadcast Performance Metrics for AWS IVS Multitrack Streaming. Written in Rust, with support for C and C++ via a Foreign Function Interface (FFI). The user should send metrics in-band via SEI (for AVC/HEVC) or OBU (AV1) messages on all video tracks just prior to the IDR. This library maintains internal state within single process.

Concept

Integrate with encoding software such as FFmpeg or GStreamer. Call bpm_frame_encoded after successfully encoding a frame. Use bpm_frame_lagged and bpm_frame_dropped to track lagged and dropped frames, respectively. For keyframes, render and fetch metrics using bpm_render_ts_ptr, bpm_render_sm_ptr, and bpm_render_erm_ptr. Inject the returned data into SEI or OBU messages and free the memory with bpm_destroy.

Build

cargo build --release

Example in C

Build and run the C example

gcc -o build/example example.c -Ltarget/release/ -lbpm
./build/example

About

Broadcast Performance Metrics (BPM) for AWS IVS Multitrack Streaming

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published