Stream MJPEG流信息

Stream MJPEG流信息,stream,jpeg,codec,mjpeg,ip-camera,Stream,Jpeg,Codec,Mjpeg,Ip Camera,我正在从我的相机接收MJPEG流。当我用十六进制编辑器查看视频数据时,它似乎不包含任何流信息。我只看到一个接一个的原始JPEG,但没有关于帧率等的信息 缺少任何元信息对MJPEG来说是正常的还是仅仅与我使用的相机有关?如果没有关于流的信息,播放器如何知道播放视频的速度?通常,MJPEG数据在流媒体包装器(如AVI或MOV(quicktime))中发送。包装格式将包含帧率和有关可选音频数据的信息。缺少元数据是正常的。IP摄像机通常就是这样发送MJPEG图像,一个又一个JPEG图像作为流。这是最基本

我正在从我的相机接收MJPEG流。当我用十六进制编辑器查看视频数据时,它似乎不包含任何流信息。我只看到一个接一个的原始JPEG,但没有关于帧率等的信息


缺少任何元信息对MJPEG来说是正常的还是仅仅与我使用的相机有关?如果没有关于流的信息,播放器如何知道播放视频的速度?

通常,MJPEG数据在流媒体包装器(如AVI或MOV(quicktime))中发送。包装格式将包含帧率和有关可选音频数据的信息。

缺少元数据是正常的。IP摄像机通常就是这样发送MJPEG图像,一个又一个JPEG图像作为流。这是最基本的有效MJPEG文件。如果你把一堆JPEG压缩成一个巨大的文件,然后把它输入ffmpeg,它会把它看作是一个有效的mjpeg格式的文件。一些相机会添加一个额外的标题来包含音频数据,但不需要将其视为有效的运动jpeg

许多摄像头在最初发送流时会在HTTP报头中包含一个类似X-Framerate的报头,或者您可以将其设置为摄像头配置的一部分。但是,当相机只发送JPEG时,无法从流本身判断帧速率是多少

缺少任何元信息对MJPEG来说是正常的还是仅仅与我使用的相机有关?如果没有关于流的信息,播放器如何知道播放视频的速度

除了已经回答的问题外,IP摄像机是一个实时视频源,帧通常在从摄像机到达时立即显示。罕见的IP摄像机附加了除声名大小以外的额外每帧信息(有些甚至不这样做!它们只发送数据和分隔符)。还有一些附加了时间戳和额外的数据,比如运动检测状态

大多数IP摄像机都不具备恒定的帧速率。也就是说,帧速率可能会有所不同,尤其是在低光照条件下。在将数据多路复用到容器格式时,接收方负责附加每帧时间戳。时间戳可以从元数据(很少存在)中恢复,或者——更常见的情况是——接收者用本地接收时间标记帧


这是播放器以适当速率播放视频序列的方法。Live feed通常以“尽快显示收到的帧”为基础呈现。

您是否检查了JPEG流(例如APPX标记)中的元数据以获取信息?发布一个示例框架,我将对其进行分析。