需求修改conf配置内容,节点内容如下
listen 1935;
max_connections 1000;
#daemon off;
#srs_log_tank console;
vhost defaultVhost {
ingest livestream {
enabled on;
input {
type file;
url rtsp://guest:[email protected]:554/stream0/low;
}
ffmpeg ./objs/ffmpeg/bin/ffmpeg;
engine {
enabled off;
output rtmp://192.168.0.45/live/10002-002-L;
}
}
ingest livestest {
enabled on;
input {
type file;
url rtsp://guest:[email protected]:554/stream0/high;
}
ffmpeg ./objs/ffmpeg/bin/ffmpeg;
engine {
enabled off;
output rtmp://192.168.0.45/live/10001-001-L;
}
}
}

创建实体对象
public class IngestModleVo {

private List list;    //节点信息

public IngestModleVo() {
    this.list = new ArrayList();
}

public List getList() {
    return list;
}

public void setList(List list) {
    this.list = list;
}

@Override
public String toString() {
    StringBuffer sb = new StringBuffer();
    sb.append("# use ffmpeg to ingest file/stream/device to SRS").append("\n");
    sb.append("# @see https://github.com/o***s/srs/wiki/v1_CN_SampleIngest").append("\n");
    sb.append("# @see full.conf for detail config.").append("\n\n");
    sb.append("listen              1935;").append("\n");
    sb.append("max_connections     1000;").append("\n");
    sb.append("#daemon              off;").append("\n");
    sb.append("#srs_log_tank        console;").append("\n");
    sb.append("vhost __defaultVhost__ {").append("\n");
    for (IngestVo vo : getList()) {
        sb.append(" ").append(vo.toString()).append("\n");
    }
    sb.append("}");
    return sb.toString();
}

}

public class IngestVo {
private String keyName; //键的名称
private String isEnabled; //是否启用,即有效
private String type;
private String urlAdd;
private String ffmpeg;
private String enginEnabled;
private String enginOutput;

public String getKeyName() {
    return keyName;
}
public void setKeyName(String keyName) {
    this.keyName = keyName;
}
public String getIsEnabled() {
    return isEnabled;
}
public void setIsEnabled(String isEnabled) {
    this.isEnabled = isEnabled;
}
public String getType() {
    return type;
}
public void setType(String type) {
    this.type = type;
}
public String getUrlAdd() {
    return urlAdd;
}
public void setUrlAdd(String urlAdd) {
    this.urlAdd = urlAdd;
}
public String getFfmpeg() {
    return ffmpeg;
}
public void setFfmpeg(String ffmpeg) {
    this.ffmpeg = ffmpeg;
}
public String getEnginEnabled() {
    return enginEnabled;
}
public void setEnginEnabled(String enginEnabled) {
    this.enginEnabled = enginEnabled;
}
public String getEnginOutput() {
    return enginOutput;
}
public void setEnginOutput(String enginOutput) {
    this.enginOutput = enginOutput;
}

@Override
public String toString() {
    StringBuffer sb = new StringBuffer();
    sb.append("ingest").append("  ").append(keyName).append("{").append("\n");
    sb.append("    enabled").append("  ").append(isEnabled).append(";\n");
    sb.append("    input {").append("\n");
    sb.append("        type").append("  ").append(type).append(";\n");
    sb.append("        url").append("  ").append(urlAdd).append(";\n");
    sb.append("    }").append("\n");
    sb.append("    ffmpeg").append("  ").append(ffmpeg).append(";\n");
    sb.append("    engine {").append("\n");
    sb.append("        enabled").append("  ").append(enginEnabled).append(";\n");
    sb.append("        output").append("  ").append(enginOutput).append(";\n");
    sb.append("    }").append("\n");
    sb.append("}");
    return sb.toString();
}

}

public class GeneralFileTest {

public static void main(String[] args) {

    List list = new ArrayList<>();
    IngestVo vo = new IngestVo();
    vo.setKeyName("livestream");
    vo.setIsEnabled("on");
    vo.setType("file");
    vo.setUrlAdd("rtsp://guest:[email protected]:554/stream0/low");
    vo.setEnginEnabled("off");
    vo.setEnginOutput("rtmp://192.168.0.45/live/10002-002-L");
    vo.setFfmpeg("./objs/ffmpeg/bin/ffmpeg");
    list.add(vo);

    IngestVo v1 = new IngestVo();
    v1.setKeyName("livestest");
    v1.setIsEnabled("on");
    v1.setType("file");
    v1.setUrlAdd("rtsp://guest:[email protected]:554/stream0/high");
    v1.setEnginEnabled("off");
    v1.setEnginOutput("rtmp://192.168.0.45/live/10001-001-L");
    v1.setFfmpeg("./objs/ffmpeg/bin/ffmpeg");
    list.add(v1);

    IngestModleVo liIngestModleVo = new IngestModleVo();
    liIngestModleVo.setList(list);

    File file = new File("E:\\ingest.conf");
    if (!file.exists()) {
        try {
            file.createNewFile();
        } catch (IOException e) {
            Log.infoStackTrace(e);
        }
    }

    PrintWriter ini = null;
    try {
        ini = new PrintWriter(new OutputStreamWriter(new FileOutputStream(file)));
    } catch (Exception e) {
        Log.infoStackTrace(e);
    }

    ini.print(liIngestModleVo.toString());
    ini.flush();
    ini.close();

}

}