Как изменить содержимое файла SDP (строка)? - PullRequest
1 голос
/ 24 марта 2020

Если у меня есть файл SDP и я хочу изменить его содержимое:

    v=0
    o=jdoe 2890844526 2890842807 IN IP4 10.47.16.5
    s=SDP Seminar
    i=A Seminar on the session description protocol
    u=http://www.example.com/seminars/sdp.pdf
    e=j.doe@example.com (Jane Doe)
    c=IN IP4 224.2.17.12/127
    t=2873397496 2873404696
    a=recvonly
    m=audio 49170 RTP/AVP 0
    m=video 51372 RTP/AVP 99
    a=rtpmap:99 h263-1998/90000

Как я могу изменить содержимое, например, в каждой строке, я могу изменить 49170 (содержимое 'm ') в этой строке.

Ответы [ 3 ]

0 голосов
/ 24 марта 2020
    let lines = new_sdp_file.split('\n').map(l => l.trim());
    lines.forEach(function(line) {
      if (line.indexOf('m=video') === 0) {
        setDefaultCodec(line, ServicesPort);
        }
      else if (line.indexOf('m=audio') === 0) {
          console.log(line);
        }
        if(line.indexOf('c=IN')===0) {
        }
    });
  }
  function setDefaultCodec(mLine, payloud) {
    var elements = mLine.split(' ');
    for (var i = 1; i < elements.length; i++) {
      if (elements[1] !== payloud) {
      //In here I should add replace inestead of 49170 for example R = 1180
        console.log(mLine);
      }
    }
    return elements.join(' ');
  }
0 голосов
/ 25 марта 2020

Вот кодовая последовательность, которая поможет вам разобрать строку, начинающуюся с «m = audio», а затем сгенерировать новую строку. Вы должны сами интегрировать его в свой код и затем записать обновленную строку в файл. Вы должны написать себе код для обработки других строк.

var regex = new RegExp( "^m=audio(\\s+)(\\d+)(\\s+)([A-Z]+/[A-Z]+)(\\s+)(\\d+)$" );
var line = "m=audio 49170 RTP/AVP 0";
var match = regex.exec( line );
// You should replace the field0, field1 and field2 names with
// actual names for the fields in the file.
var field0 = match[ 2 ];
var field1 = match[ 4 ];
var field2 = match[ 6 ];
var field0NewValue = 40000;
var newLine = "m=audio " + field0NewValue + " " + field1 + " " + field2;
0 голосов
/ 24 марта 2020
 function change_Ip_Port(new_sdp_file){
    let lines = new_sdp_file.split('\n').map(l => l.trim());
    lines.forEach(function(line) {
        if (line.indexOf('m=video') === 0) {
          console.log(line);
        }
        else if (line.indexOf('m=audio') === 0) {
          console.log(line);
        }
        if(line.indexOf('c=IN')===0) {
          console.log(line);
        }
    });
  }
...