Partage
  • Partager sur Facebook
  • Partager sur Twitter

Creer un logitiel style skype en JAVA

Creer un logitiel style skype (cam video , appels , messages etc)

    15 août 2017 à 15:00:50

    Bonjour a tous et a toute

    Je recherche des informations sur un de mes projets (un defi pour moi) je veux realiser une application qui permeterait d´appeller , faire des cam video envoyer des fichiers et des messages en JAVA

    J'ai 15 ans et je suis a ma 3eme année "d'auto formation" si je peut appeller ca comme ca ^^

    j'ai deja realisé ce genre de projet mais je n'arrive pas a bien optimiser tout ca ..

    J'ai plusieurs questions :

    1: comment creer un capture d'ecrant video optimisé ?

    sur le pc qui filmait , le robot recuperait les images du pc puis l'envoyait au pc receveur puis le pc rceveur faisait une video a partir de ca

    c'etait tres mal optimisé (1image / 10s)

    2: capturer les flux audio et videos?(micro et webcam)

    J'ai jamais trop utilisé les API et je sais jamais trop ou les teouver ..

    3: mon proggrame est herbergé sur mon wifi , je dois ouvrir le server.jar puis les client.jar pour que cela fonctionne.

    comment je ferait pour heberger mon server.Jar sur OVH par exemple ? 

    Merci d'avance :)

    • Partager sur Facebook
    • Partager sur Twitter
      15 août 2017 à 15:45:12

      Bonjour,

      Ce tuto peu faire un bon début de projet : sockets.

      Je pense que si tu fais déjà une UI l'échange de message tu auras une bonne base d'un skype. Pour faire les choses vraiment proprement code avec le design pattern MVP, pour rendre ton code plus lisible, flexible a la modification et a l'évolution comme ca tu n'auras aucun soucis pour la suite ;)

      -
      Edité par Morin21 15 août 2017 à 15:45:24

      • Partager sur Facebook
      • Partager sur Twitter
        15 août 2017 à 16:08:09

        Salut Morin21 ,

        merci pour ta reponse :)

        je vais aller voir le turoriel sur les sockets merci ;)

        et je connait pas "UI" meme si ca me dit quelque chose et "MVP" pareil :s

        Je code generalement sans API et c'est la 1ere fois que je viens demander conseils sur Openclassroom :s

        Merci pour ta reponse :)

        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          15 août 2017 à 19:58:15

          Lorsque tu utilises le réseau il est préférable de faire travailler le processeur plutôt que le réseau pour des raisons évidentes, d'où l'intérêt de la compression.
          Exemple : Imaginons que tu captures en 480x640, tu as donc 307 200 pixels. Si tu enregistres en RGB tu as 24 bit/pixel, on a donc environ 7Mbit/image. Si tu veux une image fluide il va falloir 24 FPS, soit 177 Mbit/s. Personne n'a de tels débits en upload (généralement on est sur quelques Mbit/s pour les bonnes connexions), il est donc absolument impossible d'envoyer l'image "brute" si tu veux un truc fluide. Ajoute à ça qu'il faut transmettre le son et ta fluidité en prend encore un coup.

          Les API on apprend à les utiliser.

          Pour héberger ton serveur il va falloir un serveur dédié, soit un vrai serveur dédié mais là c'est assez cher, soit VPS qui sont à quelques euros/mois pour les moins chers, à voir quels sont tes besoins.

          • Partager sur Facebook
          • Partager sur Twitter
            15 août 2017 à 20:12:31

            Bonjour PitchPitch , merci pour ta reponse :)

            Je ne comprend pas comment le client peut recevoir l'image ducoup..

            je dois l'envoyer par petits bouts ?

            Comment je devrait faire ? :s

            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              15 août 2017 à 23:15:41

              Option 1 : Tu réduis considérablement la résolution pour augmenter les FPS, mais tu vas avoir une qualité de merde

              Option 2 : Tu trouves une manière de compresser soit par certaines API qui doivent le proposer, soit à ta façon en étudiant les formats qui existent actuellement, envoyer une image en RGB, disons à 24 bit/pixel (je suppose que c'est ce que tu fais) est probablement la façon la moins opti de faire.

              Je viens de faire un test : j'ai pris une photo au hasard avec mon portable, la résolution est 3264x1840, elle est enregistrée au format JPEG et fait 1.38 Mo. Si j'enregistre la même en RGB sans aucune compression elle ferait autour de 18 Mo. Tu vois un peu le gain ? Évidemment c'est parfois plus, parfois moins, ça dépend des photos, mais le gain est toujours assez conséquent.

              En plus l'exemple que j'ai pris a des grosses résolutions mais si tu veux faire du live vidéo tu auras des qualités plus faibles donc une image pourrait au final ne faire que quelques Ko ce qui est déjà plus raisonnable. Je ne suis pas non plus pro dans le domaine, je ne sais pas du tout jusqu'où on peut compresser, je constate juste qu'avec une qualité raisonnable on peut avoir des photos de tailles acceptables.

              Après tu es forcément limité, par exemple chez moi on peut monter à 1Mbps et upload au plus, dans ces conditions il est compliqué (impossible ? ) de faire un live vidéo en HD, et quand la connexion est trop faible tu dois sacrifier soit des FPS, soit de la résolution, soit un peu des deux, mais ce sera à ton appli de gérer ça.

              -
              Edité par Anonyme 15 août 2017 à 23:17:08

              • Partager sur Facebook
              • Partager sur Twitter
                15 août 2017 à 23:46:08

                Merci pour tes reponses PitchPitch :)

                Je vais faire mes screenshots avec Robot de java et je vais essayer de le metre dans un format qui prend le moins de place possible ? Je vais aussi surement metre un truc pour ajuster la qualitée de l'image envoyée par rapport aux fps je vais chercher un peu 

                merci pour votre aide :) ^^

                • Partager sur Facebook
                • Partager sur Twitter

                Creer un logitiel style skype en JAVA

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown