2013-03-19 2 views
11

Cette question peut sembler un peu complexe ou ambiguë, mais je vais essayer de le rendre aussi clair que possible. J'ai fait beaucoup de googling et j'ai passé beaucoup de temps mais je n'ai rien trouvé de pertinent pour Windows.Afficher deux vidéos ensemble puis afficher une vidéo fusionnée sur un seul écran

Je souhaite lire deux vidéos sur un seul écran. Un en plein écran en arrière-plan et un sur le dessus dans une petite fenêtre ou petite largeur/hauteur dans le coin droit. Ensuite, je veux une sortie qui se compose de deux vidéos jouant ensemble sur un seul écran.

Donc, fondamentalement, une vidéo se superpose à une autre, puis je veux qu'elle soit diffusée en tant que sortie afin que l'utilisateur puisse la lire plus tard.

Je ne vous demande pas d'écrire tout le code, dites-moi simplement quoi faire ou comment le faire ou quel outil ou SDK tiers je dois utiliser pour y arriver.

mise à jour: Essayé beaucoup de solution.

1. Xuggler - ne prend pas en charge Android.

2. JavaCV ou JJMPEG - impossible de trouver un tutoriel suggérant comment le faire?

Maintenant à la recherche de FFMPEG- recherché depuis longtemps mais pas en mesure de trouver un tutoriel qui suggère la façon de codage de le faire. J'ai trouvé la ligne de commande façon de la réparer. Donc, quelqu'un peut suggérer ou pointer le tutoriel de FFMPEG ou dire d'une autre manière à

+1

coincé sur ce problème pendant une longue période, a essayé d'utiliser ffmpeg dans Windows. mais n'ont pas une forte connaissance de c/C++. et aussi pas en mesure d'obtenir le code sur google. –

+0

J'ai également essayé FFMpeg, et le même problème en raison du manque de connaissances, est-il possible de le résoudre par Java .. – Anil

+0

Si vous êtes en mesure de faire PIP (Picture In Picture) alors j'ai une solution simple pour vous. – Varun

Répondre

1

Je voudrais commencer par JavaCV. C'est plutôt bon et flexible. Cela devrait vous permettre de saisir des cadres, de les composer et de les réécrire dans un fichier. Utilisez les classes FFmpegFrameGrabber et Recorder. La composition peut être faite manuellement.

Le reste de la réponse dépend de quelques choses:

  • voulez-vous lire un fichier/mem/url?
  • voulez-vous enregistrer dans un fichier/mem/url?
  • avez-vous besoin de traitement en temps réel?
  • Avez-vous besoin de quelque chose de plus que de la simple image dans l'image?
+0

merci de répondre si rapidement, mais maintenant je veux lire deux fichiers vidéo et ensuite montrer ensemble et obtenir ce flux comme une sortie .. BTW ça fonctionne dans l'environnement Windows .. – Anil

+1

Donc JavaCV est le chemin à parcourir. – Zielony

+1

@Zielony, hey pouvez-vous signaler à tous les tutoriels s'il vous plaît? –

-2

ffmpeg est un projet très actif, plein de changements et de nouveautés tout le temps.

Vous devriez regarder le projet Xuggler, ceci fournit une API Java pour ce que vous voulez faire, et ils ont une intégration étroite avec ffmpeg.

http://www.xuggle.com/xuggler/

Si vous choisissez d'aller sur le chemin Runtime.exec(), ce fil Red5 devrait être utile:

http://www.nabble.com/java-call-ffmpeg-ts15886850.html

+0

savez-vous que Xuggler ne supporte même pas Android. :( –

0

Vous pouvez utiliser OpenGL pour faire l'affaire. Veuillez noter cependant que vous devrez effectuer des étapes, l'une affichant la première vidéo dans un FBO puis la seconde rendant la seconde vidéo, en utilisant le FBO comme TEXTURE0 et le second comme EXTERNAL_TEXTURE.

Assemblage, et tout ce que vous voulez serait fait par OpengL.

Vous pouvez vérifier ici les codes sources: Using SurfaceTexture in Android et des informations importantes ici: Android OpenGL combination of SurfaceTexture (external image) and ordinary texture

La seule chose que je ne suis pas sûr est ce qui se passe lorsque deux instances de MediaPlayer sont en cours d'exécution en parallèle. Je suppose que ça ne devrait pas poser de problème.

Questions connexes