2011-02-08 68 views
6

我有一個C程序,運行科學模擬並在OpenGL窗口中顯示可視化。我想將這個可視化文件製作成一個視頻,最終將在YouTube上發佈。從OpenGL C程序生成視頻

問題:從C/OpenGL程序製作視頻的最佳方式是什麼?

我過去做過的方式是使用屏幕捕捉程序,但這非常耗費人力(必須啓動/停止屏幕捕捉程序,保存視頻文件等) 。似乎應該有一種方法可以在C程序中自動製作視頻。然後,我可以讓它在一夜之間運行,並在上午有20個視頻通過,並選擇最適合放在YouTube上的視頻。

YouTube recommend「640x480分辨率的MPEG4(Divx,Xvid)格式」。

我正在使用GLUT 3.7.6_3,如果這有所影響。如果有充分的理由,我可以改變視窗系統。

我正在運行Windows(XP),所以寧願在Windows上工作的答案,但Linux的答案也沒關係。如果無法在Windows上輕鬆完成視頻工作,我可以使用Linux。我有一位朋友爲視頻的每一幀製作一個.png圖像,然後使用Linux上的「mencoder」將它們拼接在一起。

+1

保存單個幀並在外部工具中轉換爲視頻(mencoder可能是一個很好的猜測)聽起來像是我的最佳解決方案。 – 2011-02-08 11:52:14

+0

在這裏看到更大的話題討論:http://stackoverflow.com/questions/154730/capturing-video-out-of-an-opengl-window-in-windows – dm76 2011-02-08 12:26:52

+0

@DavidM:非常感謝 - 這真的很有用。 – 2011-02-08 15:33:31

回答

8

可以使用glReadPixels功能(參見example

但是,如果你想顯示的東西變得簡單對象(即球,棒,等等),我將「出口」每一幀成POV-ray文件,渲染這些,然後使這些圖片中的視頻。你會達到更高的質量。

1

使用第三方應用程序,如FRAPS爲您完成這項工作。

用Fraps可以捕獲音頻和視頻,最高 支持2560x1600的分辨率自定義的幀速率 從每秒1到120幀!

所有的電影都記錄在優秀 質量。

他們在網站上有視頻樣本。他們看起來不錯。

編輯:

你可以執行工具,通過調用它像system("C:\screen_recorder_app.exe -params")記錄從C應用程序的屏幕。檢查camstudio,它有一個命令行版本。