अकेले FFMPEG का उपयोग करते हुए एनिमेटेड पाठ युक्त वीडियो बनाना


5

मुझे संदेह है कि यह संभव है, लेकिन मैं किसी तरह से खोजने की कोशिश कर रहा हूं

  1. पाठ को गतिशील रूप से प्रस्तुत करें, और फिर
  2. वैकल्पिक रूप से यह चेतन (बाएं से दाएं आंदोलन) और फिर
  3. परिणाम को किसी अन्य वीडियो के शीर्ष पर संयोजित करें।

मुझे पता है कि FFMPEG शक्तिशाली है, लेकिन क्या अकेले FFMPEG का उपयोग करके इस तरह की सामग्री उत्पन्न करना संभव है? वीडियो इनपुट होगा, लेकिन पाठ को पूरी तरह से FFMPEG का उपयोग करके उत्पन्न करना होगा।


आप वास्तव में गतिशील से क्या मतलब है? जब आप कॉल करते हैं तो पाठ ज्ञात होता है ffmpeg? क्या आपने ड्राफ़्टेक्स फ़िल्टर देखा है, और क्या आपने पहले से ही कुछ करने की कोशिश की है? कृपया ध्यान दें कि Node.js प्रोग्रामिंग प्रश्न विषय से दूर हैं, इसलिए मैंने आपके प्रश्न से इस भाग को हटा दिया है। यदि आपके पास Node.js के लिए विशिष्ट समस्या है, तो आप इसके बारे में स्टैक ओवरफ़्लो पर पोस्ट कर सकते हैं । FFmpeg कमांडलाइन प्रश्न यहाँ विषय पर हैं, निश्चित रूप से।
slhck

हाँ पाठ ज्ञात होगा .... नहीं, मैंने ड्राफ़्टेक्स फ़िल्टर नहीं देखा है ... इस पर गौर करेंगे ... कोई भी मौका जो आप एक त्वरित कोड प्रदान कर सकते हैं?
बछलो

जवाबों:


8

आप ड्राटेक्स्ट फिल्टर का उपयोग कर सकते हैं ।

गतिशील पाठ

यदि आप उपयोग करते हैं textfileऔर reloadविकल्प हैं तो एन्कोडिंग के दौरान पाठ को बदला जा सकता है :

  • textfileएक पाठ फ़ाइल जिसमें पाठ को खींचा जाना है। पाठ को UTF-8 एन्कोडेड वर्णों का एक क्रम होना चाहिए।

  • reloadयदि 1 पर सेट किया गया है, तो टेक्स्टफाइल को प्रत्येक फ्रेम से पहले फिर से लोड किया जाएगा। इसे परमाणु रूप से अपडेट करना सुनिश्चित करें, या इसे आंशिक रूप से पढ़ा जा सकता है, या विफल भी हो सकता है।

चेतन

पाठ , और विकल्प विकल्पों के भीतर भावों का उपयोग करके घूम सकता है । स्थिरांक और फ़ंक्शंस की सूची के लिए ड्राटेक्स्ट प्रलेखन देखें ।xy

समयरेखा संपादन

कुछ फिल्टर, जैसे कि ड्राटेक्स्ट, enableविकल्प का समर्थन करते हैं जिसका अर्थ है कि आप फ़िल्टर को चालू और बंद कर सकते हैं। आप देख सकते हैं कि फ़िल्टर किस समयरेखा का समर्थन करते हैं:

ffmpeg -filters

उदाहरण

यदि आपके पास एक इनपुट वीडियो है जिसे आप टेक्स्ट के साथ ओवरले करना चाहते हैं:

ffmpeg -i input -vf "drawtext=enable='gte(t,3)':fontfile=Vera.ttf:textfile=text.txt:reload=1:y=h-line_h-10:x=(W/tw)*n" output
  • यह 3 सेकंड के बाद ड्राटेक्स फिल्टर को सक्षम करेगा
  • हर बार text.txtअपडेट होने के बाद टेक्स्ट बदल जाएगा
  • शब्द स्क्रीन पर बाईं ओर से दाईं ओर जाएंगे (मैं इन अभिव्यक्तियों को चूसता हूं लेकिन आपको यह विचार मिलेगा)

यदि आपके पास कोई इनपुट वीडियो नहीं है और आप काले रंग की पृष्ठभूमि पर पाठ उत्पन्न करना चाहेंगे:

ffmpeg -f lavfi -i "color=color=black, drawtext=enable='gte(t,3)':fontfile=Vera.ttf:fontcolor=white:textfile=text.txt:reload=1:y=h-line_h-10:x=(W/tw)*n" -t 5 output

यहां, -t 5आउटपुट की कुल लंबाई निर्दिष्ट करता है। (यदि निर्दिष्ट नहीं किया गया है, तो एन्कोडिंग हमेशा के लिए चलेगी।) फ़ॉन्ट रंग सफ़ेद पर सेट है ताकि पाठ दिखाई दे।


धन्यवाद! कुछ परीक्षण की आवश्यकता होगी लेकिन एक अच्छी शुरुआत
Bachalo

यह मुझे दिखाता है input: No such file or directoryवास्तव में मैं सिर्फ पाठ से वीडियो बनाना चाहता हूं। जैसे ब्राउज़र पर
मार्के का

1
@ manish1706 जैसा कि त्रुटि कहती है, कोई inputफ़ाइल नहीं है। यदि आपके पास कोई वीडियो नहीं है जिसे आप पाठ जोड़ना चाहते हैं, तो आपको एक काली पृष्ठभूमि तैयार करनी होगी। ऊपर जोड़ा गया नया उदाहरण देखें।
slhck

1
मदद के लिए बहुत बहुत धन्यवाद @ धन्यवाद, और मुझे इस आदेश के साथ पाठ के लिए सफलता मिली ** ffmpeg -f lavfi -i "color=color=yellow, drawtext=enable='gte(t,0)':text=Text1 Text2 Text3 Text4 Text5 Text6 Text7 Text8 Text9 Text10:expansion=normal:fontfile=verdana.ttf: y=h-line_h-120:x=-100*t: fontcolor=white: fontsize=50" -t 20 Output.mp4** और वीडियो अच्छी तरह से काम कर रहा है। अब मुझे बस यह समझने की आवश्यकता है कि मैं दो स्ट्रिंग के बीच विभाजक के लिए HTML जैसे चरित्र को कैसे पारित कर सकता हूं, उदाहरण के लिए: पाठ 1 (डॉट चिह्न) टेक्स्ट 2 (डॉट मार्क) टेक्स्ट 3
मनीष 1706

2
@ manish1706 अपना पाठ उद्धरणों में रखें और आप जो भी चरित्र चाहते हैं उसे जोड़ने में सक्षम होना चाहिए। यदि आपके पास बहुत सारे पाठ हैं, तो आप textfileइसके बजाय विकल्प का उपयोग करके फ़ाइल से भी पढ़ सकते हैं text। देखें ffmpeg.org/ffmpeg-all.html#drawtext-1
slhck
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.