Você disse que existem algumas possibilidades que podem ocorrer com uma camera real que não são tão simples de replicar.
Pode citar alguns exemplos?
Alguns comportamentos:
- A câmera pode enviar alguns frames com problema ao realizar o encoding do vídeo. Ao fazer o decoding, a imagem vai vir com diversos artefatos de compressão, assim que chamamos. Isso é bem complicado de detectar, ao menos eu não conheço uma forma fácil. Até onde eu saiba é só possível de ver visualmente.
- A câmera pode não conseguir ler a imagem em um determinado momento. Agora, o que vai acontecer com a leitura é um processo complicado. Podem haver dois possíveis comportamentos: a thread de leitura de câmera vai ficar travado ao tentar ler o frame, ou ela pode jogar um frame vazio. Contudo, existe um terceiro comportamento que eu já observei alguns poucas vezes, que o leitor de video morre totalmente. Ele quebra e nada mais funciona. Nós utilizamos a OpenCV para realizar a leitura da câmera e esse problema é realmente difícil de detectar. Esse problema os desenvolvedores ainda não conseguiram resolver.
Cara, gostei do que você descreveu no item (1). Acho que um bom jeito é eu encarar isso com minha equipe como sendo um "projeto", em que a gente tem que levantar os requisitos e desenvolver código em cima.
Muito obrigado pela dica da lib, vou testar!