Могу ли я читать XAVC с помощью JavaFX Media? - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь определить длительность этих видеофайлов, а также любую другую информацию, которую я могу получить, потому что мне нужно исправить временные метки и выполнить некоторый расчет времени для выравнивания файлов с нескольких камер на временной шкале.

Я работаю с JavaFX.Scene.Media, чтобы сделать это.Пока у меня есть следующий код, но я получаю исключение из-за «нераспознанной подписи файла»

public static void main(String[] args) {
    final JFXPanel fxPanel = new JFXPanel();

    ArrayList<Path> s = new ArrayList<Path>();
    try (Stream<Path> paths = Files.walk(Paths.get(System.getProperty("user.dir")))) {
        paths
                .filter(Files::isRegularFile)
                .filter(Files::exists)
                .forEach(s::add);
    }catch(Exception e){
        e.printStackTrace();
    }

    for(Path p:s){
        try {

            Media m = new Media(p.toUri().toString());
            MediaPlayer mediaPlayer = new MediaPlayer(m);

            mediaPlayer.setOnReady(new Runnable() {

                @Override
                public void run() {

                    System.out.println("Duration: "+m.getDuration().toSeconds());

                    // display media's metadata
                    for (Map.Entry<String, Object> entry : m.getMetadata().entrySet()){
                        System.out.println(entry.getKey() + ": " + entry.getValue());
                    }
                }
            });


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

Мой видеофайл - XAVC.Контейнер файлов - MP4, видео - AVC, аудио - PCM.AVC и PCM, похоже, поддерживаются здесь, поэтому я не уверен, где продолжить.https://docs.oracle.com/javase/9/docs/api/javafx/scene/media/package-summary.html

...