2011-02-08 15 views
6

मेरे पास एक सी प्रोग्राम है जो एक वैज्ञानिक सिमुलेशन चलाता है और ओपनजीएल विंडो में विज़ुअलाइजेशन प्रदर्शित करता है। मैं इस विज़ुअलाइज़ेशन को एक वीडियो में बनाना चाहता हूं, जो अंततः YouTube पर जाएगा।ओपनजीएल सी प्रोग्राम से वीडियो का उत्पादन

प्रश्न: सी/ओपनजीएल कार्यक्रम से वीडियो बनाने का सबसे अच्छा तरीका क्या है?

जिस तरह से मैंने इसे पहले किया है, वह स्क्रीन कैप्चर प्रोग्राम का उपयोग करना है, लेकिन यह बहुत श्रम-केंद्रित है (स्क्रीन कैप्चर प्रोग्राम को शुरू/बंद करना है, वीडियो फ़ाइल को सहेजना है, आदि ...) । ऐसा लगता है कि सी प्रोग्राम के भीतर से वीडियो बनाने की प्रक्रिया को स्वचालित करने का एक तरीका होना चाहिए। तो मैं इसे रात भर चल रहा हूं और सुबह में देखने के लिए 20 वीडियो रख सकता हूं, और यूट्यूब पर डालने के लिए सबसे अच्छा विकल्प चुन सकता हूं।

यूट्यूब recommend "एमपीईजी 4 (Divx, Xvid) प्रारूप 640x480 संकल्प पर प्रारूप"।

मैं GLUT 3.7.6_3 का उपयोग कर रहा हूं, अगर इससे कोई फर्क पड़ता है। यदि कोई अच्छा कारण है तो मैं विंडोिंग सिस्टम बदल सकता हूं।

मैं विंडोज (एक्सपी) चला रहा हूं, इसलिए विंडोज़ पर काम करने वाले उत्तर पसंद करेंगे, लेकिन लिनक्स के जवाब भी ठीक हैं। यदि मैं विंडोज़ पर आसानी से वीडियो सामान करना संभव नहीं है तो मैं लिनक्स का उपयोग कर सकता हूं। मेरे पास एक दोस्त है जो वीडियो के प्रत्येक फ्रेम के लिए .png छवि बनाता है और फिर लिनक्स पर "मेनकोडर" का उपयोग करके उन्हें एक साथ जोड़ता है।

+1

व्यक्तिगत फ्रेम सहेजना और बाहरी उपकरण में वीडियो में रूपांतरण करना (मेनकोडर शायद एक अच्छा अनुमान है) मेरे लिए सबसे अच्छा समाधान की तरह लगता है। –

+0

यहां विषय पर बड़ी चर्चा देखें: http://stackoverflow.com/questions/154730/capturing-video-out-of-an-opengl-window-in-windows – dm76

+0

@ डेविड एम: बहुत बहुत धन्यवाद - यह वास्तव में उपयोगी है। –

उत्तर

8

आप glReadPixels समारोह का उपयोग कर सकते (example देखें)

लेकिन सामान आप प्रदर्शित करने के लिए कोशिश कर रहे हैं सरल वस्तुओं से बना है, तो (यानी क्षेत्रों, छड़, आदि ..), मैं करूंगा "निर्यात" प्रत्येक फ्रेम POV-ray फ़ाइलों में, इन्हें प्रस्तुत करें, और फिर इन चित्रों में से एक वीडियो बनाएं। आप इस तरह की एक उच्च गुणवत्ता तक पहुंचेंगे।

+0

यह नहीं कि यह विशेष उदाहरण के लिए बहुत मायने रखता है, लेकिन पीबीओ का उपयोग glReadPixels() से अधिक कुशल है क्योंकि पीबीओ डीएमए की अनुमति देता है। –

1

आपके लिए नौकरी करने के लिए FRAPS जैसे किसी तृतीय पक्ष एप्लिकेशन का उपयोग करें।

Fraps प्रति सेकंड 1 से 120 फ्रेम से कस्टम फ्रेम दर के साथ ऑडियो और ऊपर 2560x1600 करने के लिए वीडियो पर कब्जा कर सकते हैं!

सभी फिल्में बकाया गुणवत्ता में दर्ज की गई हैं।

उनके पास साइट पर वीडियो नमूने हैं। वे अच्छे लगते हैं।

संपादित करें:

आप system("C:\screen_recorder_app.exe -params") है जैसे कि यह फोन करके अपने सी आवेदन से स्क्रीन रिकॉर्ड करने के लिए एक उपकरण पर अमल कर सकते हैं। camstudio देखें, इसमें कमांड लाइन संस्करण है।

+0

धन्यवाद, लेकिन ऐसा लगता है कि यह एक नियमित स्क्रीन कैप्चर प्रोग्राम है। क्या आप इसे सी प्रोग्राम से चला सकते हैं? –

+0

@Adam अपडेट किया गया उत्तर। – karlphillip

संबंधित मुद्दे