0

我正在尝试使用 opencv 和 SDP 文件在 python 中播放一些 RTP 流。我得到一个灰色窗口,顶部有一些扭曲的图像(见附图),几秒钟后程序会崩溃,灰色窗口会关闭。

输出

我还尝试通过wireshark捕获流的数据包并使用媒体信息提取视频信息。

注意:提取的视频播放流畅。

捕获

使用GSpot的媒体信息

其他

SDP 文件包含:

v=0
m=video 5000 RTP/AVP 103
c=IN IP4 239.194.115.71
a=rtpmap:103 H264/90000

这些是终端中显示的错误代码:

[h264 @ 0000029d3c8d85c0] non-existing PPS 2 referenced
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3c8d85c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c8d85c0] non-existing PPS 0 referenced
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3c8d85c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c8d85c0] non-existing PPS 0 referenced
[h264 @ 0000029d3c8d85c0] decode_slice_header error
[h264 @ 0000029d3c8d85c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c8d85c0] non-existing PPS 0 referenced
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3c8d85c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c8d85c0] non-existing PPS 0 referenced
[h264 @ 0000029d3c8d85c0] decode_slice_header error
[h264 @ 0000029d3c8d85c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c8d85c0] non-existing PPS 0 referenced
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3c8d85c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c8d85c0] non-existing PPS 0 referenced
[h264 @ 0000029d3c8d85c0] decode_slice_header error
[h264 @ 0000029d3c8d85c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c8d85c0] non-existing PPS 0 referenced
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3c8d85c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c8d85c0] non-existing PPS 0 referenced
[h264 @ 0000029d3c8d85c0] decode_slice_header error
[h264 @ 0000029d3c8d85c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c8d85c0] non-existing PPS 0 referenced
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3c8d85c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c8d85c0] non-existing PPS 0 referenced
[h264 @ 0000029d3c8d85c0] decode_slice_header error
[h264 @ 0000029d3c8d85c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c8d85c0] non-existing PPS 0 referenced
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3c8d85c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c8d85c0] non-existing PPS 0 referenced
[h264 @ 0000029d3c8d85c0] decode_slice_header error
[h264 @ 0000029d3c8d85c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c8d85c0] non-existing PPS 0 referenced
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3c8d85c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c8d85c0] non-existing PPS 0 referenced
[h264 @ 0000029d3c8d85c0] decode_slice_header error
[h264 @ 0000029d3c8d85c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c8d85c0] non-existing PPS 0 referenced
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3c8d85c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c8d85c0] non-existing PPS 0 referenced
[h264 @ 0000029d3c8d85c0] decode_slice_header error
[h264 @ 0000029d3c8d85c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c8d85c0] non-existing PPS 0 referenced
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3c8d85c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c8d85c0] non-existing PPS 0 referenced
[h264 @ 0000029d3c8d85c0] decode_slice_header error
[h264 @ 0000029d3c8d85c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c8d85c0] non-existing PPS 0 referenced
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3c8d85c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c8d85c0] non-existing PPS 0 referenced
[h264 @ 0000029d3c8d85c0] decode_slice_header error
[h264 @ 0000029d3c8d85c0] no frame!
[h264 @ 0000029d3c8d85c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c8d85c0] non-existing PPS 0 referenced
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3c8d85c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c8d85c0] non-existing PPS 0 referenced
[h264 @ 0000029d3c8d85c0] decode_slice_header error
[h264 @ 0000029d3c8d85c0] no frame!
[h264 @ 0000029d3c8d85c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c8d85c0] non-existing PPS 0 referenced
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3c8d85c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c8d85c0] non-existing PPS 0 referenced
[h264 @ 0000029d3c8d85c0] decode_slice_header error
[h264 @ 0000029d3c8d85c0] no frame!
[h264 @ 0000029d3c8d85c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c8d85c0] non-existing PPS 0 referenced
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3c8d85c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c8d85c0] non-existing PPS 0 referenced
[h264 @ 0000029d3c8d85c0] decode_slice_header error
[h264 @ 0000029d3c8d85c0] no frame!
[h264 @ 0000029d3c8d85c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c8d85c0] non-existing PPS 0 referenced
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3c8d85c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c8d85c0] non-existing PPS 0 referenced
[h264 @ 0000029d3c8d85c0] decode_slice_header error
[h264 @ 0000029d3c8d85c0] no frame!
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3c8d85c0] top block unavailable for requested intra mode
[h264 @ 0000029d3c8d85c0] error while decoding MB 2 0, bytestream 353
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3c8d85c0] error while decoding MB 58 2, bytestream -11
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3c8d85c0] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3c8d85c0] error while decoding MB 13 3, bytestream -9
[h264 @ 0000029d3393e540] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3393e540] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3393e9c0] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3393e9c0] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3393e9c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3393e9c0] non-existing PPS 0 referenced
[h264 @ 0000029d3393e9c0] decode_slice_header error
[h264 @ 0000029d3c952300] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3c952300] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3c952300] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c952300] non-existing PPS 0 referenced
[h264 @ 0000029d3c952300] decode_slice_header error
[h264 @ 0000029d3cf7c940] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3cf7c940] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3cf7c940] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3cf7c940] non-existing PPS 0 referenced
[h264 @ 0000029d3cf7c940] decode_slice_header error
[h264 @ 0000029d3393e540] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3393e540] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3393e540] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3393e540] non-existing PPS 0 referenced
[h264 @ 0000029d3393e540] decode_slice_header error
[h264 @ 0000029d3393e9c0] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3393e9c0] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3393e9c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3393e9c0] non-existing PPS 0 referenced
[h264 @ 0000029d3393e9c0] decode_slice_header error
[h264 @ 0000029d3c952300] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3c952300] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3c952300] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c952300] non-existing PPS 0 referenced
[h264 @ 0000029d3c952300] decode_slice_header error
[h264 @ 0000029d3cf7c940] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3cf7c940] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3cf7c940] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3cf7c940] non-existing PPS 0 referenced
[h264 @ 0000029d3cf7c940] decode_slice_header error
[h264 @ 0000029d3393e540] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3393e540] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3393e540] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3393e540] non-existing PPS 0 referenced
[h264 @ 0000029d3393e540] decode_slice_header error
[h264 @ 0000029d3393e9c0] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3393e9c0] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3393e9c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3393e9c0] non-existing PPS 0 referenced
[h264 @ 0000029d3393e9c0] decode_slice_header error
[h264 @ 0000029d3c952300] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3c952300] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3c952300] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c952300] non-existing PPS 0 referenced
[h264 @ 0000029d3c952300] decode_slice_header error
[h264 @ 0000029d3c952300] no frame!
[h264 @ 0000029d3cf7c940] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3cf7c940] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3cf7c940] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3cf7c940] non-existing PPS 0 referenced
[h264 @ 0000029d3cf7c940] decode_slice_header error
[h264 @ 0000029d3cf7c940] no frame!
[h264 @ 0000029d3393e540] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3393e540] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3393e540] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3393e540] non-existing PPS 0 referenced
[h264 @ 0000029d3393e540] decode_slice_header error
[h264 @ 0000029d3393e540] no frame!
[h264 @ 0000029d3393e9c0] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3393e9c0] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3393e9c0] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3393e9c0] non-existing PPS 0 referenced
[h264 @ 0000029d3393e9c0] decode_slice_header error
[h264 @ 0000029d3393e9c0] no frame!
[h264 @ 0000029d3c952300] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3c952300] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3c952300] SPS unavailable in decode_picture_timing
[h264 @ 0000029d3c952300] non-existing PPS 0 referenced
[h264 @ 0000029d3c952300] decode_slice_header error
[h264 @ 0000029d3c952300] no frame!
[h264 @ 0000029d3cf7c940] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3cf7c940] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3cf7c940] top block unavailable for requested intra mode
[h264 @ 0000029d3cf7c940] error while decoding MB 2 0, bytestream 353
[h264 @ 0000029d3393e540] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3393e540] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3393e9c0] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3393e9c0] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3c952300] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3c952300] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3393e9c0] error while decoding MB 58 2, bytestream -11
[h264 @ 0000029d3cf7c940] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3cf7c940] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3393e540] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3393e540] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3393e9c0] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3393e9c0] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3393e9c0] error while decoding MB 13 3, bytestream -9
[h264 @ 0000029d3c952300] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3c952300] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3c952300] cabac decode of qscale diff failed at 59 2
[h264 @ 0000029d3c952300] error while decoding MB 59 2, bytestream 217
[h264 @ 0000029d3cf7c940] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3cf7c940] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3393e540] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3393e540] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3393e9c0] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3393e9c0] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3c952300] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3c952300] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3cf7c940] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3cf7c940] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3cf7c940] cabac decode of qscale diff failed at 70 1
[h264 @ 0000029d3cf7c940] error while decoding MB 70 1, bytestream 337
[h264 @ 0000029d3393e540] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3393e540] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3393e540] error while decoding MB 71 2, bytestream -17
[h264 @ 0000029d3393e9c0] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3393e9c0] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3393e9c0] error while decoding MB 33 2, bytestream -11
[h264 @ 0000029d3c952300] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3c952300] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3c952300] top block unavailable for requested intra mode
[h264 @ 0000029d3c952300] error while decoding MB 2 0, bytestream 371
[h264 @ 0000029d3cf7c940] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3cf7c940] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3393e540] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3393e540] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3393e9c0] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3393e9c0] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3c952300] Invalid NAL unit 12, skipping.
[h264 @ 0000029d3c952300] Invalid NAL unit 12, skipping.
[h264 @ 0000029d3cf7c940] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3cf7c940] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3393e540] Invalid NAL unit 12, skipping.
[h264 @ 0000029d3393e540] Invalid NAL unit 12, skipping.
[h264 @ 0000029d3393e9c0] Invalid NAL unit 12, skipping.
[h264 @ 0000029d3393e9c0] Invalid NAL unit 12, skipping.
[h264 @ 0000029d3c952300] Invalid NAL unit 12, skipping.
[h264 @ 0000029d3c952300] Invalid NAL unit 12, skipping.
[h264 @ 0000029d3cf7c940] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3cf7c940] Invalid NAL unit 11, skipping.
[h264 @ 0000029d3393e540] Invalid NAL unit 12, skipping.
[h264 @ 0000029d3393e540] Invalid NAL unit 12, skipping.
[h264 @ 0000029d3393e540] cabac decode of qscale diff failed at 118 1
[h264 @ 0000029d3393e540] error while decoding MB 118 1, bytestream 379
[h264 @ 0000029d3393e9c0] Invalid NAL unit 12, skipping.
[h264 @ 0000029d3393e9c0] Invalid NAL unit 12, skipping.
[h264 @ 0000029d3c952300] Invalid NAL unit 12, skipping.
[h264 @ 0000029d3c952300] Invalid NAL unit 12, skipping.
[h264 @ 0000029d3c952300] cabac decode of qscale diff failed at 70 1
[h264 @ 0000029d3c952300] error while decoding MB 70 1, bytestream 377
[h264 @ 0000029d3cf7c940] Invalid NAL unit 12, skipping.
[h264 @ 0000029d3cf7c940] Invalid NAL unit 12, skipping.
[h264 @ 0000029d3393e540] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3393e540] Invalid NAL unit 10, skipping.
[h264 @ 0000029d3393e9c0] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3393e9c0] Invalid NAL unit 0, skipping.
[h264 @ 0000029d3393e9c0] top block unavailable for requested intra mode -1
[h264 @ 0000029d3393e9c0] error while decoding MB 4 0, bytestream 291
[h264 @ 0000029d3c952300] Invalid NAL unit 12, skipping.
[h264 @ 00
Process finished with exit code -1

Python代码:

vcap = cv2.VideoCapture('test.sdp')

while (1):
    ret, frame = vcap.read()
    cv2.imshow('VIDEO', frame)
    cv2.waitKey(1)

线鲨转储:

https://drive.google.com/open?id=1zppjXVgEcL8Ws-xP3e1J7NJF1UGdPzMA

我是否在 SDP 文件中使用了错误的编解码器代码或时钟速率才能正确显示流?

4

2 回答 2

0

确保视频流以 SPS、PPS 开头。你可以在wireshark中检查这个。(如果可以的话,分享wireshark转储)

首先启动您的 python 脚本,然后从实时摄像头开始流式传输。

这将确保您不会错过网络摄像机的任何初始帧。

rtp的采样频率没有问题。

于 2019-10-30T06:54:46.477 回答
0

ffmpeg 解码帧存在某种问题,我改用 VLC 的 python 绑定

图片

于 2019-11-05T08:57:36.060 回答