INTEGRATION · 100MS · LIVE VIDEO · AUDIO · STREAMING
AVAILABLE FOR WORKFreelance · Contract · Full-time

100ms integration for live video and audio in Flutter.

100ms gives you managed WebRTC rooms without building media infrastructure. The work is in the parts around the call: who gets a token, which role they join with, what happens on a bad network, and how a session is recorded or streamed.

Rooms · Tokens · Recording · RTMP · HLS · Waiting rooms

01 · TOKENS

Tokens and roles belong on your server

The app secret must never ship inside the Flutter build. Your backend creates a room and issues a short-lived token containing the room id, user id and role — host, viewer, moderator or guest.

That token is also where authorisation lives. If the app can request any room id, it can join sessions the customer did not pay for.

02 · EXPERIENCE

Waiting rooms, devices and permissions

The join flow needs camera and microphone permission handling, a preview, device selection and a waiting room for host-approved sessions. Rotation, backgrounding and incoming calls all interrupt a mobile video session and need to be handled.

The best integration is the one where a failed permission or a dropped connection leaves the user with a clear next step.

03 · SCALE

Recording, streaming and weak networks

100ms supports server-side recording, RTMP/HLS live streaming and simulcast. That makes it suitable for classes, webinars, telemedicine and paid sessions, not just one-to-one calls.

For poor connections, audio-only fallback and lower video layers keep the session usable instead of freezing it.

04 · OPERATIONS

Sessions that can be supported

Webhooks for room started, ended, recording ready and participant joined give you an audit trail. Attendance, duration and recording URLs belong in your database, not only in the vendor dashboard.

Moderation tools — mute, remove, lock room — and a support path for failed joins matter as soon as real customers use it.

WHAT'S INCLUDED

Live sessions that behave in production

  • ✓
    Rooms
    One-to-one, group and stage sessions.
  • ✓
    Tokens and roles
    Server-issued, short-lived tokens with host and viewer roles.
  • ✓
    Waiting room
    Host-approved entry for classes and paid sessions.
  • ✓
    Recording
    Server-side recording with URLs delivered by webhook.
  • ✓
    Live streaming
    RTMP and HLS output for larger audiences.
  • ✓
    Device handling
    Camera, microphone, speaker and rotation changes.
  • ✓
    Weak networks
    Reconnection, audio-only fallback and simulcast.
  • ✓
    Session data
    Attendance, duration and room events stored on your backend.
SELECTED EXPERIENCE

Real products, practical engineering.

Explore examples of mobile, Smart TV and integrated product work.

Browse all projects ↗
COMMON QUESTIONS

Working together

100ms or Agora or LiveKit?

100ms bundles the room UX and recording/streaming features, Agora is a large managed media platform, and LiveKit gives more control if you self-host. The right choice depends on recording, regions, moderation, pricing and how much infrastructure you want to own. I can build against whichever fits.

Do I need a backend for 100ms?

Yes. The app secret and token signing belong on the server, and webhooks for room and recording events need somewhere to land.

Can it work for audio-only sessions?

Yes. Audio-only is useful for low bandwidth, voice rooms and calls where video adds nothing. The join and token flow stays the same.

Is recording included?

100ms offers server-side recording and live streaming, but they are product features with their own configuration, storage and consent requirements. I wire them into your backend and show the customer what is being recorded.

LET’S TALK

Need this kind of help on your product?

Share the product, current stage and the support you need. I will review the context and suggest a practical next step.