JavaCV FFmpegFrameRecorder 视频输出偏红颜色

标签 java video colors ffmpeg javacv

我正在尝试使用 FFmpegFrameRecorder 从一组图像中制作一个视频 .mp4 文件作为更大程序的一部分,因此我设置了一个测试项目,在其中尝试制作一个25fps 的同一帧的 100 个实例中的视频。该程序似乎有效。然而,每次我运行它时,图像似乎都偏红。就像应用了红色滤镜一样。

这是代码片段:

public static void main(String[] args) {
    File file = new File("C:/Users/Diego/Desktop/tc-images/image0.jpg");
    BufferedImage img = null;
    try {
        img = ImageIO.read(file);
    } catch (IOException e1) {
        e1.printStackTrace();
    }
    IplImage image = IplImage.createFrom(img); 
    FFmpegFrameRecorder recorder = new FFmpegFrameRecorder("C:/Users/Diego/Desktop/tc-images/test.mp4",1920,1080); 
    try { 
    recorder.setVideoCodec(13);
    recorder.setFormat("mp4");
    recorder.setPixelFormat(0);
    recorder.setFrameRate(25);
    recorder.start(); 
    for (int i=0;i<100;i++){ 
    recorder.record(image); 
    } 
    recorder.stop(); 
    } 
    catch (Exception e){ 
    e.printStackTrace(); 
    } 
}

如果有人告诉我出了什么问题,我将不胜感激。预先感谢您的帮助。

最佳答案

有类似的问题..看来我的问题是没有正确设置pixelFormat。我最终将其设置为

org.bytedeco.javacpp.avutil.AV_PIX_FMT_RGB32_1

现在可以正确导出了!

实际上,从我在代码中看到的,我从未调用 recorder.setPixelFormat();

相反,我在录制时设置像素格式,如下所示:

recorder.record(image,org.bytedeco.javacpp.avutil.AV_PIX_FMT_RGB32_1);

如果这不起作用,我会尝试各种格式 at the source code of the avutil class !

关于JavaCV FFmpegFrameRecorder 视频输出偏红颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37717996/

相关文章:

java - 子类是否继承私有(private)字段?

java - Applet 中的 SWT FileDialog 不显示

java - SpringBoot Redis 远程主机

javascript - 在 javascript/jquery 中生成图形时间线

jquery - 如何在 HTML/jquery 中为 Linux 终端生成 256 色调色板

r - igraph 图条件顶点颜色

java - z3 Solver : Getting different results using "parseSMTLIB2String" vs. raise4fun 在线工具

python - pygame可以检测屏幕的视频模式吗?

html - 除非打开开发人员工具窗口,否则 <video> 不会在 Chrome 中播放

colors - gnuplot 调色板,默认和定义