Pergunta

Eu estou tentando ler quadros de vídeo brutos de um dispositivo de captura de vídeo usando JMF -. O Java Media Framework

Eu escrevi com êxito a parte "captura" - usando um Jogador objeto criado pelo Gerenciador , I pode exibir o vídeo em tempo real a partir de uma webcam. Eu não sei como ir sobre como criar um componente personalizado para acessar os quadros reais, no entanto. Este é provavelmente porque até agora Gerenciador criou cada instância de classe que eu precisava para mim.

Gostaria de começar por escrever um componente GUI que exibe o vídeo. (Eu não estou familiarizado com AWT / Swing, mas com base no conhecimento de outras estruturas de GUI, eu diria que algo derivado de uma, digamos, JPanel que atrai o vídeo quando um pedido de repintura é feita ou um novo quadro está disponível.) eu gostaria de ser capaz de processar cada novo quadro e laço em X / Y sobre todos os pixels. Eu tenho acesso ao formato bruto / RGB no meu dispositivo, mas a conversão automática de, digamos, YUV não faria mal.

Eu não tenho idéia por onde começar. A documentação JMF recomenda I derivar minha classe de Processor ou DataSink em vários lugares diferentes. Usando o processador de de interface parece um exagero - eu não teria nenhuma necessidade de que as funções de reprodução e de controle de tempo, por exemplo; e eu não sei como implementá-los em primeiro lugar. Decorrente da DataSink parece ser uma opção mais simples com as funções abstratas menos inúteis. No entanto, em ambos os casos, eu estou em uma perda completa, como:

a) Ligue o componente para o meu vídeo captura DataSource
b) acesso aos reais buffers de quadros a partir de dentro da classe

Posso até estar indo na direção errada aqui; Eu só queria documentar o que eu tentei até agora. documentação JMF parece escasso e principalmente orientado para [design] players e conversores de mídia.

Nota: A biblioteca de processamento parece ter uma solução simples para isso. Eu vi um exemplo ao longo das linhas de:. x = new Image(captureDevice.getFrame()) que parece sugerir pixel-nível de acesso é possível, através de imagens, se não é o tipo intermediário

Mas eu realmente gostaria de ver como é difícil na JMF em primeiro lugar.

Foi útil?

Solução

Você pode experimentar o código que eu postei aqui , que usa JMF e uma classe chamada framegrabber.

Outras dicas

Sinto muito, mas neste momento, JMF é essencialmente morto. Você provavelmente usaria FX para isso, mas FX não é exatamente fazendo bem também.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top