FFMPEG: marcos múltiples de imágenes + 1 audio = 1 video

Estoy usando esta biblioteca Android-MJPEG-Video-Capture-FFMPEG para obtener los marcos con el uso de la cámara … Estoy utilizando el siguiente comando FFMPEG para esto

String[] ffmpegCommand = { "/data/data/com.mobvcasting.mjpegffmpeg/ffmpeg", "-r", "" + p.getPreviewFrameRate(), "-b", "1000000", "-vcodec", "mjpeg", "-i", TEMPIMAGEPATH + "frame_%05d.jpg", "-i", VIDEOPATH + "video.mov" }; 

Funciona bien … mientras obtengo los marcos, también estoy grabando el audio. Ahora quiero agregar audio al video de salida … Lo he intentado con este comando pero no funciona …

 String[] ffmpegCommand = { "/data/data/com.mobvcasting.mjpegffmpeg/ffmpeg", "-r", "" + p.getPreviewFrameRate(), "-b", "1000000", "-vcodec", "mjpeg", "-acodec", "copy", "-i", TEMPIMAGEPATH + "frame_%05d.jpg", "-i", VIDEOPATH + "audio.mp4", VIDEOPATH + "video.mov" }; 

buscado en google, pero no se encontraron soluciones de trabajo ..

PREGUNTA::

 what is the correct command for combining audio and frames into video?? 

Encontré la solución después de muchos trucos aplicados.

 public void myFunction(ShellCallback sc, String imgPath, String audioPath, String outPath) throws IOException, InterruptedException { Log.e("MyFunction","audioPath"+audioPath); Log.e("MyFunction","imagePath"+imgPath); ArrayList cmd = new ArrayList(); cmd = new ArrayList(); cmd.add(ffmpegBin); cmd.add("-y"); cmd.add("-loop"); cmd.add("1"); cmd.add("-r"); cmd.add("1"); cmd.add("-i"); cmd.add(new File(imgPath).getCanonicalPath()); cmd.add("-i"); cmd.add(new File(audioPath).getCanonicalPath()); cmd.add("-acodec"); cmd.add("aac"); cmd.add("-vcodec"); cmd.add("mpeg4"); cmd.add("-s"); cmd.add("480x320"); cmd.add("-strict"); cmd.add("experimental"); cmd.add("-b:a"); cmd.add("32k"); cmd.add("-shortest"); cmd.add("-f"); cmd.add("mp4"); cmd.add("-r"); cmd.add("2"); File fileOut = new File(outPath); cmd.add(fileOut.getCanonicalPath()); execFFMPEG(cmd, sc); } 

Espero que esto ayude a los demás. ¡Gracias!

De la respuesta de Jagadish, intenté el comando de esta manera, esto me funcionó.

-y -i /storage/emulated/0/images.jpg -i /storage/emulated/0/rec.wav -acodec aac -vcodec mpeg4 -s 480 * 320 -f mp4 -r 2 / storage / emulated / 0 / result.mp4 ”

Pruebe con el siguiente comando que debería funcionar con múltiples imágenes Library – https://github.com/WritingMinds/ffmpeg-android-java

Aquí, la prueba $ 04d.png se refiere a una serie de imágenes como test0001.png, test0002.png, etc., asegúrese de tener las mismas convenciones de imagen para los nombres de sus imágenes

 ffmpeg -r 1/5 -i /storage/emulated/0/Pictures/Screenshots/test%04d.png -c:v libx264 -vf fps=20 -pix_fmt yuv420p /storage/emulated/0/Movies/out.mp4 

Con el archivo de música

 ffmpeg -r 1/5 -i /storage/emulated/0/Pictures/Screenshots/test%04d.png -i /storage/emulated/0/Pictures/Screenshots/music.mp3 -c:v libx264 -vf fps=20 -pix_fmt yuv420p /storage/emulated/0/Movies/out.mp4 

Buena suerte