2

変換後、出力ファイルのフレーム レートの値が正しくないという問題があります。問題を説明するために、非常に簡単な例を作成しました。

public static void main(String[] args) {
    // reader
    IMediaReader reader = ToolFactory.makeReader("/tmp/1/i3.avi");
    IMediaWriter writer = ToolFactory.makeWriter("/tmp/1/o3.mp4", reader);
    reader.addListener(writer);

    while (true) {
        try {
            final IError error = reader.readPacket();
            if(error != null) {
                System.err.println("Error decoding packet " + error.getDescription());

                if (!reader.isOpen()) {
                    break;
                }
            }
        } catch (final Exception ex) {
            System.err.println("Error decoding packet " + ex.getMessage());
            if (!reader.isOpen()) {
                break;
            }
        }
    }
}

ビデオまたはオーディオ ストリーム/コーデックの追加パラメータは設定されていません。

入力ビデオ ファイル ("/tmp/1/i3.avi") には、次の特徴があります。

  • 全般的
    • コンテナ: オーディオ ビデオ インターリーブ (AVI)
  • ビデオ
    • 寸法: 624x352
    • コーデック: XVID MPEG-4
    • フレームレート: 24 フレーム/秒
    • ビットレート: なし
  • オーディオ:
    • コーデック: MPEG-1 レイヤー 3 (MP3)
    • チャンネル: ステレオ
    • サンプルレート:48000Hz
    • ビットレート: 112kbps

出力ビデオ ファイル ("/tmp/1/o3.avi") には、次の機能があります。

  • 全般的
    • コンテナ: クイックタイム
  • ビデオ
    • 寸法: 624x352
    • コーデック: H.264
    • フレームレート:毎秒 8 フレーム
    • ビットレート: 378kbps
  • オーディオ:
    • コーデック: MPEG-4 AAC
    • チャンネル: ステレオ
    • サンプルレート:48000Hz
    • ビットレート: 127kbps

そのため、出力ファイルのフレーム レートが 24 ではなく 8 になっています。どうすれば修正できますか? 私を助けてください..

PS: Xuggler H264 FPS エンコーディングの問題といくつかの解決策を既に試しましたが、役に立ちません..


UPD: Xugler との長い戦争の後、avconv への独自の pure-Java インターフェイスを作成しましたが、問題なく動作します: https://github.com/vbauer/avconv4java

4

0 に答える 0