2010-05-21 18 views
2

Actuellement, le prototype fonctionnel a tout ce qu'il faut pour fonctionner: une fenêtre semi-transparente pour redimensionner facilement l'endroit que vous voulez enregistrer, plusieurs threads pour gérer la capture d'écran, etc., mais une dernière tâche à faire m'a échappé pendant des mois. J'ai besoin de convertir toutes les images que j'ai déversées dans un dossier que j'ai fait appelé temp (que je supprime après que tout soit fini) dans un film.Conversion d'une série d'images en une vidéo en Java?

Je l'ai déjà trouvé this, mais il est une sorte autonome de chose que vous utilisez dans une coquille. J'ai juste besoin de le modifier pour qu'il convertisse toutes les images (screencapture1.jpg, screencapture2.jpg, etc.) en un seul film. Pourquoi ne puis-je pas le faire moi-même? Parce que je crains de comprendre le travail d'autres personnes, la programmation linguistique. Je ne sais pas pourquoi, mais à moins que ce ne soit la chose la plus simple, je n'arrive jamais à la comprendre.

Répondre

5

Je suggérerais simplement d'apprendre à appeler des programmes externes à partir de votre programme Java. Ensuite, vous pouvez simplement exécuter ce programme d'exemple que vous avez lié. Ou si vous voulez encore plus de capacité, utiliser ffmpeg qui le fera automatiquement à partir de la ligne de commande ainsi:

ffmpeg -i screencapture%d.jpg -vcodec mpeg4 outfile.avi 

ffmpeg vous permet de personnaliser beaucoup de choses au sujet de la vidéo de sortie. Consultez simplement la documentation pour toutes les options.

La commande Java Runtime.getRuntime().exec(...) permet d'exécuter quelle que soit la ligne de commande que vous passez. Il existe de nombreux exemples de la façon de le faire si vous le google.

+0

Ajout de la bibliothèque FFmpeg multiplierait la taille de ma demande par plus de 300 fois ... = ( En outre, comment puis-je utiliser? Je ne suis pas bon avec des coquillages, mais je sais pour certain que je dois dire ma coquille où la bibliothèque fFmpeg est avant de taper 'ffmpeg -i screencapture% d.jpg -vcodec mpeg4 outfile.avi' fonctionnera. –

+1

Vous devrez peut-être indiquer le chemin complet. Si dans Windows, il peut être quelque chose comme' Runtime.getRuntime(). exec ("C: \\ Program Files \\ ffmpeg \\ ffmpeg.exe -i screencapture% d.jpg -vcodec mpeg4 outfile.avi"); 'remplacer le chemin de votre exécutable en conséquence Je sais que cela augmentera votre. La taille de l'application est importante, mais il est difficile de ne pas le faire lorsque vous pensez aux capacités dont vous avez besoin.Vous avez besoin d'un décodeur JPEG et d'un encodeur vidéo MPEG, qui sont tous deux assez complexes. Pas de matte Quelle solution utilisez-vous? Cela va prendre de la place. –

+0

Okay. Serait-il possible de supprimer des parties inutiles de la bibliothèque FFmpeg pour le réduire? –