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());
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
Et .. quelle est votre question? –
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