2

私は Xuggler を初めて使用します。ByteArrayInputStream からビデオ ファイルを読み取るプログラムを作成したいと考えています。これはコードです:

 public static String path="/home/gurinderbeer/Downloads/IMG_1579.MOV";

 public static void main(String[] args) throws IOException
 {
     // get size of file
    File f = new File(path);
    int size = (int) f.length();
    byte[] b = new byte[size];

    // read data from inputstream into byte array b
    InputStream fileInputStream = null;
    fileInputStream = new FileInputStream(path);
    fileInputStream.read(b);


    // convert byte array to ByteArrayinputStream
    InputStream byteStream = new ByteArrayInputStream(b);

    //create container from byteStream
    IContainer container =IContainer.make();
    int result = container.open(byteStream,null);

    System.out.println(container.getNumStreams());
    System.out.println(container.getDuration());

    byteStream.close();

}

まず、入力パスからファイルを取得します。ファイルのサイズを取得し、バイト配列を初期化します。

次に、ファイル入力 fileinputstream からすべてのデータを取得し、そのデータをバイト配列にコピーします。次に、バイト配列から byteArrayInputStream を作成します。

最後に、この byteArrayInputStream が IContainer への入力として与えられます。

このコードは、ビデオ ファイルのサイズが 7 MB 未満の場合 (実行に 1 秒もかからない)、ビデオ ファイルに対して機能します。しかし、7 MB を超えるサイズのビデオ ファイルを使用すると、プログラムは引き続き実行され、終了することはありません。エラーは発生しませんでしたが、実行を続けます。デバッグしようとしたところ、次の行で引き続き実行されていることがわかりました。

int 結果 = container.open(byteStream,null)

プログラムを30分間実行したままにしましたが、結果は得られず、まだ実行を続けています..

これに関して誰でも助けてもらえますか.....

4

0 に答える 0