mifan
October 20, 2025, 5:25am
1
When I use the following statement to push streams and capture packets, during SDP negotiation, sometimes the video port is 0 and sometimes the audio port is 0
gst-launch-1.0 d3d11screencapturesrc ! video/x-
raw,width=1920,height=1080,framerate=30/1 ! queue ! videoconvert ! x264enc speed-
preset=ultrafast tune=zerolatency ! video/x-h264,profile=baseline ! queue !
whipclientsink name=whip_sink signaller::whip-endpoint==$WHIP_ENDPOIN wasapisrc
loopback=true low-latency=true ! audioconvert ! audioresample ! opusenc ! queue !
whip_sink.
I’ve spent many hours bashing my head into the same limited set of problems, and am bewildered, and frustrated by the limited documentation available. Any insight would be appreciated.
Please note the bundle attribute at the session level. Both audio and video are bundled together. Either of the below two should not be a problem.
a=group:BUNDLE audio0 video1
a=group:BUNDLE video0 audio1
Please see RFC8866 and RFC 8843 which states the following,
updates RFC 3264 [RFC3264 ], to also allow assigning a zero port value to an “m=” section in cases where the media described by the “m=” section is not disabled or rejected.
Port being 0 should not be a problem.
There should also a bundle-only attribute in that SDP which is probably clipped in the screenshot. See Section 1.4 of RFC8866 for the same.
mifan
October 20, 2025, 8:18am
3
This is the complete SDP. Please take a look at that side
Can you clarify more about the problems you see aside from the SDP?
I see ZLMediaKit as the server. Do you have problems on the WHEP side or pulling stream from ZLMediaKit?
mifan
October 20, 2025, 8:38am
5
When transmitting the stream, the audio stream was not penetrated. The audio bitrate is 0 when pulling the stream
It is possible that the stream being pulled from ZLMediaKit is the problem due to how it handles OPUS. See related issue.
opened 09:34AM - 22 Sep 25 UTC
closed 12:41PM - 23 Sep 25 UTC
bug
## 现象描述
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4645 … for the corresponding GStreamer bug report with a sample file.
When adding Opus to MPEG-TS, it is necessary to add a small header to each access unit. See the opus_control_header in section 6.2.1 in https://opus-codec.org/docs/ETSI_TS_opus-v0.1.3-draft.pdf .
ZLMediaKit apparently does not do this and just puts raw Opus data into MPEG-TS.
Issue is appearing in latest master commit.
## 如何复现?
Follow details in https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4645
## 相关日志或截图
<details>
<summary>展开查看详细日志</summary>
<pre>
```
#详细日志粘在这里!
```
</pre>
</details>
## 配置
<details>
<summary>展开查看详细配置</summary>
<pre>
```ini
#config.ini内容粘在这里!
```
</pre>
</details>
## 各种环境信息
* **代码提交记录/git commit hash**:
* **操作系统及版本**:
* **硬件信息**:
* **crash backtrace**:
```
#崩溃信息backtrace粘贴至此
```
* **其他需要补充的信息**:
There is a fix in GStreamer upstream for the same with this MR .
You might want to try another server like mediamtx and see if the problem is reproducible.
mifan
October 20, 2025, 9:36am
7
Thank you for your guidance, but I still think there is a problem with the command