2009-02-11 20 views
18

में छवियों से वीडियो बनाने का काम करने का तरीका क्या किसी के पास छवि फ़ाइलों की श्रृंखला से वीडियो बनाने का एक विश्वसनीय तरीका है? प्रश्न पोस्ट करने से पहले जवाब खोजने के लिए मुझे नीचे जाने से पहले, और इससे पहले कि आप "एफएफएमपीईजी का उपयोग करें" जैसे एक साधारण संदेश को बंद कर दें, इस संदेश को बाकी पढ़ें।सी #

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

केवल बाधाएं हैं: इसे मेरे विंडोज सर्वर 2008 सिस्टम पर काम करना चाहिए, और स्क्रिप्ट योग्य होना चाहिए। यही है, कोई जीयूआई प्रोग्राम नहीं है जिसके लिए ऑपरेटर हस्तक्षेप की आवश्यकता होती है।

मुझे स्टैक ओवरफ्लो पर कई समान प्रश्न मिलते हैं, और कई समाधानों की कोशिश की है, सभी निराशा की अलग-अलग डिग्री और सफलता की तरह कुछ भी नहीं।

एफएफएमपीईजी एक महान कार्यक्रम की तरह दिखता है। शायद यह लिनक्स पर है। डाउनलोड किए गए दो विंडोज़ बिल्ड टूटे हुए हैं। इस कमांड लाइन को देखते हुए:

ffmpeg -r 1 -f image2 -i jpeg\*.jpg video.avi 

बिल्डों में से एक छवियों को पढ़ता है और फिर डेटा निष्पादन रोकथाम के कारण दुर्घटनाग्रस्त हो जाता है। दूसरा पहली फ़ाइल पढ़ता है और फिर एक त्रुटि संदेश थूकता है जो कहता है "फ़ाइल jpeg/image2.jpg फ़ाइल के लिए उपयुक्त कोडेक नहीं मिल सकता"। सहायक, वह। किसी भी मामले में, एफएफएमपीईजी विंडोज के तहत एक गैर स्टार्टर की तरह दिखता है।

पिछली पोस्टिंग का एक जवाब Splicer की सिफारिश की गई। यह बहुत अच्छा कोड की तरह दिखता है। मैंने नमूने संकलित किए और दौड़ने की कोशिश की, लेकिन एक फ़ाइल के बारे में कुछ गुप्त त्रुटि संदेश नहीं मिला। ऐसा लगता है कि एक COM कक्षा पंजीकृत नहीं है। मुझे लगता है कि मुझे कुछ इंस्टॉल करने की आवश्यकता है (डायरेक्टशो, शायद, हालांकि मैंने सोचा था कि पहले ही इंस्टॉल हो चुका है?)। क्या आवश्यक है के आधार पर, मुझे सर्वर पर इसकी स्थापना को न्यायसंगत बनाने में मुश्किल हो सकती है। ("क्या? आपको सर्वर पर इसकी आवश्यकता क्यों है?")

एक अन्य उत्तर ने कोड प्रोजेक्ट से AviFile लाइब्रेरी का सुझाव दिया। यह काफी आसान दिखता है: विंडोज एवीफाइल सबसिस्टम के चारों ओर एक रैपर। सिवाय इसके कि संकुल बनाने वाली एवीआई फाइलों में सभी फ्रेम होते हैं, लेकिन जब मैं विंडोज मीडिया प्लेयर में एवीआई चलाता हूं तो केवल पहला फ्रेम दिखाता है। खैर, वह और यदि आप संपीड़ित वीडियो बनाने का प्रयास करते हैं, तो प्रोग्राम अपवाद फेंकता है।

तो, मुझे आश्चर्य है कि क्या मैं चाहता हूं कि ऐसा करने के लिए एक अच्छा, भरोसेमंद तरीका है: विंडोज सिस्टम पर, छवियों की श्रृंखला से एक एवीआई या अन्य आम वीडियो फ़ाइल प्रारूप बनाएं, या तो .NET के माध्यम से एपीआई या एक बाहरी कार्यक्रम का उपयोग कर। कोई मदद?

+0

-f image2, या -f jpeg के साथ अपने ffmpeg कमांड को आज़माएं, यानी 'ffmpeg -r 1 -i jpeg/* .jpg video.avi 'या' ffmpeg -r 1 -f jpeg -i jpeg/*। jpg video.avi ' – configurator

+0

@configurator: बिना -f image2 के, मुझे एक ही परिणाम मिलते हैं। -एफ जेपीईजी के साथ, मुझे "अज्ञात इनपुट या आउटपुट प्रारूप: जेपीईजी" मिलता है। –

उत्तर

10

थोड़ी देर के साथ काम करने के बाद और x264 और VideoLan पर एक नज़र डालने के बाद, मैं स्प्लिसर वापस गया। यह पता चला है कि गुप्त कोड संदेश मेरे कोड में एक त्रुटि के कारण था।

ऐसा लगता है कि स्प्लिसर जो मैं चाहता हूं वह करेगा: प्रोग्रामेटिक रूप से छवियों की एक श्रृंखला से वीडियो बनाएं।

उत्तर देने वाले सभी लोगों के लिए धन्यवाद।

1

विंडोज़ (एन्कोडिंग और प्लेबैक) पर वीडियो का प्रबंधन एक असली क्वाग्मियर है। और .NET आपको बिल्कुल मदद नहीं करेगा - आप हमेशा PInvoking/COM-interoping देशी API या एक .NET wrapper का उपयोग कर रहे हैं जिसे किसी और ने ऐसा करने के लिए बनाया है।

वैसे भी, मैं नहीं कह सकता कि मैंने इसका उपयोग किया है, लेकिन एक अच्छी शर्त x264 library that is part of the videolan project प्रतीत होती है। यह आपको स्वयं निहित सी लाइब्रेरी देता है जिसे आप PInvoke कर सकते हैं और आपको अपने सर्वर पर इंस्टॉल और डायरेक्टशो कचरा के बारे में चिंता करने की ज़रूरत नहीं है। यह H.264 प्रारूप वीडियो उत्पन्न करेगा जो फ्लैश में बजाने योग्य है क्योंकि मैं इसे समझता हूं।

6

आप वीडियोलैन का उपयोग कर सकते हैं और मैं इसकी अनुशंसा करता हूं।

मैं VideoLAN इन दो चीजों को करने के साथ एक सी # आवेदन में प्रत्यक्ष अनुभव प्राप्त हुआ है:

  1. मेरी सी # आवेदन पत्र में एक वीएलसी दर्शक एम्बेड (3-4 सी # "रैपर" वीएलसी veiwer के लिए देखते हैं) ।
  2. इसे कमांड लाइन तर्क भेजकर एक अलग प्रक्रिया में vlc.exe का उपयोग करना।

तथ्य यह है कि वीडियोलैन में कमांड लाइन इंटरफ़ेस एक बड़ी बात है। और वीएलसी एक कमांड लाइन विकल्प का समर्थन करता है जो किसी भी दृश्य तत्व को अक्षम करता है; इसलिए वीएलसी जीयूआई पॉप अप नहीं करता है और न ही कमांड लाइन विंडो करता है। इस प्रकार, एक सी # आवेदन में आप वीएलसी क्लाइंट को वीडियो से संबंधित काम को खेत कर सकते हैं। सी # में प्रक्रिया वर्ग है जो आपके लिए आपके vlc.exe उदाहरण प्रबंधित कर सकता है। यह एक सुंदर साफ समाधान होने के समाप्त होता है।

0

मैं mplayer का उपयोग किया है की इस तरह लिनक्स पर AVI (साथ कोडेक msmpeg4/एमपी 3, विंडोज मीडिया प्लेयर के साथ डिफ़ॉल्ट रूप से पठनीय) TGA फाइलों से बनाने के लिए Mencoder:

mencoder mf://*.tga -mf fps=25:type=tga \ 
    -audiofile /tmp/test.mp3 -oac copy \ 
    -of lavf -ovc lavc \   
    -lavcopts vcodec=msmpeg4v2:mbd=2:mv0:trell:cbp:last_pred=3:vbitrate=3000 \ 
    -o /tmp/test.avi 

मैं जानता हूँ कि MPlayer है एक विंडोज संस्करण।

0

बस सभी परेशानी के माध्यम से जा के बजाय, आप सभी छवियों है कि आप क्लिपबोर्ड अपने वीडियो में शामिल होना चाहते हैं और यह (बेशक गतिशील,!) विंडोज लाइव मूवी मेकर में आयात किया है और यह है coppy सकता है आपके लिए संकलित करें!

यह सब कोड के माध्यम से किया जा सकता है, लेकिन इस तरह, आपको इसे स्वयं बनाना नहीं है। जैसा कि आपने कहा है कि प्लेटफार्म विंडोज था, और सभी विंडोज comps Windows Live Movie Maker स्थापित किया है, तो यह आपके आवेदन का उपयोग कर किसी के लिए एक समस्या नहीं होनी चाहिए, जब तक कि

एक) वे की स्थापना रद्द विंडोज लाइव मूवी मेकर

बी) वे 8 या 9 साल से अधिक के विंडोज संस्करण पर चल रहे कंप्यूटर का उपयोग कर रहे हैं ...

+1

@Rugs: सभी विंडोज कंप्यूटरों में विंडोज लाइव मूवी मेकर स्थापित नहीं है। यह निश्चित रूप से विंडोज सर्वर 2008 पर डिफ़ॉल्ट रूप से स्थापित नहीं है, और कई डेवलपर इसका विकास मशीनों के लिए उपयोग करते हैं। दूसरा, आपका समाधान काम कर सकता है अगर आपके पास क्लिपबोर्ड पर हजारों छवियों को जोड़ने और मूवी मेकर में एक बार आयात करने का कुछ स्वचालित तरीका था। लेकिन ज्यादातर मैं इस समाधान को अस्वीकार कर दूंगा क्योंकि मेरे पास एक प्रोग्राम है जो छवियों को गतिशील रूप से बना रहा है और उन्हें मूवी मेकर में एक-एक करके आयात करना एक अविश्वसनीय रूप से लंबा समय लेगा। –