通过 HTTP 发送 M-JPEG 时,首先发送带有
Content-Type: multipart/x-mixed-replace;boundary=<your boundary>
的标头,然后每次出现 \r\n--<your boundary>\r\n
序列时,浏览器将其视为一个部分的结束和下一部分的开始。
问题是 JPEG 可以包含该序列,无论是在注释中还是仅仅因为该字节序列恰好出现在有效负载中。
我知道,如果您在发送初始 HTTP 响应标头时知道所有 jpeg 图像,则可以构造一个不会出现在任何 jpeg 中的边界。但大多数时候,当您使用 M-JPEG 时,jpeg 是动态生成的。如何选择保证不会出现在 jpeg 中的边界?是否存在从未出现在有效 jpeg 中的字节序列?或者最好的策略只是选择一个足够长的随机边界,碰撞的概率很小并希望得到最好的结果..?
与任何常见边界标记发生碰撞的可能性非常小。只需使用您正在阅读的教程中的任何边界标记即可继续。