Products >> Online Help >> Media Client User Manual

Media Client User Manual

1. Introduction

Happytime Media Client is a desktop multi-window video surveillance/playback application. It can play live streams and local media files simultaneously in a multi-window grid, supporting RTSP, RTMP, HTTP-FLV, HTTP-MJPEG, SRT and local files. Each channel supports independent snapshot, recording, audio control, full screen and more.

2. Main window overview

The main window ("Happytime media client") consists of:
  Video grid — a multi-window layout holding one or more playback channels (default 2×2 = 4 windows).
  Bottom toolbar — icon buttons for global operations.
main window

Toolbar buttons :
  stop all : Stop all videos — stop/close the video in every channel.
  mute all : Mute all videos — mute the audio of every channel.
  full screen : Full screen — switch the whole grid to full screen (press Esc to exit).
  one / four / six / nine / sixteen : Switch to the 1, 4, 6, 9 or 16-window grid layout.
  custom layout : Custom layout — open the custom layout editor.
  system setting : System setting — open the System Settings dialog.
  online help : Online help — open the online documentation in your browser.

Clicking a channel selects it (highlighted with a purple border). The active cell is the target for operations such as opening media.

3. Quick start

  1. Start the application.
  2. Click any video window (it becomes the selected cell).
  3. Press the center Play button in the floating control bar, or double-click the cell to open the Open Media dialog, as the following:
    open media
  4. Enter a stream URL or select a local file, then click OK.
  5. The video begins playing; use the floating control bar to manage playback.

The current layout and every channel's URL are saved automatically when you exit, and restored the next time the application starts.

4. Opening media

Click the center Play button on a channel (or double-click the video surface) to open the Open Media dialog. It has two tabs.

Open File :
  File Path — enter a local media file path or click Select to browse.
  Supported formats are broad (.mp4, .avi, .mkv, .flv, .ts, .mov, .wmv, .rmvb, .264/.h264/.265/.h265, audio formats such as .aac/.mp3/.wav/.flac, and many more). Files are decoded with FFmpeg, so other formats may also work.
  You can also drag & drop a media file directly onto a video window to play it.

Open Url :
  Url — enter the stream address. The URL format is validated; otherwise the message "Invalid URL format!" is shown.
  Username / Password — optional authentication (used by RTSP/HTTP).

Supported protocols :
  rtsp:// — standard RTSP
  rtsps:// — RTSP oer SSL
  ws:// / wss:// — RTSP over WebSocket
  rtmp://, rtmpt://, rtmps://, rtmpe://, rtmpfp://, rtmpte://, rtmpts:// — RTMP family
  http:// / https:// — HTTP-FLV / HTTP-MJPEG (the type is auto-detected)
  srt:// — SRT

For http:// / https:// URLs the application probes the server and automatically selects the correct player: RTSP-over-HTTP tunnel, HTTP-FLV, or HTTP-MJPEG.
If a cell already plays a URL, the Open Url tab is shown first for convenience.

5. Per-channel controls

Hovering over a video window displays a floating control bar (semi-transparent) with the following controls, as the following:
video window controls
  Pause / Play — pause or resume the stream (hidden for SRT streams).
  Stop — close the video in this channel.
  Mic — RTSP audio backchannel (talk-back) — send microphone audio to the server (RTSP streams only).
  Snapshot — capture the current frame as a JPEG image.
  Record — start / stop recording this channel to an AVI file.
  Elapsed time — playback position, format MM:SS or HH:MM:SS.
  Progress bar — shows playback progress; drag to seek (works for local files and RTSP; ignored by live HTTP/RTMP/SRT/MJPEG).
  Duration — total duration (0 for live streams).
  Volume — mute / unmute toggle.
  Volume slider — adjust volume from 0 to 255.
  Play (center) — open the Open Media dialog to change the source.

Right-click context menu :
  Close Video
  Fill the whole window / Keep the original aspect ratio (render mode)
  Full Screen / Exit Full Screen
  Media information ... — opens the Media Info dialog (video codec, resolution, frame rate, audio codec, sample rate, channels, and the URL).

Mouse / keyboard gestures :
  Single click — select the channel.
  Double-click — toggle channel full screen (press Esc or double-click again to restore).
  Drag & drop a file — play the dropped file in that channel.
  Esc — exit full screen.

6. Multi-window layouts

Use the toolbar to switch the video grid:
  1, 4, 6, 9, 16 — pre-defined grid layouts. When switching, existing playing videos are kept and re-arranged; windows with no video are removed.

Custom layout
Click custom logo Custom Layout to open the editor, as the following:
custom layout
  1. Set the Grid size (Rows/Cols, 1–64).
  2. Drag on the grid to draw zones (regions).
  3. Right-click a zone → Del Zone to remove it; right-click empty space → Clear Zones to remove all.
  4. A zone's URL can be set by dragging a stream URL text into it.
  5. Click OK to apply the custom layout to the main window.

Layout files
In System Settings → Video window layout you can Save Layout / Load Layout to store and restore the entire grid arrangement (including each cell's URL and credentials) as an XML file.

7. Full screen

  Grid full screen : click the toolbar Full Screen button. The whole video grid expands to fill the screen. Press Esc to exit.
  Single channel full screen : double-click a channel. Press Esc or double-click again to restore.

8. Snapshot

  1. Set a valid snapshot folder in System Settings → Recording → Snapshot Path (or click the folder button to browse).
  2. While a video is playing, click Snapshot in the floating control bar.
  3. The current frame is saved as a JPEG file named <stream>_YYYYMMDD_HHMMSSmmm.jpg in the snapshot path (e.g. 192.168.1.10_20260826_153045123.jpg). A confirmation popup shows the saved location.

9. Recording

  1. Set a valid folder in System Settings → Recording → Recording Path.
  2. During playback, click Record in the floating control bar to start recording; click again to stop.
  3. Files are saved as AVI named <stream>_YYYYMMDD_HHMMSSmmm.avi in the recording path.

Recording options in System Settings:
  Max recording time (HH:mm:ss) — stop and switch to a new file after this duration. 0 = unlimited.
  Max file size (KB) — automatically split the recording into a new AVI file when the size is reached. 0 = unlimited (1 GB default cap).

Supported video codecs for AVI: H.264, H.265/HEVC, MJPEG, MPEG-4; audio: G.711 A-law/μ-law, G.726, G.722, AAC. If the connection drops, the channel auto-reconnects and recording resumes.

10. System settings

Open via the toolbar system setting System Setting button, as the following:
system setting
Settings are saved when you click Confirm.

General
  Enable Log — turn runtime logging on/off.
  Language — System / English / Chinese — takes effect after restart.
  Log Level — TRACE / DEBUG / INFO / WARNING / ERROR / FATAL.

Network
  Prefer to use RTP over UDP — use RTP-over-UDP for RTSP where possible.
  Force multicast RTP via RTSP — request multicast RTP.
  Tunnel RTSP and RTP over HTTP — tunnel RTSP through an HTTP proxy, with configurable HTTP port (default 80).
  Tunnel RTSP and RTP over Websocket — tunnel RTSP through WebSocket, with configurable Websocket port (default 80).

Playback
  Hardware-accelerated decoding — Automatic / platform-specific hardware decoder (Direct3D11, DXVA2, Video Toolbox, MediaCodec, VAAPI, OpenCL) / Disable.
  Default video render mode — "Keep the original aspect ratio" or "Fill the whole window".
  Audio capture device — select the microphone used for the RTSP backchannel.

Recording
  Snapshot Path — where snapshot JPEGs are saved (folder button to browse, open-folder button to view).
  Recording Path — where recording AVI files are saved.
  Max recording time — automatic file switch after a duration (0 = unlimited).
  Max file size (KB) — automatic file switch after a size (0 = unlimited).

Video window layout
  Save Layout — save the current grid and all channel URLs to an XML file.
  Load Layout — load a previously saved layout.

On Confirm, the application validates that both the snapshot and recording paths exist, otherwise it asks you to correct them.

11. Media information

Right-click a channel → Media information ... to view, as the following:
media information
  Video : codec (H264 / H265 / MP4 / MJPEG), resolution (e.g. 1920 x 1080), frame rate.
  Audio : codec (AAC / G711A / G711U / G726 / G722 / OPUS), sample rate, channels.
  URL : the full media address.

12. Connection status and auto-reconnect

The video surface shows status text while connecting or on errors: Connecting, Connect failed, NO Signal, NO Data, Authenticate failed, Invalid url.
The application automatically retries a failed/no-signal/no-data channel every 5 seconds until the stream is restored.

13. Configuration and logs

Persistent settings
All settings are stored via QSettings:
  Windows: registry key HKCU\Software\happytimesoft\mediaclient.
  Linux: ~/.config/happytimesoft/mediaclient.conf.
This includes general options, network options, recording/snapshot paths, the current window layout, and each cell's URL/credentials.

Log files
When logging is enabled, log files are written to the application directory as mediaclient-YYYYMMDD_HHMMSS.log. There is no in-app log viewer — open the log file directly.

14. Keyboard and mouse shortcuts

  Esc — exit grid full screen.
  Esc — exit channel full screen.
  Double-click — toggle channel full screen.
  Single click — select a channel.
  Drag & drop — play a local file onto a channel.
  Right-click — open a channel's context menu.

15. Frequently asked questions

Q: I entered a URL but the channel shows "Connect failed".
Check the address and credentials, and verify network reachability. The channel will retry automatically every 5 seconds.

Q: Why can't I seek in my stream?
Seeking works for local files and RTSP playback. Live streams (HTTP-FLV, MJPEG, RTMP, SRT) do not support seeking.

Q: Where are my snapshots/recordings?
In the folders set under System Settings → Recording. Files are named with the stream name and a timestamp.

Q: The language didn't change.
The language setting takes effect after the application is restarted.

Q: Where can I find more help?
Click the Online Help button in the toolbar to open the online documentation.