Ich arbeite mit WebRTC P2P-Videostreaming auf 2-Kanal-FullHD und HD zwischen meiner Kamera und dem Internet. Das Problem tritt auf, wenn ich von Kanal HD auf Kanal FullHD umschalte und umgekehrt. Das Videobild ist kurzzeitig beschädigt oder hat einen grünen Bildschirm. Danach läuft der Stream normal. Ich versuche, jedes Mal, wenn ich zwischen zwei Kanälen wechsle, ein I-Frame zu senden, aber es besteht immer noch das oben genannte Problem. Muss ich etwas senden, um das Video für den Decoder zurückzusetzen?
Dies ist mein einfacher Code, der meinen Ablauf zeigt:
Code: Select all
int bChannelSelected = 0;
// Get video encode channel HD
void GetVENCChannelHD() {
if (bChannelSelected == 0) {
// Send I-Frames of sample HD
// Send samples HD to clients
}
}
// Get video encode channel FullHD
void GetVENCChannelFullHD() {
if (bChannelSelected == 1) {
// Send I-Frames of sample FullHD
// Send samples FullHD to clients
}
}
void setChannelSelected(int channel) {
bChannelSelected = channel;
}
Ich muss versuchen, jedes Mal, wenn ich zu einem anderen Kanal wechsle, ein I-Frame zu senden, aber nach einem Moment wird immer noch ein grüner Bildschirm angezeigt