转换后,输出文件中的帧速率值不正确 . 我做了一个非常简单的例子来描述一个问题:

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