1

ビデオファイルが(Javaで)あることを確認する必要があります:

  • ビデオはH.264エンコードされています
  • オーディオはAACエンコードされています

JMFとXuggleを調べました。

Xuggleを使用すると、ファイルのロードとデコード、および別の形式への変換が簡単になりますが、ロードしたファイルのエンコードを判別する方法をまだ理解できていません。

それで、Xuggleがファイルが持っているビデオとオーディオのエンコーディングのタイプを単に返す機能を持っているのか、それともこれを自分で判断するためにファイルのビットを読み取る必要があるのか​​疑問に思いますか?

これを自分で判断する必要がある場合、誰かがH.264の形式に関するドキュメントを教えてもらえますか?

4

2 に答える 2

2

そこで、Xuggler の Decoding Demo を見て答えを見つけたので、将来同様の解決策を探している人のために、私が書いたコードを次に示します。


    // create a Xuggler container object
    IContainer container = IContainer.make();
    if(container.open(file.getPath(),IContainer.Type.READ,null) < 0) {
        return false;
    }

    // query how many streams the call to open found
    boolean isH264 = false;
    boolean isAAC = false;

    int numStreams = container.getNumStreams();
    for(int i = 0; i < numStreams; i++)
    {
      // find the stream object
      IStream stream = container.getStream(i);
      // get the pre-configured decoder that can decode this stream;
      IStreamCoder coder = stream.getStreamCoder();

      if (coder.getCodecID() == ID.CODEC_ID_H264)  {
          isH264 = true;
      }
      if (coder.getCodecID() == ID.CODEC_ID_AAC)  {
          isAAC = true;
      }
    }

    if (container !=null)
    {
      container.close();
      container = null;
    }
    return isH264 && isAAC;
于 2012-12-06T02:35:29.493 に答える