You're taking a video stream and converting it to individual still images? Most video frames are composed by listing changes over time, and most mainstream video formats are lossy. Extracting individual frames and sending those across the wire will be both processor intensive and bandwidth intensive.
At higher resolutions and framerates, even grayscale you're looking at multiple gigabits per second. If you're on lower resolution like NTSC's 720x480 @ 8 bits per pixel you're still looking at several hundred Mbps unless you run it through a video compressor. The choice between UDP or TCP will largely be irrelevant. Unless you've got a thumbnail video or your video stream is a slideshow, the protocol will be dwarfed by the volume of data involved.
But let's ignore the volume of data involved in a video stream, and assume you've got that figured out....
You're asking a question about how to move data from place to place.
In the real world when you need to move things you don't start by laying pavement and designing vehicles; you use existing roads and existing vehicles. But your question about transport-layer communications is much like starting with pavement design.
Communications is mostly a solved problem, you shouldn't spend your time solving it again.
There are plenty of message passing and data streaming tools out there. At the most basic, you could maintain an open HTTP request/response stream to each machine as was mentioned earlier. Both SOAP and REST are easy, well-established protocols, and there are tools that make these work as easily as calling a long-running function. Or there are other tools. If you've following more of a high-performance cluster environment, MPI could handle the work of passing images around. If you're following the current trendy software then Apache has several projects, such as Spark or Flink, that can probably handle that part for you instead. If for some reason none of the hundreds of existing tools and technologies don't work for you, and for whatever reason you MUST implement your own version at the transport layer, I'd choose TCP over UDP in this case, simply because you don't need to re-invent the handling of ensuring your packets arrive in the correct order across the line. But really, if you're reduced to going at that level, you're writing the wrong code.
No sense re-inventing the wheel when there are so many existing communications tools that easily do all the work for you.