如何使用javacv / opencv在Android中集成音频和视频?

时间:2012-12-07 09:15:09

标签: android audio opencv ffmpeg javacv

对于我的应用程序,我通过在android中使用javacv / opencv从图像集创建视频。但是视频播放时没有声音。所以我想将我录制的音频(mp3文件)添加到生成的视频中我该如何实现它?

这是我的代码,用于从图像中获取视频,

                String path =SCREENSHOT_FOLDER2; 

            File folder = new File(path);


                listOfFiles = folder.listFiles();  
                if(listOfFiles.length>0)
                {









              iplimage = new opencv_core.IplImage[listOfFiles.length];


               for (int j = 0; j < listOfFiles.length; j++) {

                 String files="";       

               if (listOfFiles[j].isFile()) 
               {
               files = listOfFiles[j].getName();

                 }   


                String[] tokens = files.split("\\.(?=[^\\.]+$)");
               String name=tokens[0]; 

                System.out.println(" j " + name);




              iplimage[j]=cvLoadImage("/mnt/sdcard/images/"+name+".png");


               }

            } 



                File videopath = new File(SCREENSHOT_FOLDER3);
                videopath.mkdirs();
                 FFmpegFrameRecord recorder = new          
                    FFmpegFrameRecord(SCREENSHOT_FOLDER3+
                  "video"+System.currentTimeMillis()+".mp4",320,480);

                 try {
                     recorder.setCodecID(CODEC_ID_MPEG4); //CODEC_ID_MPEG4                            
                     //CODEC_ID_MPEG1VIDEO
                     recorder.setBitrate(sampleVideoBitRate);
                     recorder.setFrameRate(10);                     
                     recorder.setPixelFormat(PIX_FMT_YUV420P); //PIX_FMT_YUV420P


                     recorder.start();

                     int x = 0;
                     int y = 0;
                    for (int i=0;i< 300 && x<iplimage.length;i++)

                       {

                         recorder.record(image[x]);

                        if (i>(y+10)) {
                            y=y+1;
                            x++;
                        }

                        }
                     recorder.stop();
                    }
                 catch (Exception e){
                     e.printStackTrace();
                   }

现在如何在此代码中集成音频文件(.mp3)文件。

2 个答案:

答案 0 :(得分:0)

OpenCV,随后JavaCV不支持音频。

你必须使用不同的库。查看Android对视频/音频的支持,第三方库或您可能认为有用的任何其他方式。

但不要只是期望OpenCV能帮到你,因为它对音频的支持是0%。

答案 1 :(得分:0)

我不会说JavaCV不支持音频,因为它集成了许多opencv没有的库 - 例如ffmpeg。检查that issue的这个长线程。