Nehmen wir einen Encoder/ffmpeg an, der mpegts über UDP pusht. Und wir haben einen anderen ffmpeg, der diese mpegts-Pakete empfängt. Da auf dem Empfängerende Medien über UDP empfangen werden, ist es wahrscheinlich, dass einige Pakete verloren gehen oder nicht in Ordnung sind. Ich bin daran interessiert zu erfahren, wie es von ffmpeg gehandhabt wird.Jeder, der damit vertraut ist, wie ffmpeg handhabt Außer Ordnung MPEGTS-Pakete empfangen auf UDP
Senden Prozess ffmpeg -re -i xyz.mp4-Codecs kopieren -f mpegts udp: // localhost: 5011
Empfangen Prozess -i udp: // localhost: 5011 output.mov
FFMpeg verwaltet all das intern, sodass Sie sich keine Sorgen machen müssen. Alles, was Sie tun müssen, ist die Pakete, die zu den Streams gehören, die Sie dekodieren möchten, und ffmpeg wird Ihnen die Frames in der Reihenfolge zurückgeben. Beim Suchen müssen Sie ffmpeg mitteilen, dass die internen Puffer gelöscht werden sollen. – WLGfx
Yeah WLGfx, das ist die Erwartung. Aber ich habe versucht, den Code von mpegts und avio layer aufzuschlüsseln, um * wie * und * wo * es zu verstehen. Weil, wenn man sich das anschaut, ich in MPEGTS einen Continuity Counter sehe, der benutzt werden könnte. Aber das ist nur 4 Bit. So kann eine Fehlordnung von höchstens 16 Paketen absorbiert werden. Ich sehe kein bestimmtes Feld, das für die Reihenfolge verwendet werden könnte, anders als es in RTP verpackt sein könnte, wo seq no nützlich und deterministische Metrik sein könnte, auf die man sich verlassen kann – Rupesh