问题描述
|
我打算在OpenCV中使用FFMPEG对基于H.264的RTSP流进行解码,但是当我尝试这样做时会出现一些错误。后来,我发现许多人在使用ffmpeg(libavcodec)解码H.264流时遇到了问题。通常,在使用libavcodec时会弹出以下错误消息:
\“ [h264 @ 0xa766dd0]隐藏1200 DC,1200 AC,1200 MV错误\”
有没有人成功使用任何其他库来解码基于H.264的RTSP。如果是这样,那是库(我听说过live555在vlc Player中用于解码此类流)。我还想知道输出格式以及如何使其与OpenCV兼容(通常在opencv中,我们可以使用cvQueryFrame直接从视频流中提取帧,但是如果我们使用的是ffmpeg以外的库,那么如何使用关于它)。
提前致谢。
问候,
索拉·甘地
解决方法
VLC使用ffmpeg解码h.264。
如果您使用的SPS PPS错误或没有,则可能发生此问题。
您需要先从RTSP协议中提取它,然后将其传递给ffmpeg,然后再尝试对视频进行解码。,要解码您的RTSP流,最好的库是FFMPEG和Gstreamer。
要对流进行解码,您需要为解码器提供正确的缓冲区,您必须了解该缓冲区的H.264流,以便在将其SPS,PPS和NAL数据馈送到库解码器之前可以对其进行整理