RTSP 提要屏幕截断

RTSP Feed Screen Cutoff

最近我一直在尝试使用 Vivitar 折叠无人机 中的 RTSP 流。通过对Vivitar Folding Drone应用程序的.apk文件进行逆向工程,我发现无人机的RTSP地址是rtsp://192.168.1.1:7070/webcam 但是,每当我通过 VLC 或 FFPLAY 使用此流时,大部分提要都会被切断并替换为绿屏或灰屏(取决于我是否保存到 .mjpeg 文件或 .dump 文件)。这个问题的原因是什么?我可以采取什么步骤来解决这个问题?

使用FFPLAY时,我使用如下命令:

ffplay -i -rtsp_flags rtsp://192.168.1.1:7070/webcam

当我第一次使用 ffplay 开始使用流时,我也收到此错误:

[swscaler @ 00000240daeadf80] deprecated pixel format used, make sure you did set range correctly

关于流的每一帧,我都收到此错误消息:

[mjpeg @ 00000240d6226b00] mjpeg_decode_dc: bad vlc: 0:0 (00000240d6266050)
[mjpeg @ 00000240d6226b00] error dc
[mjpeg @ 00000240d6226b00] error y=1 x=0

注意:我不确定这是否相关,但 Vivitar 无人机创建了自己的 wifi 网络,如果您想使用 RTSP 流,必须登录该网络

此外,通过 Vivitar 折叠无人机 应用程序查看时,无人机馈送效果非常好。我似乎无法通过 FFPLAY、FFMPEG 或 VLC 正确显示它。

更新:

经进一步检查,似乎 Vivitar 折叠无人机 可能没有发送单帧的所有 jpg 数据。这是通过 RTSP 提要发送的未更改字节数据生成的图像。

我从这张图片中注意到三件事:

  1. 图像似乎缺少大量数据。
  2. 图像似乎发生了红移
  3. 图像的两个可见部分应该是连续的(看起来第二个视觉部分与第一个视觉部分对齐)。下面是一个例子。

问题在于 JPEG 重启标记标准被 Vivitar 软件破坏了。可以找到 cehoyo 更详细的解释和解决方案 here. I forked a version of the FFMPEG project and have applied the changes from cehoyo's solution on the FFMPEG forum in this Git fork.