From 4134c73745ff63d44186ed608735ea432b244755 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 21 三月 2024 22:38:56 +0800
Subject: [PATCH] 优化Track的构建
---
src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java | 39 +++++++++++++++++++++++++++++++++++++--
1 files changed, 37 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
index 0bde0cf..eae1dde 100755
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
@@ -18,7 +18,8 @@
import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommander;
import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform;
import com.genersoft.iot.vmp.gb28181.utils.SipUtils;
-import com.genersoft.iot.vmp.media.IMediaServerService;
+import com.genersoft.iot.vmp.media.bean.Track;
+import com.genersoft.iot.vmp.media.service.IMediaServerService;
import com.genersoft.iot.vmp.media.zlm.SendRtpPortManager;
import com.genersoft.iot.vmp.media.zlm.ZLMRESTfulUtils;
import com.genersoft.iot.vmp.media.zlm.ZLMServerFactory;
@@ -1048,7 +1049,41 @@
public StreamInfo onPublishHandler(MediaServerItem mediaServerItem, OnStreamChangedHookParam hookParam, String deviceId, String channelId) {
- StreamInfo streamInfo = mediaService.getStreamInfoByAppAndStream(mediaServerItem, "rtp", hookParam.getStream(), hookParam.getTracks(), null);
+ List<OnStreamChangedHookParam.MediaTrack> tracks = hookParam.getTracks();
+ Track track = new Track();
+ track.setReaderCount(hookParam.getTotalReaderCount());
+ for (OnStreamChangedHookParam.MediaTrack mediaTrack : tracks) {
+ switch (mediaTrack.getCodec_id()) {
+ case 0:
+ track.setVideoCodec("H264");
+ break;
+ case 1:
+ track.setVideoCodec("H265");
+ break;
+ case 2:
+ track.setAudioCodec("AAC");
+ break;
+ case 3:
+ track.setAudioCodec("G711A");
+ break;
+ case 4:
+ track.setAudioCodec("G711U");
+ break;
+ }
+ if (mediaTrack.getSample_rate() > 0) {
+ track.setAudioSampleRate(mediaTrack.getSample_rate());
+ }
+ if (mediaTrack.getChannels() > 0) {
+ track.setAudioChannels(mediaTrack.getChannels());
+ }
+ if (mediaTrack.getHeight() > 0) {
+ track.setHeight(mediaTrack.getHeight());
+ }
+ if (mediaTrack.getWidth() > 0) {
+ track.setWidth(mediaTrack.getWidth());
+ }
+ }
+ StreamInfo streamInfo = mediaService.getStreamInfoByAppAndStream(mediaServerItem, "rtp", hookParam.getStream(), track, null);
streamInfo.setDeviceID(deviceId);
streamInfo.setChannelId(channelId);
return streamInfo;
--
Gitblit v1.8.0