2012-10-05 3 views
1

비디오를 .mp4으로 변환했습니다.하지만 javafx 응용 프로그램에서 비디오를 재생해도 작동하지 않고 비디오 파일의 오디오는들을 수 있지만 사진들! 어쩌면 .mp4가 올바른 코덱에 없습니다! 어떤 생각이나 해결책?변환 된 mp4 파일을 재생할 수 없습니다. - JavaFX 2.1

UPDATE

동일한 조건에서 나는 또 다른 MP4 비디오를 재생 한 동일한 코드 (plateforme, JFX 버전, ...)와

, 그래서 내가 변환이 MP4에 문제가 있다고 판단하고 있습니다 파일, 즉 내가 mov 파일을 변환하는 데 사용하고있는 소프트웨어는 JFX 2.1에서 지원하는 approiat mp4 형식을 생성하지 않습니다.

+0

사용중인 OS는 무엇입니까? 어떤 코덱을 사용하고 있습니까? 코덱은 h.264입니까? JavaFX 2.2에서 비디오를 재생할 수 있습니까? – jewelsea

+0

xp를 사용 중이고 divx가 설치되어 있습니다. 코덱의 경우 H264로 비디오를 변환하려고하는데 제대로 수행했는지 여부는 알 수 없습니다. JavaFX 2.2에서는 2.1을 사용하고 있기 때문에 잘 모르겠습니다. – Adil

답변

1

다음 코드 샘플은 JavaFX에서 h.264로 인코딩 된 mp4 비디오를 재생하는 방법을 보여줍니다.

import javafx.application.Application; 
import javafx.geometry.Pos; 
import javafx.scene.Scene; 
import javafx.scene.control.Label; 
import javafx.scene.layout.*; 
import javafx.scene.media.*; 
import javafx.scene.paint.Color; 
import javafx.stage.Stage; 

/** plays an mp4 video in JavaFX 2.1+ */ 
public class OnlineVideoPlayer extends Application { 
    public static void main(String[] args) { launch(args); } 
    @Override public void start(Stage stage) { 
    final Label status = new Label("Init"); 
    MediaPlayer mediaPlayer = createMediaPlayer(
     "http://www.html5videoplayer.net/videos/toystory.mp4", 
     status 
    ); 
    VBox layout = new VBox(10); 
    layout.setAlignment(Pos.CENTER); 
    layout.getChildren().addAll(new MediaView(mediaPlayer), status); 
    stage.setScene(new Scene(layout, 500, 300, Color.CORNSILK)); 
    stage.show(); 
    if (mediaPlayer != null) { 
     mediaPlayer.play(); 
    } 
    } 

    /** 
    * creates a media player using a url to the media 
    * and tracks the status of playing the media via the status label 
    */ 
    private MediaPlayer createMediaPlayer(final String url, final Label status) { 
    Media hit = new Media(url); 
    MediaPlayer mediaPlayer = new MediaPlayer(hit); 
    mediaPlayer.setOnError(new Runnable() { 
     @Override public void run() { 
     status.setText("Error"); 
     } 
    }); 
    mediaPlayer.setOnPlaying(new Runnable() { 
     @Override public void run() { 
     status.setText("Playing: " + url); 
     } 
    }); 
    mediaPlayer.setOnEndOfMedia(new Runnable() { 
     @Override public void run() { 
     status.setText("Done"); 
     } 
    }); 
    return mediaPlayer; 
    } 
} 

샘플 프로그램 출력 : (JavaFX 8u72, OS X 10.9.5). barbie woody

+0

내 질문을 업데이트했습니다. 답장을 보내 주셔서 감사합니다! – Adil

+0

코드를 시도했지만 미디어 오디오 형식이 계속 지원되지 않는 오류가 발생했습니다. 예제가 사용하는 비디오는 더 이상 존재하지 않으므로 여기에서 행운없이 파일을 보려고합니다. http://www.sample-videos.com/ – javydreamercsw

+0

새 비디오 링크를 사용하기 위해 내 대답을 업데이트했으며 제대로 재생했습니다. – jewelsea

1

당신은 당신의 .MP4 파일 H264로 인코딩되어 있는지 확인해야합니다. MPEG4가 작동하지 않습니다.

관련 문제