Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Falcon BMS Display Streamer

Stream Falcon BMS avionics displays—MFD, DED, PFL, RWR, and HUD—over the network as an MPEG‑TS/UDP video stream using FFmpeg.

The tool reads display textures from Falcon BMS shared memory, composites them into a configurable screen layout, encodes the result with FFmpeg, and streams it via UDP. You can then display it with ffplay (or any UDP receiver) as an overlay or window.

image

What this does

  • Reads Falcon BMS texture shared memory (FalconTexturesSharedMemoryArea).
  • Crops individual displays: HUD, MFDLeft, MFDRight, DED, RWR, PFL.
  • Composes them into a single video frame according to a JSON layout.
  • Encodes the frame with FFmpeg (H.264) and sends it over UDP.
  • You display it with ffplay (or any UDP‑capable player) as an overlay/window.

Requirements

  • Falcon BMS (4.35+ with RTT texture export enabled)
  • .NET 6+ runtime
  • FFmpeg
    • Included in the release package, or
    • Any system ffmpeg (just configure the path in config.json)

Enable RTT texture export in Falcon BMS

In your Falcon BMS config (typically User\Config\Falcon BMS.cfg), ensure RTT texture export is enabled:

set g_bExportRTTTexture 1

(The exact line name may vary by version; look for “RTT” or “export texture” in your config comments.)

Restart Falcon BMS after changing this.


Configure the display (config.json)

Create or edit config.json in the same folder as FalconDisplay.exe.

Example:

{
  "OutputWidth": 1920,
  "OutputHeight": 1080,
  "TargetIp": "192.168.1.22",
  "TargetPort": 11000,
  "FfmpegPath": "ffmpeg.exe",
  "Fps": 60,
  "Sensors": [
    {
      "Name": "HUD",
      "X": 0,
      "Y": 0,
      "Width": 640,
      "Height": 480
    },
    {
      "Name": "MFDLeft",
      "X": 640,
      "Y": 0,
      "Width": 400,
      "Height": 400
    },
    {
      "Name": "MFDRight",
      "X": 1040,
      "Y": 0,
      "Width": 400,
      "Height": 400
    },
    {
      "Name": "DED",
      "X": 0,
      "Y": 480,
      "Width": 400,
      "Height": 300
    },
    {
      "Name": "RWR",
      "X": 400,
      "Y": 480,
      "Width": 400,
      "Height": 300
    },
    {
      "Name": "PFL",
      "X": 800,
      "Y": 480,
      "Width": 400,
      "Height": 300
    }
  ]
}

Fields:

  • OutputWidth, OutputHeight – final composed resolution.
  • TargetIp, TargetPort – where FFmpeg sends the UDP stream.
  • FfmpegPath – path to ffmpeg.exe (e.g. "ffmpeg.exe" if in PATH, or a full path).
  • Fps – target framerate (e.g. 60). If omitted or 0, defaults to 60.
  • Sensors – list of displays to include:
    • Name – one of: HUD, MFDLeft, MFDRight, DED, RWR, PFL.
    • X, Y – top‑left position in the output frame.
    • Width, Height – size in the output frame (the tool will scale from the real sensor).

Run FalconDisplay

Launch:

FalconDisplay.exe

or with a custom config:

FalconDisplay.exe config.json

The program will:

  1. Wait for Falcon BMS shared memory.
  2. Initialize the sensors and read their rectangles.
  3. Start FFmpeg and begin streaming to TargetIp:TargetPort.

Keep this window open while flying. Press any key to stop.


Set up the viewer PC with ffplay

On the same PC (or another one, if you point TargetIp to it), open a command prompt and run:

ffplay -window_title "FalconDisplay" -alwaysontop -noborder -left 0 -top 0 -flags low_delay -fflags nobuffer udp://0.0.0.0:11000

Adjust:

  • udp://0.0.0.0:11000 → match TargetPort (and optionally bind to a specific IP).
  • -left 0 -top 0 → position on your screen.
  • Remove -noborder or -alwaysontop if you prefer a normal window.

Example: windowed, not fullscreen, on a second monitor at offset 1920×0:

ffplay -window_title "FalconDisplay" -left 1920 -top 0 -flags low_delay -fflags nobuffer udp://0.0.0.0:11000

You should now see your composed Falcon BMS displays in a separate window.

About

Stream Falcon BMS avionics displays over MPEG-TS with configurable screen compositing

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages