Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Viktigt!
Den här funktionen i Azure Communication Services är för närvarande i förhandsversion. Funktioner i förhandsversionen är offentligt tillgängliga och kan användas av alla nya och befintliga Microsoft-kunder.
Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller så kan funktionerna vara begränsade.
Mer information finns i Kompletterande användningsvillkor för Förhandsversioner av Microsoft Azure.
Översikt
API:et för videobegränsningar gör det möjligt för utvecklare att styra videokvaliteten inifrån sina videosamtal. I den här snabbstartsguiden visar vi hur du använder API:et för att ange begränsningarna.
Förutsättningar
Gå till snabbstarten för röstsamtal för att konfigurera en exempelapp med röstsamtal.
Klasser
Namn | beskrivning |
---|---|
Videobegränsningar | Används för att lagra både inkommande videobegränsningar och utgående videobegränsningar. |
UtgåendeVideoConstraints | Används för att ange begränsningar (MaxWidth \| MaxHeight \| MaxFrameRate ) för utgående videoströmmar. |
Inkommande videobegränsningar | Används för att ange begränsningar (MaxWidth \| MaxHeight ) för inkommande videoströmmar. |
Använda videobegränsningar
I följande avsnitt förklaras hur videobegränsningarna kan ställas in för inkommande och/eller utgående videoströmmar vid olika tidpunkter för ett samtal.
Ange videobegränsningar innan du startar ett anrop
För inkommande videoströmmar måste ett IncomingVideoConstraints
läggas till i IncomingVideoOptions
.
var IncomingVideoOptions = new IncomingVideoOptions()
{
Constraints = new IncomingVideoConstraints()
{
MaxWidth = /*value*/,
MaxHeight = /*value*/
},
// other options
// ...
}
För utgående videoströmmar måste ett OutgoingVideoConstraints
läggas till i OutgoingVideoOptions
.
var OutgoingVideoOptions = new OutgoingVideoOptions()
{
Constraints = new OutgoingVideoConstraints()
{
MaxWidth = /*value*/,
MaxHeight = /*value*/,
MaxFrameRate = /*value*/
},
// other options
// ...
}
Eftersom alternativen används för att starta/ansluta ett anrop kan begränsningarna sedan tillämpas på strömmarna automatiskt. Till exempel:
var joinCallOptions = new JoinCallOptions()
{
IncomingVideoOptions = new IncomingVideoOptions()
{
Constraints = new IncomingVideoConstraints()
{
MaxWidth = /*value*/,
MaxHeight = /*value*/
},
// other options
// ...
},
OutgoingVideoOptions = new OutgoingVideoOptions()
{
Constraints = new OutgoingVideoConstraints()
{
MaxWidth = /*value*/,
MaxHeight = /*value*/,
MaxFrameRate = /*value*/
},
// other options
// ...
}
};
await callAgent.JoinAsync(locator, joinCallOptions);
Ange videobegränsningar under ett anrop
I stället för att ställa in videobegränsningarna innan du startar ett anrop kan du också dynamiskt justera videobegränsningarna under ett anrop. Du måste anropa SetVideoConstraints
din Call
typklass och ange begränsningarna.
OutgoingVideoConstraints outgoingVideoConstraints = new OutgoingVideoConstraints()
{
outgoingVideoConstraints.MaxWidth = /*value*/ ;
outgoingVideoConstraints.MaxHeight = /*value*/ ;
outgoingVideoConstraints.MaxFrameRate = /*value*/ ;
};
IncomingVideoConstraints incomingVideoConstraints = new IncomingVideoConstraints()
{
incomingVideoConstraints.MaxWidth = /*value*/ ;
incomingVideoConstraints.MaxHeight = /*value*/ ;
};
VideoConstraints constraints = new VideoConstraints();
constraints.OutgoingVideoConstraints = outgoingVideoConstraints;
constraints.IncomingVideoConstraints = incomingVideoConstraints;
call.SetVideoConstraints(constraints);
Om du vill återställa/ta bort de videobegränsningar som du tidigare har angett måste du följa föregående mönster och ange 0
som ett villkorsvärde. Att ange null
värden för antingen IncomingVideoConstraints
eller OutgoingVideoConstraints
inte återställer/tar bort begränsningarna och begränsningarna med ett null
värde ignoreras.
Begränsningar
Kommentar
Tänk på dessa begränsningar när du använder API:et för videobegränsningar. Vissa av begränsningarna bör lösas i framtida versioner.
Det finns några kända begränsningar för det aktuella API:et för videobegränsningar.
Villkoret är en maxbegränsning , vilket innebär att det möjliga begränsningsvärdet kan vara det angivna värdet eller mindre. Det finns ingen garanti för att det faktiska värdet förblir detsamma som angivet av användaren.
När användaren anger ett villkorsvärde som är för litet använder SDK:et det minsta tillgängliga värdet som stöds.
För att ställa in
OutgoingVideoConstraints
under ett anrop hämtar den aktuella pågående videoströmmen inte automatiskt de angivna begränsningarna. För att begränsningarna ska börja gälla måste du stoppa och starta om den utgående videon.För närvarande är
IncomingVideoConstraints
en användarprefererad begränsning istället för en hård begränsning, vilket innebär att det faktiska mottagna värdet, beroende på ditt nätverk och din maskinvara, fortfarande kan överskrida det fastställda värdet.
Mediestatistik
Om du vill utvärdera och jämföra videokvaliteten efter att du har tillämpat videobegränsningarna kan du komma åt MediaStats-API:et för att hämta videoupplösning och bithastighetsinformation om strömmen. Mediestatistiken innehåller också annan detaljerad statistik som rör strömmarna, till exempel jitter, paketförlust, tur och retur-tid osv.
Viktigt!
Den här funktionen i Azure Communication Services är för närvarande i förhandsversion. Funktioner i förhandsversionen är offentligt tillgängliga och kan användas av alla nya och befintliga Microsoft-kunder.
Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller så kan funktionerna vara begränsade.
Mer information finns i Kompletterande användningsvillkor för Förhandsversioner av Microsoft Azure.
Översikt
API:et för videobegränsningar gör det möjligt för utvecklare att styra videokvaliteten inifrån sina videosamtal. I den här artikeln visar vi hur du använder API:et för att ange begränsningarna.
Förutsättningar
Gå till snabbstarten för röstsamtal för att konfigurera en exempelapp med röstsamtal.
Klasser
Namn | beskrivning |
---|---|
Videobegränsningar | Används för att lagra både inkommande videobegränsningar och utgående videobegränsningar. |
UtgåendeVideoConstraints | Används för att ange begränsningar (maxWidth \| maxHeight \| maxFrameRate ) för utgående videoströmmar. |
Inkommande videobegränsningar | Används för att ange begränsningar (maxWidth \| maxHeight ) för inkommande videoströmmar. |
Använda videobegränsningar
I följande avsnitt förklaras hur videobegränsningarna kan ställas in för inkommande och/eller utgående videoströmmar vid olika tidpunkter för ett samtal.
Ange videobegränsningar innan du startar ett anrop
För inkommande videoströmmar måste du lägga till en IncomingVideoConstraints
i IncomingVideoOptions
.
IncomingVideoConstraints incomingVideoConstraints = new IncomingVideoConstraints();
incomingVideoConstraints.setMaxWidth(/*value*/);
incomingVideoConstraints.setMaxHeight(/*value*/);
// ...
IncomingVideoOptions incomingVideoOptions = new IncomingVideoOptions();
incomingVideoOptions.setConstraints(incomingVideoConstraints);
För utgående videoströmmar lägger du till en OutgoingVideoConstraints
i OutgoingVideoOptions
.
OutgoingVideoConstraints outgoingVideoConstraints = new OutgoingVideoConstraints()
outgoingVideoConstraints.setMaxWidth(/*value*/);
outgoingVideoConstraints.setMaxHeight(/*value*/);
outgoingVideoConstraints.setMaxFrameRate(/*value*/);
// ...
OutgoingVideoOptions outgoingVideoOptions = new OutgoingVideoOptions();
outgoingVideoOptions.setConstraints(outgoingVideoConstraints);
Eftersom alternativen används för att starta/ansluta ett anrop kan du tillämpa begränsningarna på strömmarna automatiskt. Till exempel:
JoinCallOptions joinCallOptions = new JoinCallOptions();
joinCallOptions.setIncomingVideoOptions(incomingVideoOptions);
joinCallOptions.setOutgoingVideoOptions(outgoingVideoOptions);
callAgent.Join(context, locator, joinCallOptions);
Ange videobegränsningar under ett anrop
I stället för att ställa in videobegränsningarna innan du startar ett anrop kan du också dynamiskt justera videobegränsningarna under ett anrop. Du måste anropa setVideoConstraints
din Call
typklass och ange begränsningarna.
OutgoingVideoConstraints outgoingVideoConstraints = new OutgoingVideoConstraints();
outgoingVideoConstraints.setMaxWidth(/*value*/);
outgoingVideoConstraints.setMaxHeight(/*value*/);
outgoingVideoConstraints.setMaxFrameRate(/*value*/);
IncomingVideoConstraints incomingVideoConstraints = new IncomingVideoConstraints();
incomingVideoConstraints.setMaxWidth(/*value*/);
incomingVideoConstraints.setMaxHeight(/*value*/);
VideoConstraints constraints = new VideoConstraints();
constraints.setOutgoingVideoConstraints(outgoingVideoConstraints);
constraints.setIncomingVideoConstraints(incomingVideoConstraints);
call.setVideoConstraints(constraints);
Om du vill återställa/ta bort de videobegränsningar som du angav tidigare följer du föregående mönster och anger 0
som ett villkorsvärde. Att ange null
värden för antingen IncomingVideoConstraints
eller OutgoingVideoConstraints
inte återställer/tar bort begränsningarna och begränsningarna med ett null
värde ignoreras.
Begränsningar
Kommentar
Tänk på dessa begränsningar när du använder API:et för videobegränsningar. Vissa av begränsningarna bör lösas i framtida versioner.
Det finns några kända begränsningar för det aktuella API:et för videobegränsningar.
Villkoret är en maxbegränsning , vilket innebär att det möjliga begränsningsvärdet kan vara det angivna värdet eller mindre. Det finns ingen garanti för att det faktiska värdet förblir detsamma som angivet av användaren.
När användaren anger ett villkorsvärde som är för litet använder SDK:et det minsta tillgängliga värdet som stöds.
För att ställa in
OutgoingVideoConstraints
under ett anrop hämtar den aktuella pågående videoströmmen inte automatiskt de angivna begränsningarna. För att begränsningarna ska börja gälla måste du stoppa och starta om den utgående videon.IncomingVideoConstraints
är för närvarande en användarpreferens i stället för en hård begränsning, vilket innebär att det faktiska mottagna värdet fortfarande kan överstiga den angivna begränsningen beroende på ditt nätverk och din maskinvara.
Mediestatistik
Om du vill utvärdera och jämföra videokvaliteten efter att du har tillämpat videobegränsningarna kan du komma åt MediaStats-API:et för att hämta videoupplösning och bithastighetsinformation om strömmen. Mediestatistiken innehåller också annan detaljerad statistik som rör strömmarna, till exempel jitter, paketförlust, tur och retur-tid och så vidare.
Viktigt!
Den här funktionen i Azure Communication Services är för närvarande i förhandsversion. Funktioner i förhandsversionen är offentligt tillgängliga och kan användas av alla nya och befintliga Microsoft-kunder.
Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller så kan funktionerna vara begränsade.
Mer information finns i Kompletterande användningsvillkor för Förhandsversioner av Microsoft Azure.
Översikt
API:et för videobegränsningar gör det möjligt för utvecklare att styra videokvaliteten inifrån sina videosamtal. I den här snabbstartsguiden visar vi hur du använder API:et för att ange begränsningarna.
Förutsättningar
Gå till snabbstarten för röstsamtal för att konfigurera en exempelapp med röstsamtal.
Klasser
Namn | beskrivning |
---|---|
Videobegränsningar | Används för att lagra både inkommande videobegränsningar och utgående videobegränsningar. |
UtgåendeVideoConstraints | Används för att ange begränsningar (maxWidth \| maxHeight \| maxFrameRate ) för utgående videoströmmar. |
Inkommande videobegränsningar | Används för att ange begränsningar (maxWidth \| maxHeight ) för inkommande videoströmmar. |
Använda videobegränsningar
I följande avsnitt förklaras hur videobegränsningarna kan ställas in för inkommande och/eller utgående videoströmmar vid olika tidpunkter för ett samtal.
Ange videobegränsningar innan du startar ett anrop
För inkommande videoströmmar måste du lägga till en IncomingVideoConstraints
i IncomingVideoOptions
.
let incomingVideoConstraints = IncomingVideoConstraints()
incomingVideoConstraints.maxWidth = /*value*/
incomingVideoConstraints.maxHeight = /*value*/
// ...
let incomingVideoOptions = IncomingVideoOptions()
incomingVideoOptions.constraints = incomingVideoConstraints
För utgående videoströmmar måste ett OutgoingVideoConstraints
läggas till i OutgoingVideoOptions
.
let outgoingVideoConstraints = OutgoingVideoConstraints()
outgoingVideoConstraints.maxWidth = /*value*/
outgoingVideoConstraints.maxHeight = /*value*/
outgoingVideoConstraint.maxFrameRate = /*value*/
// ...
let outgoingVideoOptions = OutgoingVideoOptions()
outgoingVideoOptions.constraints = outgoingVideoConstraints
Eftersom alternativen används för att starta/ansluta ett anrop kan begränsningarna sedan tillämpas på strömmarna automatiskt. Till exempel:
let incomingVideoConstraints = IncomingVideoConstraints()
incomingVideoConstraints.maxWidth = /*value*/
incomingVideoConstraints.maxHeight = /*value*/
let incomingVideoOptions = IncomingVideoOptions()
incomingVideoOptions.constraints = incomingVideoConstraints
let outgoingVideoConstraints = OutgoingVideoConstraints()
outgoingVideoConstraints.maxWidth = /*value*/
outgoingVideoConstraints.maxHeight = /*value*/
outgoingVideoConstraint.maxFrameRate = /*value*/
let outgoingVideoOptions = OutgoingVideoOptions()
outgoingVideoOptions.constraints = outgoingVideoConstraints
let joinCallOptions = new JoinCallOptions()
joinCallOptions.incomingVideoOptions = incomingVideoOptions
joinCallOptions.outgoingVideoOptions = outgoingVideoOptions
callAgent.join(with: locator, joinCallOptions: joinCallOptions);
Ange videobegränsningar under ett anrop
I stället för att ställa in videobegränsningarna innan du startar ett anrop kan du dynamiskt justera videobegränsningarna under ett anrop. Du måste anropa set(videoConstraints)
din Call
typklass och ange begränsningarna.
let outgoingVideoConstraints = OutgoingVideoConstraints()
outgoingVideoConstraints.maxWidth = /*value*/
outgoingVideoConstraints.maxHeight = /*value*/
outgoingVideoConstraint.maxFrameRate = /*value*/
let incomingVideoConstraints = IncomingVideoConstraints()
incomingVideoConstraints.maxWidth = /*value*/
incomingVideoConstraints.maxHeight = /*value*/
let videoConstraints = VideoConstraints()
videoConstraints.outgoingVideoConstraints = outgoingVideoConstraints
videoConstraints.incomingVideoConstraints = incomingVideoConstraints
call?.set(videoConstraints: videoConstraints)
Om du vill återställa/ta bort de videobegränsningar som du angav tidigare följer du föregående mönster och anger 0
som ett villkorsvärde. Att ange null
värden för antingen IncomingVideoConstraints
eller OutgoingVideoConstraints
inte återställer/tar bort begränsningarna och begränsningarna med ett null
värde ignoreras.
Begränsningar
Kommentar
Tänk på dessa begränsningar när du använder API:et för videobegränsningar. Vissa av begränsningarna bör lösas i framtida versioner.
Det finns några kända begränsningar för det aktuella API:et för videobegränsningar.
Villkoret är en maxbegränsning , vilket innebär att det möjliga begränsningsvärdet kan vara det angivna värdet eller mindre. Det finns ingen garanti för att det faktiska värdet förblir detsamma som angivet av användaren.
När användaren anger ett villkorsvärde som är för litet använder SDK:et det minsta tillgängliga värdet som stöds.
För att ställa in
OutgoingVideoConstraints
under ett anrop hämtar den aktuella pågående videoströmmen inte automatiskt de angivna begränsningarna. För att begränsningarna ska börja gälla måste du stoppa och starta om den utgående videon.IncomingVideoConstraints
är för närvarande en användarens föredragna begränsning istället för en hård begränsning, vilket innebär att det faktiska värde som mottas, beroende på ditt nätverk och din maskinvara, fortfarande kan överskrida den angivna begränsningen.
Mediestatistik
Om du vill utvärdera och jämföra videokvaliteten efter att du har tillämpat videobegränsningarna kan du komma åt MediaStats-API:et för att hämta videoupplösning och bithastighetsinformation om strömmen. Mediestatistiken innehåller också annan detaljerad statistik som rör strömmarna, till exempel jitter, paketförlust, tur och retur-tid och så vidare.
Du kan ange videobegränsningar i dina anrop för att styra videokvaliteten baserat på upplösning eller frameRate eller bithastighet i dina videosamtal. I den här snabbstartsguiden visar vi hur du ställer in videobegränsningar i början av ett anrop och hur du använder vår setConstraints
metod för anropsobjektet för att ange videobegränsningar dynamiskt under anropet.
Skicka videobegränsningar
Azure Communication Services Web Calling SDK stöder inställning av maximal videoupplösning, ramhastighet eller bithastighet som en klient skickar. Avsändarvideobegränsningar stöds i Skrivbordswebbläsare (Chrome, Microsoft Edge, Firefox) och när du använder iOS Safari mobile browser eller Android Chrome mobile browser.
Begränsningar som stöds |
---|
Inkommande video: upplösning Utgående video: upplösning, ramhastighet, bithastighet |
Ange videobegränsningar i början av ett samtal – utgående (skicka) video
Inställningen för videobegränsningar implementeras i Call
gränssnittet. Om du vill använda videobegränsningarna kan du ange begränsningarna inifrån CallOptions
när du ringer ett anrop, accepterar ett samtal eller ansluter till ett samtal. Du måste ange localVideoStreams
i videoOptions
.
Begränsningar fungerar inte om du ansluter till ett samtal med alternativ för endast ljud och sedan aktiverar kameran. I det här fallet kan du ange videobegränsningar dynamiskt med hjälp av setConstraints
-metoden i Call
gränssnittet.
const callOptions = {
videoOptions: {
localVideoStreams: [...],
constraints: {
send: {
bitrate: {
max: 575000
},
frameHeight: {
max: 240
},
frameRate: {
max: 20
}
}
}
},
audioOptions: {
muted: false
}
};
// make a call
this.callAgent.startCall(identitiesToCall, callOptions);
// join a group call
this.callAgent.join({ groupId }, callOptions);
// accept an incoming call
this.incomingCall.accept(callOptions)
Typer av videobegränsningar beskrivs på följande sätt:
export declare interface VideoOptions {
localVideoStreams?: LocalVideoStream[];
//video constraint when call starts
constraints?: VideoConstraints;
};
export declare type VideoConstraints = {
send?: VideoSendConstraints;
};
export type VideoSendConstraints = {
/**
* Resolution constraint
*/
frameHeight?: MediaConstraintRange;
/**
* FrameRate constraint
*/
frameRate?: MediaConstraintRange;
/**
* Bitrate constraint
*/
bitrate?: MediaConstraintRange;
};
export declare type MediaConstraintRange = {
max?: number;
};
När du ställer in videobegränsningar väljer SDK:n det närmaste värde som omfattas av villkorsuppsättningen för att förhindra att värdena för upplösning, frameRate och bithastighet inte överskrider de högsta villkorsvärdena. När upplösningsbegränsningsvärdet är för litet väljer SDK den minsta tillgängliga upplösningen. I det här fallet kan den valda upplösningens höjd vara större än begränsningsvärdet.
Kommentar
För alla bitrate
, frameHeight
och frameRate
, är villkorsvärdet en max
begränsning, vilket innebär att det faktiska värdet i anropet kan vara det angivna värdet eller mindre.
Det finns ingen garanti för att den skickade videoupplösningen förblir i den angivna upplösningen.
In frameHeight
VideoSendConstraints
har en annan betydelse när en mobil enhet är i stående läge. I stående läge anger det här värdet den kortare sidan av enheten. Om du frameHeight.max
till exempel anger värdet med 240 på en 1080(W) x 1920(H) enhet i stående läge, är begränsningshöjden på sidan 1080(W). När samma enhet är i liggande läge (1920(W) x 1080(H)) är begränsningen på 1080(H)-sidan.
Om du använder MediaStats API för att spåra den skickade videoupplösningen kan du få reda på att den skickade upplösningen kan ändras under samtalet. Den kan gå upp och ned, men bör vara lika med eller mindre än det villkorsvärde som du anger. Den här lösningsändringen är ett förväntat beteende. Webbläsaren har också en viss nedbrytningsregel för att justera den skickade upplösningen baserat på cpu- eller nätverksförhållanden.
Ställa in videobegränsningar under samtalet – utgående (skicka) video
Du kan ange videobegränsningar under anropet med hjälp setConstraints
av -metoden för Call
objektet.
// For eg, when you've started a call,
const currentCall = this.callAgent.startCall(identitiesToCall, callOptions);
// To set constraints during the call,
await currentCall.setConstraints({
video: {
send: {
frameHeight: {
max: 360
},
frameRate: {
max: 15
}
}
}
});
// To set only a particular constraint (the others will stay as what they were set before, if they were set)
await currentCall.setConstraints({
video: {
send: {
bitrate: {
max: 400000
}
}
}
});
// To unset any constraint,
await currentCall.setConstraints({
video: {
send: {
frameHeight: {
max: 0
}
}
}
});
Kommentar
Ange villkorsvärde som 0
avaktiveringar av tidigare angivna begränsningar. Du kan använda det här sättet för att återställa eller ta bort begränsningar.
Ta emot videobegränsningar
Att hantera videokvalitet för inkommande strömmar innebär att förstå lösningsstegen för Azure Communication Services, som är en fördefinierad lista över videoupplösningar med uppskattade övre och nedre bithastighetsgränser. När en klient begär en specifik lösning läser WebJS och serverdelsservern lösningsstegen för att allokera lämplig videobithastighet, med tanke på både nätverksförhållanden och enhetsfunktioner.
Att definiera videoåtergivningens storlek är ett viktigt steg för utvecklare som vill kontrollera bithastigheten och bildfrekvensen för en inkommande videoström. Den ursprungliga kvaliteten och upplösningen för en videoström bestäms av storleken på renderaren som skapas och placeras på en webbsida. Om renderaren till exempel är liten begär WebJS SDK en mindre lösning. Om återgivningen däremot är stor strävar ACS SDK efter bästa möjliga lösning från servern. Den här processen säkerställer att videokvaliteten optimeras baserat på klientens krav och funktioner. När en klient begär en specifik lösning läser servern lösningsstegen för att allokera lämplig videobithastighet, med tanke på både nätverksförhållanden och enhetsfunktioner.
Tabellen lösningsstege innehåller det som WebJS anropar SDK-lösningsstegen består av med de uppskattade inkommande videobithastigheterna för olika upplösningar. Den här informationen hjälper utvecklare att förstå relationen mellan upplösning, bithastighet och bildfrekvens och den ungefärliga mängden bandbredd som en specifik inkommande videoström använder. Till exempel en upplösning på 1280 x 720 strömmar vid 30 FPS med klienten med en ungefärlig minsta bithastighet på en (1) MBPS och en ungefärlig maximal bithastighet på två och en halv (2,5) MBPS.
Azure Communication Services WebJS Calling SDK justerar videostorleken baserat på tillgänglig bandbredd för att säkerställa en konsekvent kommunikationsupplevelse. WebJS Calling SDK justerar videostorleken baserat på algoritmer som övervakar nätverksförhållanden. När nätverksbandbredden är tillräcklig ökar SDK:n videoupplösningen till den högsta nivån baserat på den renderningsstorlek som definierats på webbsidan. När bandbredden däremot är begränsad minskar videoupplösningen för att förhindra buffring och upprätthålla en stabil anslutning.
Följande tabell innehåller lösningsstegen och uppskattade bithastigheter för varje lösning och tillhörande FPS som levereras med den upplösningen.
Höjd | Bredd | FPS | Minsta bithastighet (Mbit/s) | Maximal bithastighet (Mbit/s) |
---|---|---|---|---|
1080 | 1920 | 30 | 1,75 | 10 |
720 | 1280 | 30 | 1 | 2,5 |
540 | 960 | 30 | 0,5 | 1,125 |
360 | 640 | 30 | 0,4 | 0.57 |
240 | 426 | 15 | 0.125 | 0,5 |
240 | 320 | 15 | 0.2 | 0.175 |
Använda mediastatik för att förstå påverkan på videobegränsningar
Om du vill utvärdera och jämföra videokvaliteten efter att du har tillämpat videobegränsningarna kan du komma åt MediaStats-API:et för att hämta videoupplösning och bithastighetsinformation för den sändande strömmen. Mediestatistiken innehåller också annan detaljerad statistik relaterad till strömmarna, som jitter, paketförlust, fram-och-retur-tid och så vidare.
const mediaStatsFeature = call.feature(Features.MediaStats);
const mediaStatsCollector = mediaStatsFeature.createCollector();
mediaStatsCollector.on('sampleReported', (sample: SDK.MediaStatsReportSample) => {
// process the stats for the call.
console.log(sample);
});
Nästa steg
- Läs mer om konceptdokument för videobegränsningar
- Läs mer om funktioner för samtals-SDK