Skip to content

imagemlt/AMLDigitalFPV

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AMLDigitalFPV

简体中文说明

AMLDigitalFPV is an Amlogic-based ground FPV receiver for the OpenIPC ecosystem. It targets cheap consumer Amlogic boxes (e.g., S905L3A/S905X2) with strong hardware decode. The design borrows ideas from CoreELEC, moonlight-embedded, and pixelpilot_rk.

  • Video: GStreamer + libamcodec
  • Optional audio: RTP (payload 98, Opus) straight to ALSA, no A/V sync for lowest latency.

Prerequisites

  • CoreELEC toolchain (armv8a-libreelec-linux-gnueabihf-) and sysroot (toolchain/armv8a-libreelec-linux-gnueabihf/sysroot).
  • GStreamer, glib, spdlog, fmt (or bundled via spdlog), libamcodec present in sysroot.

Build

CMake (recommended)

cmake -B build -S . \
  -DCMAKE_SYSROOT=${SYSROOT_PREFIX} \
  -DCMAKE_C_COMPILER=${CC} \
  -DCMAKE_CXX_COMPILER=${CXX}
cmake --build build -j$(nproc)
# optional install:
cmake --install build --prefix=/tmp/stage

Legacy make

make            # builds AMLDigitalFPV
make clean      # removes build/ and binary

Edit CMakeLists.txt or Makefile to tweak sources/flags. Outputs live in build/, final binary AMLDigitalFPV in repo root.

Source Layout

  • src/: main.cpp, gstrtpreceiver.cpp, aml.c, util.c, etc.
  • CMakeLists.txt / Makefile: build scripts.
  • systemd/: amldigitalfpv.service unit.

Runtime Options

AMLDigitalFPV accepts several CLI flags:

Flag Default Description
-w <width> 1920 Expected video width used when calling aml_setup and when tagging recorded files.
-h <height> 1080 Expected video height.
-p <fps> 120 Expected frame rate (also controls DVR timestamp increments).
-s <path> (empty) Override DVR output location: point to a directory to auto-increment files there, or specify a .mp4 file for a fixed target. Without this flag the recorder searches /var/media, /media, /run/media, then /storage.

Recording remains off until a UDP command arrives on port 5612:

  • record=1 – start writing MP4.
  • record=0 – stop and close the file.

Audio RTP

Call enable_audio_stream(port, 98, "default") before start_receiving() to enable RTP audio (assumes Opus). Audio goes to alsasink without A/V sync to minimize latency.

Notes

  • Update toolchain/sysroot paths if your CoreELEC tree moves.
  • Missing libs? install into the CoreELEC sysroot.
  • Service can be installed/enabled via package.mk with enable_service amldigitalfpv.service.

About

amlogic openipc ground station

Resources

License

Stars

Watchers

Forks

Packages

No packages published