HTTP-FLV Player and MSE Diagnostics
Learn how HTTP-FLV can be played through browser MSE using mpegts.js, flv.js or Jessibuca.
Short answer
HTTP-FLV is often used for low-latency live preview. It is not a native browser video format, but players such as mpegts.js, flv.js or Jessibuca can handle it.
Where it sits in a video pipeline
HTTP-FLV means the server continuously outputs FLV data over one HTTP connection, while the frontend player parses it as it arrives.
It is commonly used as a web preview output converted from RTSP/RTMP.
How to use it in a browser project
Do not expect `<video src="live.flv">` to work across browsers. The frontend needs a player to extract audio/video from FLV and feed browser media APIs.
The common playable combination is H.264 video + AAC audio.
What the server has to do
The server must keep FLV data continuous, avoid proxy buffering, set CORS correctly and handle reconnects.
Common development scenarios
- Internal monitoring preview, engineering debugging, live dashboards and cases needing lower latency than HLS without WebRTC.
Debugging order
- First confirm the response is real FLV, not an HTML error page or JSON auth error.
- Then check MSE availability, H.264/AAC codecs and whether CORS allows the player to read the stream.
Recommended conversion paths
- RTSP/RTMP -> HTTP-FLV for low-latency engineering preview.
- For large public delivery, provide HLS as well.
Minimum usable implementation
- Frontend: load the FLV URL with mpegts.js or a similar player.
- Backend: output valid FLV tags, disable unwanted proxy buffering and provide CORS headers.
Developer decision rule
HTTP-FLV should be judged by its role in the delivery chain, not by the protocol name alone. Browser result: Requires an MSE player. Before promising playback, confirm the source type, whether a server conversion is required, CORS and HTTPS policy, codec support and the latency target.