private string GetVideoTrack(RtspProtocol pFrom, StreamCapabilities pCapabilities)
{
pFrom.CustomParameters["videoTrackId"] = "2"; //md5(format("V%u%s",pFrom->GetId(), STR(generateRandomString(4))), true);
var sw = new StringBuilder();
if (pCapabilities.VideoCodecId == VideoCodec.H264)
{
sw.AppendLine("m=video 0 RTP/AVP 97");
sw.AppendLine("a=recvonly");
sw.Append("a=control:trackID=");
sw.AppendLine(pFrom.CustomParameters["videoTrackId"]);
sw.AppendLine("a=rtpmap:97 H264/90000");
sw.Append("a=fmtp:97 profile-level-id=");
sw.Append($"{pCapabilities.Avc.SPS[1]:X2}{pCapabilities.Avc.SPS[2]:X2}{pCapabilities.Avc.SPS[3]:X2}");
sw.Append("; packetization-mode=1; sprop-parameter-sets=");
sw.Append(Convert.ToBase64String(pCapabilities.Avc.SPS) + ",");
sw.AppendLine(Convert.ToBase64String(pCapabilities.Avc.PPS));
}
else
{
WARN("Unsupported video codec: %s", pCapabilities.VideoCodecId);
}
return sw.ToString();
}