Go to file
Nathan van Doorn c82334aae1 Notice that flake-utils is in the flakes registry 2023-10-13 19:03:00 +02:00
aja-ntv2 Use callPackage machinery for dependency resolution a bit more 2023-10-13 19:02:39 +02:00
flake.lock Notice that flake-utils is in the flakes registry 2023-10-13 19:03:00 +02:00
flake.nix Notice that flake-utils is in the flakes registry 2023-10-13 19:03:00 +02:00
no.patch initial commit 2023-10-03 01:45:51 +01:00
ntv2-gst.nix initial commit 2023-10-03 01:45:51 +01:00
readme.md add readme 2023-10-03 02:30:11 +01:00

readme.md

AJA Video Cards ❤️ Nix

This repo contains a Nix flake containing the open source AJA driver, utilities and gstreamer plugin. This allows you to use Aja video IO cards on NixOS.

Usage

  • Add the flake to your system flake's inputs.
  • Apply the overlay to your system's nixpkgs, e.g.
    nixpkgs.overlays = [ ajantv2.overlays.default ];
    
  • Add the kernel driver:
    # Include the kernel module 
    boot.extraModulePackages = [pkgs.ajantv-driver];
    # And load it automatically
    boot.kernelModules = [ "ajantv2" ];
    
  • Include the utils/demos and gstreamer plugin:
    environment.systemPackages = [pkgs.ajantv-utils pkgs.aja-ntv2-gst]
    

Gstreamer

Summon a quick network stream: gst-launch-1.0 ajavideosrc input-channel=0 mode=29 ! videoconvert ! jpegenc quality=20 ! multipartmux boundary="--videoboundary" ! tcpserversink host=0.0.0.0 port=6969

NB: You must select the video mode to match what's on the input. Otherwise you will see something like:

Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
WARNING: from element /GstPipeline:pipeline0/GstAjaVideoSrc:ajavideosrc0: Signal lost
Additional debug info:
gstajavideosrc.cpp(1324): gst_aja_video_src_create (): /GstPipeline:pipeline0/GstAjaVideoSrc:ajavideosrc0:
No input source was detected - video frames invalid

You can find all the supported video modes with: gst-inspect-1.0 ajavideosrc.