7

में संयुक्त मैं निम्न करने के लिए एक कारगर तरीका रहा हूँ: कई स्रोत वीडियो का उपयोग करना (के लगभग एक ही लंबाई), मैं यह सब से बना है एक आउटपुट वीडियो उत्पन्न करने के लिए की जरूरत हैएकाधिक वीडियो स्रोतों एक

मूल स्रोत प्रत्येक अपने क्षेत्र में चल रहे हैं (जैसे PIP एस के कई अलग-अलग आकारों में)। तो, अंतिम परिणाम यह है कि सभी मूल साइड-बाय-साइड चल रहे हैं, प्रत्येक अपने क्षेत्र/बॉक्स में।

स्रोत और उत्पादन flv होने की जरूरत है और मंच मैं उपयोग कर रहा हूँ Windows (विंडोज 7 64 बिट पर देव, विंडोज सर्वर 2008 तक तैनाती) है।

मैंने avisynth पर देखा है लेकिन दुर्भाग्यवश यह flv को संभाल नहीं सकता है और प्लगइन और FLV स्प्लिटरों में से कोई भी मैंने काम करने की कोशिश नहीं की है।

मेरे वर्तमान प्रक्रिया निम्नलिखित तरीके से ffmpeg उपयोग करता है: ffmpeg

  1. प्रति उपयोग वीडियो प्रति सेकंड 25 png के उत्पन्न करने के लिए, के रूप में की जरूरत मूल आकार बदलने।
  2. एक नई छवि में फ्रेम के प्रत्येक सेट के गठबंधन करने के लिए, एक स्थिर पृष्ठभूमि के साथ शुरू है, तो एक Image में प्रत्येक फ्रेम लोड हो रहा है और पृष्ठभूमि Graphics वस्तु के लिए ड्राइंग System.Drawing नाम स्थान का प्रयोग करें - यह मेरे संयुक्त फ्रेम देता है।
  3. जेनरेट की गई छवियों को एक वीडियो में गठबंधन करने के लिए ffmpeg का उपयोग करें।

यह सब बहुत ही आईओ गहन है (जो इस समय मेरी प्रसंस्करण बाधा है) और मुझे लगता है कि मेरे लक्ष्य तक पहुंचने के लिए एक और अधिक प्रभावी तरीका होना चाहिए। मुझे वीडियो प्रोसेसिंग के साथ ज्यादा अनुभव नहीं है, और यह नहीं पता कि वहां कौन से विकल्प हैं।

क्या कोई इन्हें संसाधित करने का एक और अधिक प्रभावी तरीका सुझा सकता है?

उत्तर

10

ffmpeg के अंदर सबकुछ करें। आप video filters के साथ बहुत सी चीजें कर सकते हैं। उदाहरण के लिए दो वीडियो एक साथ जुड़ने के लिए:

ffmpeg -i input0.avi -vf "movie=input1.avi [in1]; [in]pad=640*2:352[in0]; [in0][in1] overlay=640:0 [out]" out.avi 

@ ओडेड: यह मूल रूप से यह आदेश क्या करता है। आप pad फ़िल्टर को हटा सकते हैं और जहां भी चाहें दूसरे वीडियो को स्थानांतरित करने के लिए overlay फ़िल्टर के पैरामीटर को बदल सकते हैं।

ffmpeg -i big.avi -vf "movie=small.avi [small]; [in][small] overlay=10:10 [out]" out.avi 

मैंने जो लिंक प्रदान किया है वह फ़िल्टर सिंटैक्स का वर्णन करता है। आप एक साथ कई फ़िल्टर श्रृंखला कर सकते हैं:

ffmpeg -i big.avi -vf "movie=small0.avi [small0]; [in][small0] overlay=10:10 [tmp];\ 
         movie=small1.avi [small1]; [tmp][small1] overlay=30:10 [out]" out.avi 
+0

उत्तर के लिए धन्यवाद - क्या आपके पास तस्वीर-इन-पिक्चर कमांड लाइन का उदाहरण है? – Oded

+1

ग्रेट दूसरा उदाहरण - मैं 2 से अधिक स्रोत कैसे निर्दिष्ट करूं? या मुझे अलग-अलग ओवरले के साथ इसे कई बार कॉल करने की आवश्यकता होगी? – Oded

+0

ऐसा लगता है कि 'ओवरले' मूलों का आकार बदलता नहीं है - मुझे लगता है कि इसके लिए मुझे 'स्केल' का उपयोग करने की आवश्यकता होगी? – Oded

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