2013-02-19 1 views
5

안드로이드에서 mp4parser을 사용하여 mp4 오디오 파일을 오버레이하여 mp4 비디오 파일에 오버레이하는 방법을 알고있는 사람이 있는지 궁금합니다. 하나의 비디오에 다른 비디오를 추가 할 수있게되었습니다. 이제는 결합 된 파일보다 원시 mp4를 오버레이해야합니다.안드로이드에서 mp4parser를 사용하여 MP4를 결합하십시오.

도움이 될 것입니다.

답변

4

다음 코드는 두 개의 오디오 언어와 비디오를 다중화합니다. 당신의 요구에 채택이 용이해야한다 :

public static void main(String[] args) throws IOException { 

    String audioDeutsch = MuxMp4SourcesExample.class.getProtectionDomain().getCodeSource().getLocation().getFile() + "/count-deutsch-audio.mp4"; 
    String audioEnglish = MuxMp4SourcesExample.class.getProtectionDomain().getCodeSource().getLocation().getFile() + "/count-english-audio.mp4"; 
    String video = MuxMp4SourcesExample.class.getProtectionDomain().getCodeSource().getLocation().getFile() + "/count-video.mp4"; 


    Movie countVideo = MovieCreator.build(new FileInputStream(video).getChannel()); 
    Movie countAudioDeutsch = MovieCreator.build(new FileInputStream(audioDeutsch).getChannel()); 
    Movie countAudioEnglish = MovieCreator.build(new FileInputStream(audioEnglish).getChannel()); 

    Track audioTrackDeutsch = countAudioDeutsch.getTracks().get(0); 
    audioTrackDeutsch.getTrackMetaData().setLanguage("deu"); 
    Track audioTrackEnglish = countAudioEnglish.getTracks().get(0); 
    audioTrackEnglish.getTrackMetaData().setLanguage("eng"); 

    countVideo.addTrack(audioTrackDeutsch); 
    countVideo.addTrack(audioTrackEnglish); 

    Container out = new DefaultMp4Builder().build(countVideo); 
    FileOutputStream fos = new FileOutputStream(new File("output.mp4")); 
    out.writeContainer(fos.getChannel()); 
    fos.close(); 

} 
+0

오디오가이 코드를 사용할 때 .. 어떤 도움을 덮어인가? –

+1

@Sebastian 오디오 트랙이 하나씩 추가됩니다. 어쨌든 두 개의 오디오 트랙을 추가 할 수 있으며, 동시에 그리고 분명히 비디오를 실행해야합니다. 비디오 및 음성 오디오와 배경 음악이 있다고 가정 해 봅시다. 이제 저는이 두 가지 오디오를 비디오와 동시에 병렬로 실행하려고합니다. 우리가 이것을 성취 할 수있는 방법을 도울 수 있습니까? – ROCKY

+0

위에서 언급 한 코드는 첫 번째 오디오 트랙이 추가 된 비디오를 믹스합니다. 두 개의 오디오 트랙을 비디오 파일과 평행하게 재생하고 싶습니다. 누구든지 저를 도울 수 있습니다 –