WebRTC信令成功,但没有视频通过

时间:2020-08-27 14:06:14

标签: webrtc ros amazon-kinesis-video-streams

我正在尝试使用WebRTC从机器人设置视频流。

据我所知,信令成功建立了连接,但是没有视频在流传输。

我将AWS Kinesis Video用作信令服务器,并将AWS Kinesis video streams WebRTC sdk用作主节点。

对于观看者,我使用Kinesis WebRTC Test Page,唯一的变化是观看者不请求任何音频。

我相信信号传递是有效的。至少查看者正在发送和接收ICE候选者,并且没有错误。

主节点也开始按预期发送数据,但是视频从未在查看器上显示。

我的问题是如何调试问题出在哪里?

我查看了Chrome的webrtc内部结构,并生成了这些图形。这告诉我chrome正在接收数据包,但没有解码帧。正确吗?

enter image description here

在机器人上,我将RoS作为中间层运行,并且试图流式传输USB网络摄像头。
为此,我正在运行h264_video_encoder node。节点启动时,它告诉我它具有以下设置:

264 - core 152 r2854 e9a5903 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=2 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=3 lookahead_threads=3 sliced_threads=1 slices=3 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=1 keyint=30 keyint_min=16 scenecut=40 intra_refresh=0 rc=abr mbtree=0 bitrate=2048 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00

我怀疑最可能的问题是编码,但是我不知道如何继续调试此问题。

1 个答案:

答案 0 :(得分:2)

我遇到的问题是我生成的h264流缺少SPS和PPS NAL,因此查看器不知道如何解码流。

潜在的问题是我正在从包含编码流的KinesisVideoFrame.msg进行转换,但是我没有意识到frame_data不包含SPS和PPS数据包。这些数据包存储在codec_private_data中,因此我必须将codec_private_data放在frame_data之前,以获取要通过流发送的最终帧数据

相关问题