Processing Video Serverside and streaming via ffmpeg

I am tryping to process a video on the server side using Mediasoup PlainRTPTransport, i am piping my RTP stream to ffmpeg to gather the image frames

  const cmdArgStr = [
    "-protocol_whitelist file,rtp,udp",
    "-fflags +genpts",
    `-i ${`configs/input-${audioPortRtp}-vp8.sdp`}`,
    "-vf fps=30",
    "-f image2pipe", // Output as image pipe
    .join(" ")

  console.log(`Run command: ${cmdProgram} ${cmdArgStr}`);

This is how i convert my rtp stream to image Frame datas ,

Later i process it via tfjs , and conver it back to an image Buffer, Now i wanna conver this image back to a video and inject it into my media soup router.

I followed this tutorial

const ffmpeg = spawn(FFmpegStatic, [
   // "-framerate",
   // "30",
   "-", // Read input from stdin
   "format=yuv420p", // Required for RTP streaming
   "libvpx", // Video codec
   "ultrafast", // Preset for faster encoding
   // "-tune",
   // "zerolatency", // Tune for zero latency
   "rtp", // Output format RTP
   // "tee",
   // `[select=v:f=rtp:ssrc=22222222:payload_type=96]rtp://${videoRTPPort}?rtcpport=${videoRTCPPort}`,

i am using this configuration for streaming my local image as rtp stream , I’ve checked the stream with ffplay , it seems to work fine , but when i try to view the steram on the clinet side it just doent work and i get a empty video loading …

  const videoTransport = await router.createPlainTransport({
      listenIp: "",
      rtcpMux: false,
      comedia: true,

    // Read the transport local RTP port.
    const videoxRtpPort = videoTransport.tuple.localPort;
    // Read the transport local RTCP port.
    const videoxRtcpPort = videoTransport.rtcpTuple?.localPort ?? 0;
    console.log({ videoxRtpPort, videoxRtcpPort });
 const videoxProducer = await videoTransport.produce({
      kind: "video",
      rtpParameters: {
        codecs: [
            mimeType: "video/VP8",
            clockRate: 90000,
            payloadType: 96,
            rtcpFeedback: [], // FFmpeg does not support NACK nor PLI/FIR.
            parameters: {
              "x-google-start-bitrate": 1000,
        encodings: [{ ssrc: 22222222 }],
      getId(socket) + "altered",