• randomblock1@lemmy.world
    link
    fedilink
    arrow-up
    7
    ·
    7 hours ago

    This seems like a silly workaround at first but it’s really not. If the network is unreliable, you can’t really use normal video streaming, you need to send full screenshots. Probably still a better idea to use only I-frames than a bunch of JPEGs but whatever.

    But they did make some very silly mistakes. Par for the course of an AI coding company I guess.

    1. WTF are you doing with 40mbps. Tone it down to like 8.
    2. If the network is reliable but slow, just reduce bitrate and resolution. Don’t use JPEGs unless packet loss is the problem.
    3. WTF are you doing using a whole game streaming server for? It’s meant for LAN, with minimal latency. Just capture the screen and encode it, send via WebSockets. Moonlight is completely unnecessary.
    4. Only keep the latest frames on the server. Don’t try to send them all immediately or it’ll fall behind. Wait for the client to finish receiving before sending another one. This way it won’t lag behind increasingly. This should have been extremely obvious.
    5. H264 is so 2003, ask the client if it supports AV1 or HEVC then use that, more data for free.
    6. Use WebTransport when available, it’s basically made for live streaming
    7. Why are you running a screenshot tool in terminal then grabbing the jpg… Unnecessary file overhead & dependency

    I probably missed some but even for an AI company this is really bad