转换后,输出文件中的帧速率值不正确有问题。我做了一个非常简单的例子来描述一个问题:
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)
- 声道:立体声
- 采样率:48000 赫兹
- 比特率:112 kbps
输出视频文件(“/tmp/1/o3.avi”)具有以下特点:
- 一般的
- 容器:Quicktime
- 视频
- 尺寸:624x352
- 编解码器:H.264
- 帧率:每秒 8 帧
- 比特率:378 kbps
- 声音的:
- 编解码器:MPEG-4 AAC
- 声道:立体声
- 采样率:48000 赫兹
- 比特率:127 kbps
因此,输出文件中的帧速率是 8 而不是 24。我该如何解决?请帮我..
PS:我已经尝试过Xuggler H264 FPS 编码问题和其他几个解决方案,它没有帮助..
UPD:经过与 Xugler 的长期战争后,我为 avconv 编写了自己的纯 Java 接口,它对我来说很好用:https ://github.com/vbauer/avconv4java