我正在接收来自我的相机的MJPEG流。当我使用十六进制编辑器查看视频数据时,它似乎不包含任何流信息。我只看到一个接一个的原始JPEG,但没有关于帧速率等的信息。
缺少任何元信息对于MJPEG来说是正常的,还是仅仅与我使用的相机有关?如果没有关于流的信息,播放器如何知道播放视频的速度?
发布于 2012-05-23 05:22:25
缺少元数据是正常的。IP摄像机通常将MJPEG作为流发送,一个接一个地发送JPEG图像。这是最基本的有效MJPEG文件。如果你把一堆mjpeg文件放在一起,把它们放到一个很大很大的文件中,并把它提供给ffmpeg,它会把它看作是一个有效的mjpeg格式的文件。一些摄像机会添加额外的报头来包含音频数据,但不需要将其视为有效的运动jpeg。
许多摄像机在最初发送流时都会在HTTP标头中包含X-Framerate之类的标头,或者您可以将其设置为摄像机配置的一部分。但是,当摄像机只发送jpeg时,无法从流本身判断帧速率是多少。
发布于 2012-06-02 01:22:25
缺少任何元信息对MJPEG来说是正常的,还是仅仅与我使用的相机有关?如果没有关于流的信息,播放器如何知道播放视频的速度?
除了已回答的问题外,IP camera是一个实时视频源,帧通常在从camera到达时立即呈现。罕见的IP摄像机附加额外的每帧信息,而不是fame大小(有些甚至不这样做!它们只发送数据和分隔符)。还有一些确实附加了时间戳和额外的数据,比如运动检测状态。
大多数IP摄像头不能实现恒定的帧率。也就是说,帧速率可能不同,例如。在弱光条件下,向下移动。在将数据多路复用为容器格式时,接收端有责任附加每帧时间戳。时间戳可以从元数据(很少存在)中恢复,或者更频繁地,接收者用本地接收时间标记帧。
这是播放器以适当的速率播放视频序列的方式。实况提要通常在“尽快显示接收到的帧”的基础上呈现。
发布于 2012-05-17 22:04:07
通常,MJPEG数据在流媒体包装器(如AVI或MOV (quicktime) )中发送。包装器格式将包含帧率和有关可选音频数据的信息。
https://stackoverflow.com/questions/10632454
复制相似问题