We gaan met onze projectgroep een digitale leeromgeving maken. Dit betekent dat er een server is waar verschillende studenten en een docent op kunnen inloggen. Docenten kunnen dan hun beeldscherminhoud en microfoongeluid overzenden naar de studenten.
Mijn vraag is, hoe kunnen we dit het beste aanpakken?
Voor het beeldscherm zat ik te denken aan
- 3x per seconde een screenshot maken
- dit steeds vergelijken met de vorige en gelijke pixels in de nieuwe transparant maken
- het nieuwe plaatje croppen (dus de kleinste rechthoek pakken zonder dat er niet-transparante pixels kwijtraken)
- het nieuwe plaatje met JPEG comprimeren en naar een socket schrijven
Het probleem daarbij is alleen dat de te verzenden data bij grove veranderingen erg groot kan worden (zeg, 30 kB, dus 90 kB p/s). Daarom kunnen we misschien beter een echte videocodec als MPEG of de open-source Theora gebruiken, maar hoe doen we dit in Java?
Ik heb natuurlijk wat uitgezocht, maar het officiele JMF (java media foundation/framework?) is al best oud en ondersteunt niet veel. Daarnaast is het wenselijk dat de gebruiker niks anders dan Java hoeft te installeren (dus de functionaliteit moet ofwel bij de java runtime zitten, of in de programmamap aanwezig kunnen zijn)
Wie kan ons in de goede richting wijzen? Pakken we het misschien helemaal verkeerd aan?
Mijn vraag is, hoe kunnen we dit het beste aanpakken?
Voor het beeldscherm zat ik te denken aan
- 3x per seconde een screenshot maken
- dit steeds vergelijken met de vorige en gelijke pixels in de nieuwe transparant maken
- het nieuwe plaatje croppen (dus de kleinste rechthoek pakken zonder dat er niet-transparante pixels kwijtraken)
- het nieuwe plaatje met JPEG comprimeren en naar een socket schrijven
Het probleem daarbij is alleen dat de te verzenden data bij grove veranderingen erg groot kan worden (zeg, 30 kB, dus 90 kB p/s). Daarom kunnen we misschien beter een echte videocodec als MPEG of de open-source Theora gebruiken, maar hoe doen we dit in Java?
Ik heb natuurlijk wat uitgezocht, maar het officiele JMF (java media foundation/framework?) is al best oud en ondersteunt niet veel. Daarnaast is het wenselijk dat de gebruiker niks anders dan Java hoeft te installeren (dus de functionaliteit moet ofwel bij de java runtime zitten, of in de programmamap aanwezig kunnen zijn)
Wie kan ons in de goede richting wijzen? Pakken we het misschien helemaal verkeerd aan?