当前位置: 首页 > 知识库问答 >
问题:

JavaCV FFmpegFrameRecorder视频输出红色

罗凯
2023-03-14

下面是代码片段:

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(); 
    } 
}

如果有人告诉我出了什么事,我将不胜感激。提前感谢您的帮助。

共有1个答案

商昂然
2023-03-14

有类似的问题..我的问题似乎是没有正确设置pixelFormat。我最终把它设置为

org.bytedeco.javacpp.avutil.AV_PIX_FMT_RGB32_1

它现在正确地出口!

实际上,从我在代码中看到的情况来看,我从来没有调用recorder.setPixelFormat();

相反,我设置了像素格式,同时记录如下:

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

如果这不起作用,我将尝试avutil类源代码中的各种格式!

 类似资料:
  • 问题内容: 好的,基本上我有一个项目,要求对用户隐藏视频,同时仍然能够查看它们(使用php)。这是我到目前为止所得到的: video.php文件具有以下内容: 并且应该显示此内容的html文件使用的是预期的html5。现在这是东西..当我直接嵌入这个(不是)时,它起作用了。但是它在我的iPhone上不起作用,并且在标签中也不起作用…如果我使用直接文件而不是php包装器,那么一切也可以在我的iPho

  • 我找到了. avi文件 gst-launch-1.0-v filesrc location=测试。阿维!avidemux!decodebin!视频转换!“视频/x-raw,格式=YUY2”!v4l2sink设备=/dev/video0 这个屏幕输出到/dev/video0: gst-Launit-1.0-v ximagesrc start x=1 starty=1 endx=320 endy=24

  • 问题内容: 我正在做一个使用HTML和Javascript的项目,它将与本地文件一起在本地运行。我需要通过输入选择一个文件,获取文件信息,然后决定是否将其添加到列表中并进行复制。如果我决定使用它,则必须将其放在队列中以备后用。否则,我将丢弃并选择另一个文件。 我面临的问题是我无法找到一种仅通过在输入中选择视频持续时间来获得视频持续时间的方法。 我进行了很多搜索,但没有找到任何方法来获取持续时间。在

  • 我正在开发视频流应用程序,其中我需要捕获前置摄像头视频帧并编码然后传输到另一端,典型的流程是这样的 AVCapture会话- 它工作正常,我已将kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange设置为帧格式。 还可以预览用于显示预览的图层, 当设备方向发生变化时,问题就来了,如果设备从纵向移动到横向,那么在另一端的帧会被旋转90,我希望因为方向在预览层中

  • 我试图转码一个单一的视频文件与1个视频流和几个音频流到文件具有相同的视频流在不同的比特率/大小与正确的填充在同一时间。 我使用的命令是: 实际上,对同一个文件进行几个比特率的代码转换是可能的吗?