Unity-SRS播放器发布后不工作

问题描述 投票:0回答:1

我unity发布,在web上播放。如果播放器先于发布者启动,可以获取视频和音频,但刷新页面后视频消失。如果发布者先于播放器启动,则接收者只有音频,无法获取视频。以上结果已通过 chrome://webrtc-internals/ 验证。这不符合正常流程。是bug吗?

我试着发布后等一会再播放,视频还是不行

unity3d srs simple-realtime-server
1个回答
0
投票

那是因为你的编码器没有响应 PLI 请求,请看这个问题例如。

对于 NVCodec,您必须设置一个标志以使用 SPS/PPS 对关键帧进行编码,例如this PR

picParams.encodePicFlags = NV_ENC_PIC_FLAG_FORCEINTRA | NV_ENC_PIC_FLAG_FORCEIDR 
  | NV_ENC_PIC_FLAG_OUTPUT_SPSPPS;

H.264的序列头是SPS/PPS,H.265的是SPS/PPS/VPS,只是简称而已

如果不设置标志,你可能会得到一个错误

avc ignore type=1 for no sequence header
。没有序列头意味着没有 SPS/PPS,所以它无法解码视频流。

编码器生成IDR帧(一般为关键帧)时应设置

NV_ENC_PIC_FLAG_OUTPUT_SPSPPS
。对于 WebRTC,关键帧也与 SPS/PPS 一起发送,因为 SPS/PPS 可能会改变。

© www.soinside.com 2019 - 2024. All rights reserved.