2016-08-10 40 views
0

我正在寫一個簡單的應用程序,它將給定的mp4和mp3文件混合在一起,並將mp4文件作爲結果提取出來。FFMpeg not muxing audio and video

fFmpeg = FFmpeg.getInstance(this); 
cmd = new String[] {"-i", videoPath, "-i", audioPath, Environment.getExternalStorageDirectory() + "/output.mp4"}; 
       fFmpeg.execute(cmd, new ExecuteBinaryResponseHandler() { 
        @Override 
        public void onStart() { 
         super.onStart(); 
         Log.e(TAG, "Started"); 
        } 

        @Override 
        public void onFailure(String message) { 
         super.onFailure(message); 
         Log.e(TAG, "failed: " + message); 
        } 

        @Override 
        public void onProgress(String message) { 
         super.onProgress(message); 
         Log.e(TAG, "progress: "+ message); 
        } 

        @Override 
        public void onFinish() { 
         super.onFinish(); 
         Log.e(TAG, "finish"); 
        } 

        @Override 
        public void onSuccess(String message) { 
         super.onSuccess(message); 
         Log.e(TAG, "success: " + message); 
        } 
       }); 

其中videoPath和audioPath是視頻和音頻的路徑,例如storage/emulated/0/source.mp4。但是我只收到一個沒有附加音頻文件的視頻文件副本。我的錯誤是什麼?

回答

1

如果您的MP4已經包含音頻,那麼MP3可能無法混音。要強制它,使用

ffmpeg -i video -i audio -map 0:v -map 1:a output.mp4 
+0

此外,一些球員,如QuickTime和WMP,有麻煩打在MP4一些MP3,所以它可能是最好重新編碼爲AAC('-c:一aac') 。 – LordNeckbeard

+0

[NULL @ 0xb81d5140]無法爲'-map 0:v -map 1:a'找到合適的輸出格式:' -map 0:v -map 1:a:無效參數 –

+0

您似乎正在使用一個很老的版。升級。 – Mulvya