Ffmpeg ব্যবহার করে ভিডিওর সামনে একটি চিত্র ওভারলে যুক্ত করুন


31

আমার অনেকগুলি ভিডিও রয়েছে এবং আমার তাদের কাছে প্রায় 5 সেকেন্ডের জন্য একটি চিত্র রাখা দরকার, তবে এটি ম্যানুয়ালি যুক্ত করা এবং প্রতিটি সময় এটির উপস্থাপন করতে খুব বেশি সময় লাগবে, তাই আমি জিজ্ঞাসা করছি ffmpeg এর মাধ্যমে এটি করা সম্ভব কিনা এবং যদি আপনি 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 এর অর্থ আমরা উপরের বাম কোণে (0: 0) থেকে উত্পন্ন চিত্রটি 25px ডানদিকে এবং 25px ডাউন করতে চাই।

enable='between(t,0,20)' এর অর্থ আমরা চিত্রটি দ্বিতীয় 0 এবং 20 এর মধ্যে দেখানো চাই।

[0:v][1:v]এর অর্থ -iহ'ল আমাদের ক্ষেত্রে ইনপুট.এমপি 4 বা ffmpeg কীভাবে ভিডিও ইনপুট ফাইল নম্বর 0 এ দেখায় আমরা প্রথম ভিডিও ফাইলটি আমাদের ক্ষেত্রে ইমেজ.পিএনজিতে ভিডিও ইনপুট ফাইল 1 এর অধীনে দেখতে চাই। :vএর অর্থ হল আমরা ভিডিও 0 এবং ভিডিও 1 [0:a]চাই mean এর অর্থ আমরা প্রথম আমদানি করা অডিও ট্র্যাক চাই। যা ইনপুট.এমপ 4 থেকেও আসে তবে এমপি 4 ফাইলে ভিডিও ট্র্যাকের পরিবর্তে অডিও ট্র্যাকের দিকে নির্দেশ করবে।

যদি আপনি কোনও নির্দিষ্ট চিত্রের মান / সেটিংস চান এবং সেটিংস এফএফএমপিগ পছন্দ করে না, তবে চিত্রটি এবং বা অডিও এনকোডিং বিকল্পগুলি আপনি ব্যবহার করতে চান। ডিফল্ট ভিডিও এনকোডারটি x264 হবে। পরীক্ষা করে দেখুন H.264 তে এনকোডিং নির্দেশিকা সম্ভব সেটিংসের জন্য।

আপনার কমান্ড ফেতে থাকা -acodec copy/ -c:a copyযা সোর্স ফাইল থেকে অডিওটি আবার ব্যবহার করবে। যদিও আপনি অবশ্যই ভিডিওর সাথে এটি করতে পারবেন না (এই ক্ষেত্রে), এটি ট্রান্সকোড করতে হবে কারণ আমরা একটি নতুন ভিডিও উত্স তৈরি করছি।

আপনি যদি অডিও ট্রান্সকোড করতে চান তবে -c:a copyঅংশটি সরিয়ে ফেলুন । আপনাকে অবশ্যই একটি এনকোডার স্পষ্টভাবে নির্দিষ্ট করতে হতে পারে, যেমন -c:a aac -strict experimental। দেখুন এএসি এনকোডিং নির্দেশিকা আরও তথ্যের জন্য।


উপরের কমান্ডের নীচের পুনরাবৃত্তিটি অ্যান্ড্রয়েডে আমার পক্ষে কাজ করেছে যেহেতু আসলটি মূল যেমনটি দেয় এবং এ্যাকের মতো ত্রুটি একটি পরীক্ষামূলক বৈশিষ্ট্য: ffmpeg -i input.mp4 কঠোর -2 -i চিত্র.png-ফিল্টার_কম্পলেক্স [0: v] [1: v] ওভারলে = 25: 25: সক্ষম = 'এর মধ্যে (টি, 0,20)' আউটপুট.এমপি 4
মুনিখ

উচ্চতা না জেনে নীচে অবস্থিত যাইহোক কি আছে? বা প্রস্থ না জেনে ঠিক ডান?
chovy

নিশ্চিত, কেবল ffprobe সহ ভিডিওটি বিশ্লেষণ করুন এবং আউটপুট থেকে ভিডিওটির মাত্রা বের করুন। হয়তো এফএফএমপিগে সংহত একটি বিকল্প রয়েছে তবে আমি এটি সম্পর্কে সচেতন নই।
PTS

3
আপনার আদেশটি মূল ভিডিও ফাইলের একটি অংশকে প্রতিস্থাপন করে , তবে কোনও ব্যবহারকারী ভিডিওর আগে এবং / অথবা পরে কোনও চিত্র যুক্ত করতে (এভাবে ভিডিও দৈর্ঘ্য বৃদ্ধি করা) করতে চাইতে পারে may দয়া করে
এটিতে

1
@ লর্যালেন্ট যা আপনার উত্স ফাইল এবং বা আউটপুটে নির্ভর করে। pix_fmt এর অর্থ পিক্সেল ফর্ম্যাট। বিভিন্ন কোডেকের জন্য প্রচুর বিভিন্ন পিক্সেল ফর্ম্যাট রয়েছে যা একটি নির্দিষ্ট করে আপনাকে নিশ্চিত করে যে আপনার কোনও কাজ শেষ হয় না। h264 এ আসে yuv420p সর্বাধিক সমর্থিত পিক্সেল ফর্ম্যাট তবে এটির জন্য yuv422p এবং yuv444p রয়েছে।
PTS
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.