[英]FFMPEG:Multiple Image frames + 1 Audio =1 Video
我正在使用这个库Android-MJPEG-Video-Capture-FFMPEG并使用相机获取帧...我正在使用下面的FFMPEG命令
String[] ffmpegCommand = {
"/data/data/com.mobvcasting.mjpegffmpeg/ffmpeg", "-r",
"" + p.getPreviewFrameRate(), "-b", "1000000",
"-vcodec", "mjpeg", "-i",
TEMPIMAGEPATH + "frame_%05d.jpg", "-i",
VIDEOPATH + "video.mov" };
它的工作正常..同时获取帧我也正在录制音频。现在我想将音频添加到输出视频..我已经尝试过此命令,但它不工作..
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" };
在谷歌搜索但没有找到工作解决方案..
题::
what is the correct command for combining audio and frames into video??
在应用了很多技巧之后,我找到了解决方案。
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<String> cmd = new ArrayList<String>();
cmd = new ArrayList<String>();
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);
}
我希望这可以帮助别人。谢谢!
从jagadish回答,我尝试了这样的命令,这对我有用。
-y -i /存储/仿真/0/images.jpg -i /存储/仿真/0/rec.wav -acodec aac -vcodec mpeg4 -s 480 * 320 -f mp4 -r 2 /存储/仿真/ 0 / result.mp4"
尝试使用以下命令它应该可以使用多个图像库 - https://github.com/WritingMinds/ffmpeg-android-java
这里test $ 04d.png引用了一系列图像,如test0001.png,test0002.png等。确保你的图像名称具有相同的图像约定
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
带有音乐文件
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
祝好运
inputCode = new String[]{FileUtils.getFFmpeg(getApplicationContext()),
"-y", "-r", "15", "-i", ImageListDirectory + "",
"-i", Environment.getExternalStorageDirectory() + "/" + "MusuicFile.mp3", "-shortest",
"-c:v", "libx264", "-pix_fmt", "yuv420p", "-c:a", "aac", Outputpath};
你可以尝试这个命令。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.