Ffmpeg का उपयोग करके वीडियो के सामने एक छवि ओवरले जोड़ें


31

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

ffmpeg -itsoffset 5 -i in.mp4 -r 25 -loop 1 -i intro.png -filter_complex "[1:v] fade=out:125:25:alpha=1 [intro]; [0:v][intro] overlay [v]" -map "[v]" -map 0:a -acodec copy out.mp4

1
क्या आपकी बस उस कमांड को कॉपी किया या लिखा है कि आपकी आवश्यकताओं के अनुसार? मैं पूछ रहा हूं क्योंकि इस कमांड में फीका आउट जैसी चीजें शामिल हैं और सभी प्रकार के अन्य सामान आपके प्रश्न में शामिल नहीं हैं। क्या आपको केवल एक छवि को ओवरले करने की आवश्यकता है या क्या आपको इससे अधिक की आवश्यकता है?
पीटीएस

मैंने इसे कहीं से कॉपी किया है, मुझे बस छवि को वीडियो के सामने रखने की आवश्यकता है।
अजित

जवाबों:


44

आप निम्न सिंटैक्स का उपयोग करके एक साधारण छवि ओवरले कर सकते हैं:

ffmpeg -i input.mp4 -i image.png \
-filter_complex "[0:v][1:v] overlay=25:25:enable='between(t,0,20)'" \
-pix_fmt yuv420p -c:a copy \
output.mp4

overlay=25:25 इसका मतलब है कि हम छवि को 25px दाईं ओर और 25px नीचे की ओर रखना चाहते हैं, जो शीर्ष बाएँ कोने से निकलती है (0: 0)।

enable='between(t,0,20)' इसका मतलब है कि हम छवि को दूसरे 0 और 20 के बीच दिखाना चाहते हैं।

[0:v][1:v]इसका मतलब है कि हम चाहते हैं कि हमारे द्वारा आयात की गई पहली वीडियो फ़ाइल -i, हमारे मामले में input.mp4 या ffmpeg इसे कैसे देखें, यह वीडियो इनपुट फ़ाइल नंबर 0 है, वीडियो इनपुट फ़ाइल 1 के तहत, हमारे मामले में छवि। png। :vबस इसका मतलब है कि हम वीडियो 0 और वीडियो 1 [0:a]चाहते हैं। इसका मतलब है कि हम पहले आयातित ऑडियो ट्रैक चाहते हैं। जो input.mp4 से भी आएगा, लेकिन mp4 फ़ाइल में वीडियो ट्रैक के बजाय ऑडियो ट्रैक को इंगित करेगा।

यदि आप एक निश्चित छवि गुणवत्ता / सेटिंग्स चाहते हैं और सेटिंग्स ffmpeg नहीं चुनते हैं, तो उस छवि और या ऑडियो एन्कोडिंग विकल्प को जोड़ें जिसे आप उपयोग करना चाहते हैं। डिफ़ॉल्ट वीडियो एनकोडर x264 होगा। संभावित सेटिंग्स के लिए H.264 एन्कोडिंग गाइड की जाँच करें ।

-acodec copy/ -c:a copyआप अपने आदेश में है कि फ़े बस ऑडियो स्रोत फ़ाइल से फिर से प्रयोग करेंगे। यद्यपि आप ऐसा नहीं कर सकते हैं, बेशक (इस मामले में), कि ट्रांसकोड किया जाना है क्योंकि हम एक नया वीडियो स्रोत बना रहे हैं।

यदि आप ऑडियो ट्रांसकोड करना चाहते हैं, तो -c:a copyपार्ट को हटा दें । आपको एनकोडर को स्पष्ट रूप से निर्दिष्ट करना पड़ सकता है, जैसे -c:a aac -strict experimental। अधिक जानकारी के लिए AAC एन्कोडिंग गाइड देखें ।


उपरोक्त कमांड के निम्नलिखित पुनरावृत्ति ने मेरे लिए एंड्रॉइड पर काम किया क्योंकि मूल एक देता है और एएसी की तरह त्रुटि एक प्रायोगिक विशेषता है: ffmpeg -i input.mp4 सख्त -2 -i image.png -filter_complex [0]: [1] v] ओवरले = २५: २५: सक्षम = ’के बीच (टी, 0,20) 'output.mp4
muneikh

वहाँ वैसे भी ऊंचाई जानने के बिना नीचे की स्थिति है? या चौड़ाई को जाने बिना सही है?
chovy

यकीन है, बस ffprobe के साथ वीडियो का विश्लेषण करें और आउटपुट से वीडियो के आयाम निकालें। हो सकता है कि ffmpeg में एकीकृत विकल्प भी हो लेकिन मुझे इसकी जानकारी नहीं है।
पीटीएस

3
आपका आदेश मूल वीडियो फ़ाइल के एक टुकड़े की जगह लेता है, लेकिन एक उपयोगकर्ता वीडियो से पहले और / या बाद में एक छवि को जोड़ना चाहता है (इस प्रकार वीडियो की लंबाई बढ़ा सकता है)। कृपया इसके साथ मदद करें
पोर्ट

1
@ स्रोत जो आपके स्रोत फ़ाइल और या आउटपुट पर निर्भर करता है। Pix_fmt का अर्थ पिक्सेल प्रारूप है। अलग-अलग कोडेक्स के लिए बहुत सारे अलग-अलग पिक्सेल प्रारूप उपलब्ध हैं, जो यह निर्दिष्ट करते हैं कि आप कुछ ऐसा नहीं करते हैं जो आपके लिए काम नहीं करता है। जब यह h264 की बात आती है तो yuv420p सबसे समर्थित पिक्सेल प्रारूप है, लेकिन उदाहरण के लिए yuv422p और yuv444p भी है।
पीटीएस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.