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