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)
    • 声道:立体声
    • 采样率: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

4

0 回答 0