2012-08-27 2 views
0

Je crée une application de montage vidéo en utilisant JavaScript, ffmpeg et java. En utilisant FFMPEG j'ai créé l'image n de frame, en utilisant canvas.toDataUrl Je remplace la nouvelle image avec le taux de trame d'image existant et tout a pris soin, mais quand j'utilise ces images pour créer la vidéo, FFMPEG n'inclue jamais l'image PNG nouvellement créée.Créer une vidéo à partir d'une image en utilisant FFMPEG

code pour enregistrer l'image .png de toile HTML5

Base64 decoder = new Base64(); 
    byte[] pic = decoder.decodeBase64(request.getParameter("pic")); 
    String frameCount = request.getParameter("frame"); 
    InputStream in = new ByteArrayInputStream(pic); 
    BufferedImage bImageFromConvert = ImageIO.read(in); 
    String outdir = "output\\"+frameCount; 
    //Random rand = new Random(); 
    File file = new File(outdir); 
    if(file.isFile()){ 
     if(file.delete()){ 
      File writefile = new File(outdir); 
      ImageIO.write(bImageFromConvert, "png", file); 
     } 
    } 

code pour créer l'image de la vidéo

String filePath = "D:\\temp\\some.mpg"; 
    String outdir = "output"; 
    File file = new File(outdir); 
    file.mkdirs(); 
    Map<String, String> m = System.getenv(); 

    /* 
    * String command[] = 
    * {"D:\\ffmpeg-win32-static\\bin\\ffmpeg","-i",filePath 
    * ,"-r 30","-f","image2",outdir,"\\user%03d.jpg"}; 
    * 
    * ProcessBuilder pb = new ProcessBuilder(command); pb.start(); 
    */ 
    String commands = "D:\\ffmpeg-win32-static\\bin\\ffmpeg -i " + filePath 
      + " -r 30 -f image2 " + outdir + "\\image%05d.png"; 
    Process p = Runtime.getRuntime().exec(commands); 
Code

pour la création vidéo à partir de l'image

String filePath = "output"; 
    File fileP = new File(filePath); 
    String commands = "D:\\ffmpeg-win32-static\\bin\\ffmpeg -f image2 -i " 
      + fileP + "\\image%5d.png " + fileP + "\\video.mp4"; 
    System.out.println(commands); 
    Runtime.getRuntime().exec(commands); 
    System.out.println(fileP.getAbsolutePath()); 
+1

Est-ce que changer l'image% 5d.png en image% 05d.png dans votre code pour créer une vidéo à partir d'une image fait une différence? – av501

+0

Et .. quelle est votre question? –

+0

uer1559108 Ça a marché, pouvez-vous m'expliquer comment vous avez appris cela? Je n'ai pas remarqué ça. Eh bien merci beaucoup j'ai eu du mal depuis quelques heures – Yashprit

Répondre

3

Vous avez déclaré la création être image% 05d.png et l'utiliser comme image% 5d.png. Il y en a donc zéro zéro dans le nom. C'est tout!

+0

mais quand j'ai vu le nom de l'image était très 00000i.png sans bit supplémentaire de toute façon la solution fonctionne bien – Yashprit

+0

Le nom est correct dans le fichier créé. C'était faux dans la partie du programme où vous l'utilisiez. – av501

+0

Eh bien merci beaucoup pour cette réponse – Yashprit

Questions connexes