2016-06-09 2 views
0

Я пытаюсь сделать видео .mp4 файл из группы изображений с использованием FFmpegFrameRecorder в составе более крупной программы, поэтому я создал тестовый проект, в котором я пытаюсь сделать видеовыход из 100 экземпляров одного кадра со скоростью 25 кадров в секунду. Кажется, что программа работает. Однако каждый раз, когда я запускаю его, изображение кажется красноватым. Как будто к нему был применен красный фильтр.JavaCV FFmpegFrameRecorder Video output reddish color

Вот фрагмент кода:

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

Я был бы признателен, если бы кто-нибудь сказал мне, что случилось. Заранее благодарю за любую помощь.

ответ

0

Имел аналогичную проблему .. Похоже, что моя проблема не была правильно установлена ​​в 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!

+0

Большое спасибо! Это сработало отлично. Стоит отметить, что это работало только тогда, когда я установил формат пикселей так же, как вы сказали, что сделал, а не так, как я это делал. –

+0

Быстрый вопрос о последующих действиях, есть ли способ, которым вы знаете, добавить аудиофайл к выходному видео? –

Смежные вопросы