播放地址携带流来源信息

This commit is contained in:
lin
2025-03-12 16:09:54 +08:00
parent e0f9c93b0f
commit e5c3f82d54
7 changed files with 48 additions and 713 deletions

View File

@@ -80,7 +80,7 @@ public class MediaInfo {
Boolean online = jsonObject.getBoolean("online");
Integer originType = jsonObject.getInteger("originType");
String originUrl = jsonObject.getString("originUrl");
String originTypeStr = jsonObject.getString("originUrl");
String originTypeStr = jsonObject.getString("originTypeStr");
Long aliveSecond = jsonObject.getLong("aliveSecond");
String params = jsonObject.getString("params");
Long bytesSpeed = jsonObject.getLong("bytesSpeed");

View File

@@ -807,6 +807,7 @@ public class MediaServerServiceImpl implements IMediaServerService {
@Override
public StreamInfo getStreamInfoByAppAndStream(MediaServer mediaServer, String app, String stream, MediaInfo mediaInfo, String addr, String callId, boolean isPlay) {
System.out.println(callId);
StreamInfo streamInfoResult = new StreamInfo();
streamInfoResult.setStream(stream);
streamInfoResult.setApp(app);
@@ -822,7 +823,22 @@ public class MediaServerServiceImpl implements IMediaServerService {
}
streamInfoResult.setMediaServer(mediaServer);
String callIdParam = ObjectUtils.isEmpty(callId)?"":"?callId=" + callId;
StringBuilder callIdParamBuilder = new StringBuilder();;
if (!ObjectUtils.isEmpty(callId) || (mediaInfo != null && !ObjectUtils.isEmpty(mediaInfo.getOriginTypeStr()))) {
StringBuilder stringBuilder = new StringBuilder();
if (!ObjectUtils.isEmpty(callId)) {
stringBuilder.append("callId=").append(callId);
}
if (mediaInfo != null && !ObjectUtils.isEmpty(mediaInfo.getOriginTypeStr())) {
if (!ObjectUtils.isEmpty(callId)) {
stringBuilder.append("&");
}
stringBuilder.append("originTypeStr=").append(mediaInfo.getOriginTypeStr());
}
callIdParamBuilder.append("?").append(stringBuilder);
}
String callIdParam = callIdParamBuilder.toString();
streamInfoResult.setRtmp(addr, mediaServer.getRtmpPort(),mediaServer.getRtmpSSlPort(), app, stream, callIdParam);
streamInfoResult.setRtsp(addr, mediaServer.getRtspPort(),mediaServer.getRtspSSLPort(), app, stream, callIdParam);

View File

@@ -197,6 +197,7 @@ public class ZLMMediaNodeServerService implements IMediaNodeServerService {
}
public StreamInfo getStreamInfoByAppAndStream(MediaServer mediaServer, String app, String stream, MediaInfo mediaInfo, String callId, boolean isPlay) {
System.out.println(callId);
StreamInfo streamInfoResult = new StreamInfo();
streamInfoResult.setServerId(userSetting.getServerId());
streamInfoResult.setStream(stream);
@@ -204,7 +205,23 @@ public class ZLMMediaNodeServerService implements IMediaNodeServerService {
String addr = mediaServer.getStreamIp();
streamInfoResult.setIp(addr);
streamInfoResult.setMediaServer(mediaServer);
String callIdParam = ObjectUtils.isEmpty(callId)?"":"?callId=" + callId;
StringBuilder callIdParamBuilder = new StringBuilder();;
if (!ObjectUtils.isEmpty(callId) || (mediaInfo != null && !ObjectUtils.isEmpty(mediaInfo.getOriginTypeStr()))) {
StringBuilder stringBuilder = new StringBuilder();
if (!ObjectUtils.isEmpty(callId)) {
stringBuilder.append("callId=").append(callId);
}
if (mediaInfo != null && !ObjectUtils.isEmpty(mediaInfo.getOriginTypeStr())) {
if (!ObjectUtils.isEmpty(callId)) {
stringBuilder.append("&");
}
stringBuilder.append("originTypeStr=").append(mediaInfo.getOriginTypeStr());
}
callIdParamBuilder.append("?").append(stringBuilder);
}
String callIdParam = callIdParamBuilder.toString();
streamInfoResult.setRtmp(addr, mediaServer.getRtmpPort(),mediaServer.getRtmpSSlPort(), app, stream, callIdParam);
streamInfoResult.setRtsp(addr, mediaServer.getRtspPort(),mediaServer.getRtspSSLPort(), app, stream, callIdParam);
String flvFile = String.format("%s/%s.live.flv%s", app, stream, callIdParam);
@@ -218,6 +235,7 @@ public class ZLMMediaNodeServerService implements IMediaNodeServerService {
streamInfoResult.setMediaInfo(mediaInfo);
if (mediaInfo != null) {
streamInfoResult.setOriginType(mediaInfo.getOriginType());
streamInfoResult.setOriginTypeStr(mediaInfo.getOriginTypeStr());
}
return streamInfoResult;
}

View File

@@ -1,6 +1,8 @@
package com.genersoft.iot.vmp.media.zlm.dto.hook;
import com.genersoft.iot.vmp.vmanager.bean.StreamContent;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
import java.util.Map;
@@ -8,6 +10,8 @@ import java.util.Map;
/**
* @author lin
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class OnStreamChangedHookParam extends HookParam{
/**
@@ -109,19 +113,12 @@ public class OnStreamChangedHookParam extends HookParam{
*/
private Map<String, String> paramMap;
public boolean isRegist() {
return regist;
}
public void setRegist(boolean regist) {
this.regist = regist;
}
/**
* 是否是docker部署 docker部署不会自动更新zlm使用的端口需要自己手动修改
*/
private boolean docker;
@Data
public static class MediaTrack {
/**
* 音频通道数
@@ -197,128 +194,9 @@ public class OnStreamChangedHookParam extends HookParam{
* 丢帧率
*/
private float loss;
public int getChannels() {
return channels;
}
public void setChannels(int channels) {
this.channels = channels;
}
public int getCodec_id() {
return codec_id;
}
public void setCodec_id(int codec_id) {
this.codec_id = codec_id;
}
public String getCodec_id_name() {
return codec_id_name;
}
public void setCodec_id_name(String codec_id_name) {
this.codec_id_name = codec_id_name;
}
public int getCodec_type() {
return codec_type;
}
public void setCodec_type(int codec_type) {
this.codec_type = codec_type;
}
public boolean isReady() {
return ready;
}
public void setReady(boolean ready) {
this.ready = ready;
}
public int getSample_bit() {
return sample_bit;
}
public void setSample_bit(int sample_bit) {
this.sample_bit = sample_bit;
}
public int getSample_rate() {
return sample_rate;
}
public void setSample_rate(int sample_rate) {
this.sample_rate = sample_rate;
}
public float getFps() {
return fps;
}
public void setFps(float fps) {
this.fps = fps;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
public int getWidth() {
return width;
}
public void setWidth(int width) {
this.width = width;
}
public int getFrames() {
return frames;
}
public void setFrames(int frames) {
this.frames = frames;
}
public int getKey_frames() {
return key_frames;
}
public void setKey_frames(int key_frames) {
this.key_frames = key_frames;
}
public int getGop_size() {
return gop_size;
}
public void setGop_size(int gop_size) {
this.gop_size = gop_size;
}
public int getGop_interval_ms() {
return gop_interval_ms;
}
public void setGop_interval_ms(int gop_interval_ms) {
this.gop_interval_ms = gop_interval_ms;
}
public float getLoss() {
return loss;
}
public void setLoss(float loss) {
this.loss = loss;
}
}
@Data
public static class OriginSock{
private String identifier;
private String local_ip;
@@ -326,204 +204,10 @@ public class OnStreamChangedHookParam extends HookParam{
private String peer_ip;
private int peer_port;
public String getIdentifier() {
return identifier;
}
public void setIdentifier(String identifier) {
this.identifier = identifier;
}
public String getLocal_ip() {
return local_ip;
}
public void setLocal_ip(String local_ip) {
this.local_ip = local_ip;
}
public int getLocal_port() {
return local_port;
}
public void setLocal_port(int local_port) {
this.local_port = local_port;
}
public String getPeer_ip() {
return peer_ip;
}
public void setPeer_ip(String peer_ip) {
this.peer_ip = peer_ip;
}
public int getPeer_port() {
return peer_port;
}
public void setPeer_port(int peer_port) {
this.peer_port = peer_port;
}
}
private StreamContent streamInfo;
public String getApp() {
return app;
}
public void setApp(String app) {
this.app = app;
}
public String getStream() {
return stream;
}
public void setStream(String stream) {
this.stream = stream;
}
public int getTotalReaderCount() {
return totalReaderCount;
}
public void setTotalReaderCount(int totalReaderCount) {
this.totalReaderCount = totalReaderCount;
}
public int getOriginType() {
return originType;
}
public void setOriginType(int originType) {
this.originType = originType;
}
public String getOriginTypeStr() {
return originTypeStr;
}
public void setOriginTypeStr(String originTypeStr) {
this.originTypeStr = originTypeStr;
}
public String getOriginUrl() {
return originUrl;
}
public void setOriginUrl(String originUrl) {
this.originUrl = originUrl;
}
public Long getCreateStamp() {
return createStamp;
}
public void setCreateStamp(Long createStamp) {
this.createStamp = createStamp;
}
public Long getAliveSecond() {
return aliveSecond;
}
public void setAliveSecond(Long aliveSecond) {
this.aliveSecond = aliveSecond;
}
public List<MediaTrack> getTracks() {
return tracks;
}
public void setTracks(List<MediaTrack> tracks) {
this.tracks = tracks;
}
public String getSchema() {
return schema;
}
public void setSchema(String schema) {
this.schema = schema;
}
public void setOriginSock(OriginSock originSock) {
this.originSock = originSock;
}
public Long getBytesSpeed() {
return bytesSpeed;
}
public void setBytesSpeed(Long bytesSpeed) {
this.bytesSpeed = bytesSpeed;
}
public String getVhost() {
return vhost;
}
public void setVhost(String vhost) {
this.vhost = vhost;
}
public OriginSock getOriginSock() {
return originSock;
}
public boolean isDocker() {
return docker;
}
public void setDocker(boolean docker) {
this.docker = docker;
}
public StreamContent getStreamInfo() {
return streamInfo;
}
public void setStreamInfo(StreamContent streamInfo) {
this.streamInfo = streamInfo;
}
public String getSeverId() {
return severId;
}
public void setSeverId(String severId) {
this.severId = severId;
}
public String getCallId() {
return callId;
}
public void setCallId(String callId) {
this.callId = callId;
}
public Map<String, String> getParamMap() {
return paramMap;
}
public void setParamMap(Map<String, String> paramMap) {
this.paramMap = paramMap;
}
public String getParams() {
return params;
}
public void setParams(String params) {
this.params = params;
}
@Override
public String toString() {
return "OnStreamChangedHookParam{" +