转换后,输出文件中的帧速率值不正确 . 我做了一个非常简单的例子来描述一个问题:
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 frames per second
-
比特率:N / A.
-
音频:
-
编解码器:MPEG-1第3层(MP3)
-
Channels :立体声
-
采样率:48000 Hz
-
比特率:112 kbps
输出视频文件(“/tmp/1/o3.avi”)具有以下功能:
-
一般
-
容器:Quicktime
-
视频
-
尺寸:624x352
-
编解码器:H.264
-
帧率: 8 frames per second
-
比特率:378 kbps
-
音频:
-
编解码器:MPEG-4 AAC
-
Channels :立体声
-
采样率:48000 Hz
-
比特率:127 kbps
因此,输出文件中的帧速率是8而不是24.如何修复它?请帮我..
PS:我已经尝试了Xuggler H264 FPS encoding issue并且很少有其他解决方案,它没有帮助..
UPD: 经过与Xugler的长期战争后,我为avconv编写了自己的纯java界面,它对我来说很好用:https://github.com/vbauer/avconv4java