Pobieranie statystyk kodowania (Microsoft Media Foundation)
Informacje o tym, co dzieje się w sesji kodowania, są ogólnie dostępne natychmiast w postaci kodów błędów zwracanych podczas przetwarzania próbek. Istnieją jednak pewne statystyki, które można pobrać z kodeka na temat różnych aspektów kodowania.
Informacje o ramce wideo
Niektóre statystyki wideo, które można pobrać, dotyczą liczby ramek przetworzonych przez koder. Istnieją trzy właściwości numeru ramki, które można odczytać z kodera wideo:
- MFPKEY_TOTALFRAMES to liczba klatek przetwarzanych za pośrednictwem strumienia wejściowego DMO.
- MFPKEY_CODEDFRAMES jest liczbą zakodowanych ramek. Odejmując tę wartość od łącznej liczby odtwarzanych ramek, można określić, ile ramek zostało pominiętych.
- MFPKEY_ZEROBYTEFRAMES to liczba ramek, które nie są zakodowane, ponieważ ich zawartość już została uwzględniona. Ta wartość nie jest odejmowana od liczby kodowanych klatek zgłoszonych przez DMO.
Właściwości ramki wideo można odczytywać w dowolnym momencie podczas kodowania. Może to być przydatne podczas określania, czy ustawienia kodowania są odpowiednie dla zawartości; Jeśli istnieje duża różnica między całkowitymi ramkami i kodowanych ramek, skompresowana zawartość może nie spełniać wymagań dotyczących jakości. Końcowe wartości można odczytać po zakończeniu kodowania.
Statystyki buforu VBR
W zależności od używanego trybu kodowania niektóre lub wszystkie ustawienia buforu mogą być określane podczas kodowania (na przykład szybkość bitów oparta na jakości VBR nie jest znana, dopóki zawartość nie zostanie zakodowana). Istnieją cztery właściwości buforu VBR, które można uzyskać przy użyciu metody IPropertyBag::Read:
- MFPKEY_RAVG jest średnią szybkością bitów zawartości VBR.
- MFPKEY_BAVG to okno buforu dla średniej szybkości bitów.
- MFPKEY_RMAX to maksymalna przepływność zawartości VBR.
- MFPKEY_BMAX to okno buforu szczytowego.
Po rozpoczęciu przetwarzania przykładów nie należy odczytywać żadnych właściwości VBR do momentu zakończenia kodowania strumienia. W takim przypadku koder interpretuje żądanie jako sygnał, że kodowanie zostało ukończone. Następny przykład, który przetwarzasz, jest traktowany jako nowa sesja kodowania.
Tematy pokrewne