For the complete documentation index, see llms.txt. This page is also available as Markdown.

Live Uploads

Treat an uploaded stream as real time and drop frames to keep up

When your application is pushing frames in real time — a camera you are reading yourself, a transcoder's output — is_live tells the worker to treat the stream as real time. Frames are dropped when inference cannot keep pace, instead of queueing up and drifting further behind the present.

Fetched rtsp:// sources are treated as live automatically, so this is only needed for streams you upload. Relaying a camera from your own network is exactly this case — see Relayed cameras.

# frames: a file-like object written to in real time — a pipe, or your own buffer
with EyePopSdk.sync_worker(pop=pop) as endpoint:
    job = endpoint.upload_stream(frames, "video/mpegts", is_live=True)
    while result := job.predict():
        print(result)

On the async endpoint the stream can also be an async iterable of bytes, which suits frames you are generating rather than writing somewhere.

Not available. The Node SDK publishes live media over WebRTC instead, which is live by definition — see Live from a browser.

Last updated