通过 RTSP 进行 MJPEG 流传输
我正在通过 RTSP 从 IP 摄像机捕获 JPEG 图像。我使用 live555 + libavcodec 来流式传输和解码 MJPEG 图像。该流在图像分辨率高达 2048 x 1920 的情况下工作正常。但是当我将图像宽度增加到 2048 以上时,我得到一个宽度非常小的条形矩形图像(即 544x1920)。图像被正确捕获并保存在相机上。仅当我通过 RTSP 将图像流式传输到 PC 时,才会出现此问题。对于高分辨率 MJPEG,RTP 中是否有有效负载限制?
I am capturing JPEG images from an IP-camera over RTSP. I use live555 + libavcodec for streaming and decoding the MJPEG image. The stream works fine up to the image resolution 2048 x 1920. But when I increase the image width above 2048, I get a bar-shaped rectangular image of very small width (i.e., 544x1920). The image is correctly captured and saved on the camera. The problem occurs only when I stream the image over RTSP to the PC. Is there any payload restriction in RTP for high-resolution MJPEG?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
请阅读 https://www.rfc-editor.org/rfc/rfc2435第 4 页的底部。那里写着图像的最大宽度为 2040。ONVIF 标准可以提供解决方法。
Please read https://www.rfc-editor.org/rfc/rfc2435 at the bottom of page 4. There, it is written that the maximum width of an image is 2040. A workaround is made possible with the ONVIF standard.
更有可能的是,解码器错误地解码了图像,或者 RTP 客户端错误地重建了图像。 2048 像素并不是 JPEG 的限制(显然),而且 RTP 客户端不会处理太多解析比特流的问题,因此分辨率在那里并不那么重要(而且该过程到达解码图像并且不会在途中完全失败!)。
More likely, either decoder incorrectly decodes the image, or RTP client incorrectly reconstructs it. 2048 pixels is not a limit for JPEG (obviously) and RTP client does not deal a lot with parsing the bitstream, so resolution is not so important there (also the process reaches decoded image and does not fail completely on the way!).