Skip to content

NEKO_CAPTURE_VIDEO_PIPELINE is being ignored #610

@jameskitt616

Description

@jameskitt616

I need some help with the neko v3 config here.
I configured custom NEKO_CAPTURE_VIDEO_PIPELINE and NEKO_CAPTURE_BROADCAST_PIPELINE pipelines.
The broadcast pipeline seems to work fine, but the capture pipeline seems to have no effect.
Note how i set show-pointer=false for the capture pipeline, it's an easy way to check if this pipeline is being used and for some reason i still the cursor and tweaking all the other settings in the pipeline also has no effect.
To my understanding from the docs https://neko.m1k1o.net/docs/v3/configuration/capture#video.pipelines if NEKO_CAPTURE_VIDEO_PIPELINE is being defined this pipeline is being used, unless NEKO_CAPTURE_VIDEO_PIPELINES are defined (which are not)

networks:
  neko_net:
    driver: bridge

services:
  neko:
    image: ghcr.io/m1k1o/neko/intel-firefox:latest
    container_name: neko_test
    restart: unless-stopped
    shm_size: 4gb
    cap_add:
      - SYS_ADMIN
    devices:
      - /dev/dri:/dev/dri
    networks:
      - neko_net
    ports:
      - "8080:8080"                    # Web interface
      - "52000-52100:52000-52100/udp"  # WebRTC
    volumes:
      - "./profile:/home/neko/.mozilla/firefox/profile.default"
    environment:
      TZ: "Europe/Berlin"

      # ---- WebRTC ----
      NEKO_WEBRTC_NAT1TO1: "192.168.178.36"
      NEKO_WEBRTC_EPR: "52000-52100"
      NEKO_WEBRTC_ICELITE: "1"

      # ---- Desktop ----
      NEKO_DESKTOP_SCREEN: "1920x1080@30"

      # ---- Auth ----
      NEKO_MEMBER_MULTIUSER_USER_PASSWORD: "user"
      NEKO_MEMBER_MULTIUSER_ADMIN_PASSWORD: "admin"
      NEKO_SESSION_CONTROL_PROTECTION: "true"

      # ---- Capture Broadcast pipeline ----
      NEKO_SERVER_PROXY: "true"
      NEKO_CAPTURE_VIDEO_CODEC: "h264"
      NEKO_CAPTURE_BROADCAST_URL: "placeholder" # No need to chance this line, it's handled by NEKO_CAPTURE_BROADCAST_PIPELINE. It's only needed to be filled so it's possible to start the BroadcastNEKO_CAPTURE_BROADCAST_PIPELINE
      NEKO_BROADCAST_AUTOSTART: false

      NEKO_CAPTURE_VIDEO_PIPELINE: |
        ximagesrc display-name={display} show-pointer=false use-damage=false !
        videoconvert !
        videoscale !
        video/x-raw,width=1920,height=1080,framerate=30/1 !
        vaapih264enc rate-control=cbr bitrate=6144 keyframe-period=30 !
        h264parse !
        queue !

        pulsesrc device=audio_output.monitor !
        audioconvert !
        audioresample !
        audio/x-raw,channels=2 !
        voaacenc bitrate=320000 !
        aacparse !
        queue !
        mux.

      NEKO_CAPTURE_BROADCAST_PIPELINE: |
        ximagesrc display-name={display} show-pointer=false use-damage=false !
        queue max-size-buffers=2 leaky=downstream !
        videoconvert !
        videorate !
        videoscale !
        video/x-raw,width=1920,height=1080,framerate=30/1 !
        vaapih264enc rate-control=cbr bitrate=6144 keyframe-period=30 !
        h264parse !
        queue !
        mpegtsmux name=mux alignment=7 !
        udpsink host=rtsp_server port=1234 sync=false buffer-size=524288

        pulsesrc device=audio_output.monitor !
        queue !
        audioconvert !
        audioresample !
        audio/x-raw,channels=2 !
        voaacenc bitrate=320000 !
        aacparse !
        queue !
        mux.

  rtsp_server:
    image: bluenviron/mediamtx:latest-ffmpeg
    container_name: mediamtx_test
    restart: unless-stopped
    networks:
      - neko_net
    ports:
      - "8556:8554"   # RTSP output
      - "8889:8888"   # HLS output
    environment:
      MEDIAMTX_RTSPTRANSPORTS: tcp

      # ---- Neko Broadcast Source ----
      MTX_PATHS_LIVE_SOURCE: "udp://rtsp_server:1234?pkt_size=1316"

      # Audio encoder (force stereo)
      MTX_PATHS_LIVE_HLS_AUDIO_ENCODER: aac
      MTX_PATHS_LIVE_HLS_AUDIO_ENCODER_ARGS: "audio_bitrate=320k,channels=2"

      # ---- Optimized STANDARD HLS (NOT LL-HLS) ----
      MTX_HLSMODE: muxer
      MTX_HLSVARIANT: mpegts
      MTX_HLSALWAYSREMUX: yes
      MTX_HLSSEGMENTDURATION: "1s"     # 1 second segments
      MTX_HLSSEGMENTCOUNT: "4"         # ~4s real latency

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions