通过UDP协议接收h264视频流时出现Gstreamer错误

问题描述

我正在尝试使用GStreamer通过UDP接收h264流。然后,我以4-2-2较高的配置文件对收到的视频进行编码。然后将其发送到我的dvr计算机。但是在这些过程中,我收到各种错误和警告。结果,在我的dvr计算机上创建的视频没有前10秒。当我使用VLC媒体播放器打开视频时,屏幕上出现黑色图像10秒钟。然后VLC继续播放视频。但是我看不到前10秒。这10秒的时间值会改变。

我的问题是我该如何改善录制流畅而完整的视频而又没有缺陷的渠道?

enter image description here

我收到的错误和警告:

WARNING: Gstreamer: broken/invalid nal Type: 1 Slice,Size: 2699 will be dropped

INFO: Gstreamer: stream-start event without group-id. Consider implementing group-id handling in the upstream elements

error: XDG_RUNTIME_DIR not set in the environment.

ERROR: Gstreamer: out of range intra chroma pred mode
ERROR: Gstreamer: error while decoding MB 43 9

WARNING: Gstreamer: CONTINUITY: Mismatch packet 8,stream 15
ERROR: Gstreamer: Invalid UE Golomb code
ERROR: Gstreamer: cbp too large (3199971767) at 40 20
ERROR: Gstreamer: error while decoding MB 40 20

WARNING: Gstreamer: CONTINUITY: Mismatch packet 14,stream 14
ERROR: Gstreamer: corrupted macroblock 13 34 (total_coeff=-1)
ERROR: Gstreamer: error while decoding MB 13 34



ERROR: Gstreamer: left block unavailable for requested intra mode
ERROR: Gstreamer: error while decoding MB 0 12
ERROR: Gstreamer: cbp too large (61) at 40 1
ERROR: Gstreamer: error while decoding MB 40 1
ERROR: Gstreamer: negative number of zero coeffs at 17 1
ERROR: Gstreamer: error while decoding MB 17 1
ERROR: Gstreamer: out of range intra chroma pred mode
ERROR: Gstreamer: error while decoding MB 18 24
ERROR: Gstreamer: corrupted macroblock 22 34 (total_coeff=-1)
ERROR: Gstreamer: error while decoding MB 22 34
ERROR: Gstreamer: negative number of zero coeffs at 0 1
ERROR: Gstreamer: error while decoding MB 0 1
ERROR: Gstreamer: P sub_mb_type 5 out of range at 11 34
ERROR: Gstreamer: error while decoding MB 11 34
ERROR: Gstreamer: P sub_mb_type 4 out of range at 15 24
ERROR: Gstreamer: error while decoding MB 15 24
ERROR: Gstreamer: out of range intra chroma pred mode
ERROR: Gstreamer: error while decoding MB 33 13

WARNING: Gstreamer: ignoring DTS going backward

WARNING: Gstreamer: Failed to read SE
WARNING: Gstreamer: error parsing "Picture parameter set"
WARNING: Gstreamer: Failed to parse PPS:
WARNING: Gstreamer: broken/invalid nal Type: 8 PPS,Size: 4 will be dropped
WARNING: Gstreamer: Failed to read SE
WARNING: Gstreamer: error parsing "Picture parameter set"
WARNING: Gstreamer: Failed to parse PPS:
WARNING: Gstreamer: broken/invalid nal Type: 8 PPS,Size: 4 will be dropped
ERROR: Gstreamer: Invalid level prefix
ERROR: Gstreamer: error while decoding MB 38 4
WARNING: Gstreamer: broken/invalid nal Type: 5 Slice IDR,Size: 32772 will be dropped
WARNING: Gstreamer: broken/invalid nal Type: 1 Slice,Size: 5076 will be dropped
WARNING: Gstreamer: broken/invalid nal Type: 1 Slice,Size: 4785 will be dropped
ERROR: Gstreamer: mb_type 414 in P slice too large at 19 2
ERROR: Gstreamer: error while decoding MB 19 2
ERROR: Gstreamer: mb_type 56 in P slice too large at 20 15
ERROR: Gstreamer: error while decoding MB 20 15



ERROR: Gstreamer: mb_type 54 in P slice too large at 5 6
ERROR: Gstreamer: error while decoding MB 5 6

GStreamer-CRITICAL **: 18:23:50.428: _gst_util_uint64_scale_int: assertion 'denom > 0' Failed
ERROR: Gstreamer: top block unavailable for requested intra mode
ERROR: Gstreamer: error while decoding MB 1 0
WARNING: Gstreamer: Could not send sticky events
WARNING: Gstreamer: error: Internal data stream error.
WARNING: Gstreamer: error: streaming stopped,reason not-negotiated (-4)

ERROR: Gstreamer: negative number of zero coeffs at 13 4
ERROR: Gstreamer: error while decoding MB 13 4

ERROR: Gstreamer: mb_type 39 in I slice too large at 41 4
ERROR: Gstreamer: error while decoding MB 41 4
ERROR: Gstreamer: mb_type 34 in P slice too large at 34 20
ERROR: Gstreamer: error while decoding MB 34 20
ERROR: Gstreamer: mb_type 93 in P slice too large at 19 19
ERROR: Gstreamer: error while decoding MB 19 19
ERROR: Gstreamer: out of range intra chroma pred mode
ERROR: Gstreamer: error while decoding MB 24 18
ERROR: Gstreamer: Invalid inter IDR frame
WARNING: Gstreamer: avdec_h264: decoding error (len: -1094995529,have_data: 0)
ERROR: Gstreamer: out of range intra chroma pred mode
ERROR: Gstreamer: error while decoding MB 7 2

WARNING: Gstreamer: delta - skew: 0:00:01.037366978 too big,reset skew
WARNING: Gstreamer: delta - skew: 5124095:34:32.691299831 too big,reset skew

我使用的管道:

udpsrc port={PORT} buffer-size=100000000 ! queue ! tsdemux parse-private-sections=TRUE ! h264parse ! avdec_h264 ! videoconvert ! x264enc ! capsfilter caps=video/x-h264,profile=(string)high-4:2:2 ! mpegtsmux ! udpsink host={DVR_IP} port={DVR_PORT} sync=FALSE

我尝试了什么:

我使用下面给出的gstreamer管道而不是VLC打开了生成的视频文件。再次在视频开头播放了几秒钟。

视频播放非常快。一分钟之内,视频播放了2分钟。

gst-launch-1.0 filesrc location=5-1602155127551.ts ! queue ! video/mpegts ! tsdemux ! h264parse ! queue2 ! avdec_h264 ! videoconvert ! autovideosink sync=false

视频播放非常慢。一分钟之内,视频播放了40秒。

gst-launch-1.0 filesrc location=5-1602155127551.ts ! queue ! video/mpegts ! tsdemux ! h264parse ! queue2 ! avdec_h264 ! videoconvert ! autovideosink sync=true

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)