2014-10-23 17 views
2

자바에서 Xuggler 라이브러리를 사용하여 비디오를 오디오로 변환 중입니다. 프로그램에 오류나 예외가 없지만 생성 된 오디오 파일은 0KB입니다. 누군가 문제를 해결할 수 있습니까?Xuggler 비디오 오디오 변환

환경 : 이클립스 헬리오스, OS : 윈도우 7

외부 JAR 라이브러리 프로젝트에 추가 :

(1)slf4j-api-1.7.7.jar 
(2)slf4j-simple-1.7.7.jar 
(3)xuggle-xuggler-5.4.jar 

코드를 비디오 오디오 변환. 프로그램이 잘 보이는

import com.xuggle.mediatool.IMediaReader; 
import com.xuggle.mediatool.IMediaWriter; 
import com.xuggle.mediatool.ToolFactory; 
import com.xuggle.xuggler.ICodec; 

public class VideoToAudio{ 

    public void convertVideoToAudio(){ 
     IMediaReader reader = ToolFactory.makeReader("D://vid.mp4"); 
     IMediaWriter writer = ToolFactory.makeWriter("D://a.mp3",reader); 

     int sampleRate = 44100; 
     int channels = 1; 

     writer.addAudioStream(0, 0, ICodec.ID.CODEC_ID_MP3, channels, sampleRate); 
     while (reader.readPacket() == null); 
    } 

    public static void main(String [] args){ 
     VideoToAudio vta = new VideoToAudio(); 
     try{ 
      vta.convertVideoToAudio(); 
     } 
     catch(Exception e){ 
      System.out.println("Could not open video file"); 
     } 
    } 
} 

답변

1

, 당신은 단지 라인 :

public void convertVideoToAudio(){ 
    IMediaReader reader = ToolFactory.makeReader("D://vid.mp4"); 
    IMediaWriter writer = ToolFactory.makeWriter("D://a.mp3",reader); 

    int sampleRate = 44100; 
    int channels = 1; 

    writer.addAudioStream(1, 0, ICodec.ID.CODEC_ID_MP3, channels, sampleRate); 
-> reader.addListener(writer); 

    while (reader.readPacket() == null); 
} 
를 잊어 버렸습니다