2014-01-29 13 views
5

Ich versuche, eine Videodatei mit xuggle wie diese zu öffnen:Xuggler: IContainer.open() blockiert

if (container.open(in, null) < 0) { 
     throw new IllegalArgumentException("could not open file: "); 
    } 

Das Problem passiert, wenn i mp4-Datei verwenden, und ich verabschiedete ein Inputstream zu öffnen:

 InputStream in = new FileInputStream(filename); 

In diesem Fall bleibt IContainer.open blockiert und gibt nichts zurück.
Wenn ich jedoch einen Dateinamen an die offene Methode übergeben oder ich verwende das FLV-Format, funktioniert es gut. Ich muss InputStream mit einer mp4-Datei verwenden.
Kann mir jemand helfen, das Problem zu finden?

+0

Wenn Sie eine Lösung für dieses gefunden haben, können Sie es bitte hier aktualisieren? Ich habe genau das gleiche Problem. –

Antwort

2

Falls eine andere Person über dieses Problem läuft, werde ich sagen, was ich getan habe, dass mein Problem behoben: Statt Öffnung von einem InputStream, öffnete ich die Datei direkt verwendet

if (container.open(filename, IContainer.Type.READ, null) < 0) 
{ 
    throw new IllegalArgumentException("Could not open file: " + filename); 
} 

ich diese Hoffnung hilft jemandem, der später auf dieses Problem trifft. Prost.

0

müssen Sie InputOutputStreamHandler z.

File initialFile = new File(filename); 
     InputStream is = new FileInputStream(initialFile); 
     InputOutputStreamHandler handler = new InputOutputStreamHandler(is); 
     int result = container.open(handler, IContainer.Type.READ, null); 
     if (result < 0) 
      throw new IllegalArgumentException("could not open file: " 
        + filename);