Ffmpeg के साथ वीडियो फ़ाइल में वॉटरमार्क के रूप में छवि जोड़ें


0

मैं FFMPEG के साथ वीडियो फ़ाइल में एक पाठ जोड़ना चाहूंगा। जबकि मैं सादे पाठ के साथ ऐसा करने में सक्षम था

$ FFMPEG -y -i $ SOURCE \           -vf drawtext = "fontfile = / usr / share / Fonts / Lato-Reg-webfont.ttf: fontize = 40: box = 1: boxcolor = black: fontcolor = white: text = '$ वॉटरमार्क': x = (main_w- text_w) -10: y = (main_h-text_h) -4 "\"           -थ्रेड्स $ THREADS -f mp4 -vcodec mpeg4 -b $ MOBILE_BITRATE -r $ MOBILE_FRAME_RATE -strict -2 \           -s $ RESOLUTION_SD -acodec libfaac -ar $ MOBILE_AUDIO_RATE -ac $ MOBILE_AUDIO_CHANNELS -ab $ MOBILE_AUDIO_BITRATE \           $ VIDEONAME_MOBILE-android.mp4

यह काफी अच्छा नहीं लगेगा। इसलिए मैंने वॉटरमार्क के रूप में पारदर्शी पीएनजी फ़ाइल जोड़ने की कोशिश की। उदाहरणों की तलाश में मैंने इस तरह की कोशिश की:

$ FFMPEG -y -i $ SOURCE \           -vf "फिल्म = $ वॉटरमार्क_एसएमएएलएपीएच [वॉटरमार्क]; [में] [वॉटरमार्क] ओवरले = 10: मेन_ह / 2-ओवरले_ह / 2 [आउट]" \ _           -थ्रेड्स $ THREADS -f mp4 -vcodec mpeg4 -b $ MOBILE_BITRATE -r $ MOBILE_FRAME_RATE -strict -2 \           -s $ RESOLUTION_SD -acodec libfaac -ar $ MOBILE_AUDIO_RATE -ac $ MOBILE_AUDIO_CHANNELS -AB $ MOBILE_AUDIO_BITRATE           $ VIDEONAME_MOBILE-android.mp4

यह काम नहीं करेगा। अगर कोई किसी के लिए उपयोगी हो सकता है तो मैं सटीक त्रुटि आउटपुट साझा कर सकता हूं।


क्या आपने यहाँ देखने की कोशिश की है? stackoverflow.com/questions/17135973/...

1
आपको वास्तविक, अप्रकाशित ffmpeg कमांड और पूरा ffmpeg कंसोल आउटपुट दिखाने की आवश्यकता है।
llogan

जवाबों:


7

ओवरले फिल्टर के साथ आपको इसकी आवश्यकता नहीं है movie= प्रारूप। यह आसान है, इसलिए इस प्रारूप का उपयोग करें:

ffmpeg -y -i inputmovie -i inputpicture.png -filter_complex 'overlay=0:0' -s 1280x720 ...other parameters... outputfile.mp4

मैंने जो आकार रखा है, वह केवल एक उदाहरण के रूप में है- आपका अलग होगा। ध्यान दें कि आकार चित्र के साथ-साथ फिल्म फ्रेम के लिए समान है, और वास्तव में यहां कोई स्केलिंग नहीं की जा रही है। 0:0 चित्र को फिल्म फ्रेम के शीर्ष बाईं ओर संरेखित करने के लिए है - यह तर्कसंगत है क्योंकि वे दोनों एक ही आकार के हैं।


जटिल फिल्टरग्राफ एक या अधिक इनपुट का उपयोग करता है और एक या अधिक आउटपुट उत्पन्न करता है, इसलिए -filter_complex के बजाय यहाँ इस्तेमाल किया जाना चाहिए -vf-y एक वैश्विक विकल्प है इसलिए यह पहला विकल्प होना चाहिए। स्केलिंग का उपयोग करके फ़िल्टरग्राफ में होना चाहिए scale उपयोग करने के बजाय फ़िल्टर करें -s; अन्यथा यह अस्पष्ट हो सकता है कि इसे कब और कहां लागू किया जा रहा है।
llogan

@LordNeckbeard धन्यवाद। हमेशा इस्तेमाल किया -filter_complex क्योंकि चेन में अन्य फिल्टर थे। मेरे लिए यह अनुमान लगाना गलत था कि चेन से अन्य फिल्टर हटाने का मतलब यह होगा कि -vf काम करेगा। मुझे अब एहसास हुआ कि 2 इनपुट हैं। इसे ठीक कर रहे हैं।
Rajib

यह शायद ऊपर की ओर बेहतर हो सकता है क्योंकि मुझे लगता है कि उपयोग कर रहा है -filter_complex रैखिक फ़िल्टरिंग / सरल फ़िल्टरग्राफ के लिए भी काम करता है (लेकिन मैं इसके बारे में गलत हो सकता हूं और मैंने कोड को नहीं देखा है)।
llogan

1
धन्यवाद @Rajib, यह काम किया कि आपने कैसे सुझाव दिया। वैसे भी, इसके लिए एक महत्वपूर्ण विवरण यह है कि मुझे पीएनजी को 8 बिट का उपयोग करके परिवर्तित करने की आवश्यकता है pngquant
Alex Flo

@ एलेक्स फ़्लो यह बहुत अच्छा होगा यदि आप सभी के लाभ के लिए अपनी पूरी कमांड साझा करते हैं।
Rajib
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.