vvidic / mjpeg-proxy

Republish a MJPEG HTTP image stream using a server in Go
GNU General Public License v3.0
22 stars 15 forks source link

Quality of life pull request #1

Closed kescherCode closed 4 years ago

kescherCode commented 4 years ago

I applied gofmt, fixed some static analysis warnings, fixed up the Content-Type checking a bit, but removed the checking for valid boundaries, because some webcam streams (such as a lot of those by AXIS webcams) don't properly append the boundary name for each frame. However, this shouldn't be an issue. This is a proxy, and, in my opinion, the proxy shouldn't be responsible for checking how valid the MJPEG stream is; it is just supposed to restream it.

kescherCode commented 4 years ago

Thanks a lot for merging the pull request! I might add more features in future pull requests, for instance, binding multiple streams to one process.

vvidic commented 4 years ago

On Sun, Jul 19, 2020 at 03:26:10AM -0700, Jeremy Kescher wrote:

Thanks a lot for merging the pull request! I might add more features in future pull requests, for instance, binding multiple streams to one process.

No problem, I have updated the code some more now. Can you provide some example of this Axis stream with invalid boundaries?

-- Valentin

vvidic commented 4 years ago

Just added support for multiple sources using a config file :)

kescherCode commented 4 years ago

@vvidic I can email you a URL which exhibits this behaviour, but for documentation purposes, here's what seems to happen:

Where the boundary marker usually should be for each frame, there is just a newline for all frames after the first one. This caused the proxy to forward just one image and then stop due to an invalid boundary (which is an empty string in the error message)