Я вызываю следующий метод для потоковой передачи кадров с USB-камеры на org.WebRTC
Video Capture Observer. Он работает нормально, за исключением некоторых поврежденных кадров (зеленых или искаженных серых кадров), которые появляются каждые пару секунд на видеоэкране удаленного узла. Я хочу убедиться, что nv21Buffer
или videoFrame
являются хорошими снимками, прежде чем отправлять их дальше наблюдателю.
public void addFrame(ByteBuffer frame) {
try {
byte[] imageArray = new byte[frame.remaining()];
frame.get(imageArray);
NV21Buffer nv21Buffer = new NV21Buffer(imageArray, 640, 480, () -> JniCommon.nativeFreeByteBuffer(frame));
VideoFrame videoFrame = new VideoFrame(nv21Buffer, 0, System.nanoTime());
// before sending the videoFrame further, I need to validate if it is a good picture / frame
capturerObs.onFrameCaptured(videoFrame);
} catch (
Exception e) {
Log.d("addFrame", e.getMessage());
}
}
Существуют ли какие-либо встроенные инструменты / методы для проверки качества кадров перед отправив их дальше?