2016-06-09 1161 views
0

我試圖製作一個視頻.mp4文件使用FFmpegFrameRecorder作爲一個更大的程序的一部分,所以我設置了一個測試項目,我試圖製作一個視頻在25fps的同一幀的100個實例。該程序似乎工作。但是,每次運行它時,圖像都顯得偏紅。就好像紅色濾鏡已經應用到它上面一樣。JavaCV FFmpegFrameRecorder視頻輸出紅色

下面的代碼片段:

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

快速跟進問題,有沒有什麼方法可以將音頻文件添加到輸出視頻? –