Ffmpeg সহ একটি ভিডিওতে প্রথম 30 সেকেন্ডের জন্য আমার লোগোটি কীভাবে যুক্ত করবেন?


9

আমি ffmpeg সহ একটি ভিডিওতে প্রথম 30 সেকেন্ডের জন্য আমার লোগো যুক্ত করার চেষ্টা করছি। আমার কাছে একটি ভিডিও কল d1.mp4এবং একটি লোগো কল রয়েছে logo.png

ভিডিওটি শুরু হয়ে গেলে, ওয়াটারমার্কটি ভিডিওটির উপরের বাম বা উপরের ডানদিকে থাকা উচিত এবং 30 সেকেন্ড পরে অদৃশ্য হয়ে যায়।

আপনি কি দয়া করে এটি যুক্ত করতে পারেন আমাকে?


আমার ভিডিওর নাম d1.mp4 এবং আমার লোগোর নাম logo.png, ধন্যবাদ ..
iwocan

তাহলে কি ffmpeg -i d1.mp4 -i logo.pngদেখায়? দয়া করে কেবল সেই আদেশটি প্রবেশ করুন এবং আউটপুটটি কী তা আমাদের দেখান। প্রশ্নগুলি জিজ্ঞাসা করার সময় ffmpeg, আপনার কাছে কী ভিডিও / অডিও উপাদান রয়েছে, আপনি ইতিমধ্যে কী চেষ্টা করেছেন এবং আপনার চেষ্টা করা সমস্ত কিছুর সম্পূর্ণ কমান্ড লাইন আউটপুট সম্পর্কে যথাসম্ভব যথাযথ বিবরণ অন্তর্ভুক্ত করা উচিত।
21

আমি আমার সিএমডি স্ক্রিনে যা পাই তা এখানে। পেস্টবিন.
com

উত্তর:


13
ffmpeg -i in.mp4 -framerate 30000/1001 -loop 1 -i logo.png -filter_complex
  "[1:v] fade=out:st=30:d=1:alpha=1 [ov]; [0:v][ov] overlay=10:10 [v]" -map "[v]"
  -map 0:a -c:v libx264 -c:a copy -shortest out.mp4

এটি ধরে নিয়েছে যে লোগোটি একটি আলফা চ্যানেলের একটি একক স্থির চিত্র এবং আপনি এটি 30000/1001 (এনটিএসসি রেট) এর ফ্রেম রেট সহ কোনও ভিডিওর উপরে ওভারলে করতে চান। -framerateআপনার ইনপুট ভিডিওটি পৃথক হলে মেলাতে পরিবর্তন করুন। আপনার লোগোটি যদি কোনও ভিডিও হয় তবে বাদ দিন -framerate 30000/1001 -loop 1। যদি লোগোর কোনও আলফা চ্যানেল না থাকে তবে format=yuva420p,তাড়াতাড়ি আগে egোকিয়ে একটি যুক্ত করুন fade

এটি 30 সেকেন্ডের জন্য 10,10 x, y পজিশনে লোগোটি প্রদর্শন করবে এবং তারপরে 1 সেকেন্ড বিবর্ণ হবে।


1
খুব আকর্ষণীয়! ব্যাখ্যা গেল কেন framerateএবং loopএই ক্ষেত্রে এবং ফেইড ফিল্টারটি বাদ দিয়ে একটি সহজ আস্তরণ না প্রয়োজন হয়?
রাজীব

আপনাকে অনেক ধন্যবাদ 40 কিন্তু আমি যখন এই কোডটি লিখি তখন সেন্টিমিডি স্ক্রিনটি থেমে থাকে না .. কেন জানি না তবে এটি আমার পক্ষে কাজ করে নি ..
iwocan

হাই লর্ডনেকবার্ড, এখানে একটি স্ক্রিনশট .. u1312.hizliresim.com/1j/4/v5ny8.png ..
iwocan

1
@ আইওয়োকান আমি বিশ্বাস করি আপনি উইন্ডোজ প্রম্পট থেকে স্টাফ অনুলিপি করতে পারেন। আমি ধরে নিয়েছি আপনি কীভাবে এটি করবেন তা সন্ধান করবেন তবে উইন্ডোজ কমান্ড প্রম্পট থেকে ক্লিপবোর্ডে অনুলিপিটি দেখুন
লগন

4
@ রাজীব: স্থির চিত্রের কারণ -framerateএবং -loopস্থির চিত্রটি যাতে ম্লান হয়ে যায়। যদি কেবল একটি একক ফ্রেম থাকে তবে এটির 1 সেকেন্ডের বিরতিতে বিবর্ণ হওয়ার কোনও উপায় নেই। আদর্শভাবে এটি ভিডিওর মতো একই ফ্রেমের হার হওয়া উচিত যাতে বিবর্ণ যতটা সম্ভব মসৃণ হয়।
4o 23

19

একটি ভিডিওতে একটি লোগো যুক্ত করতে overlayভিডিও ফিল্টার ব্যবহার :

এখানে চিত্র বর্ণনা লিখুন

ffmpeg -i video.mp4 -i logo.png -filter_complex "[0:v][1:v]overlay" \
-codec:a copy out.mp4

এই কমান্ডটি বুঝতে আপনার একটি স্ট্রিম স্পেসিফায়ার কী তা জানতে হবে এবং এফএফম্পেগ ফিল্টারিংয়ের ভূমিকা পড়তে সহায়তা করবে। [0:v]প্রথম ইনপুট ( video.mp4) এর ভিডিও স্ট্রিম (গুলি) [1:v]বোঝায় এবং দ্বিতীয় ইনপুট ( logo.mp4) এর ভিডিও স্ট্রিমকে বোঝায় । overlayকী কী ইনপুট ব্যবহার করবেন তা আপনি এভাবে বলতে পারেন। আপনি বাদ দিতে পারেন [0:v][1:v], এবং overlayএখনও কাজ করতে পারেন , তবে এটি সম্ভবত সুস্পষ্ট এবং সম্ভবত অজানা ডিফল্টগুলির উপর নির্ভর না করার পরামর্শ দেওয়া হচ্ছে।

ডিফল্টরূপে লোগো উপরের বামে স্থাপন করা হবে।

ব্যবহার অডিওটি অনুলিপি-codec:a copy করবে । এটি কেবল পুনরায় এনকোডিংয়ের পরিবর্তে অডিওটিকে পুনরায় ম্যাক্সেস করে। এটিকে অডিওর একটি "অনুলিপি এবং আটকান" হিসাবে ভাবেন।

লোগো সরানো হচ্ছে

এই উদাহরণটি লোগোটিকে ডানদিকে 10 পিক্সেল এবং 10 পিক্সেল নীচে নিয়ে যাবে: এখানে চিত্র বর্ণনা লিখুন

ffmpeg -i video.mp4 -i logo.png -filter_complex "[0:v][1:v]overlay=10:10" \
-codec:a copy out.mp4

এই উদাহরণটি লোগোটি ডান দিক থেকে 10 পিক্সেল এবং 10 পিক্সেলকে নীচে নামাবে:

এখানে চিত্র বর্ণনা লিখুন

ffmpeg -i video.mp4 -i logo.png -filter_complex \
"[0:v][1:v]overlay=main_w-overlay_w-10:10" -codec:a copy out.mp4

main_w"মূল" ইনপুট (পটভূমি বা [0:v]) overlay_wএর প্রস্থকে বোঝায় এবং "ওভারলে" ইনপুট (লোগো বা [1:v]) এর প্রস্থকে বোঝায় । সুতরাং, উদাহরণস্বরূপ, এটি অনুবাদ করা যেতে পারে overlay=320-90-10:10বা overlay=220:10

ওভারলে সময়

কিছু ফিল্টার টাইমলাইন সম্পাদনা পরিচালনা করতে পারে যা আপনাকে কখন গাণিতিক এক্সপ্রেশন ব্যবহার করতে দেয় যখন কোন ফিল্টার প্রয়োগ করা উচিত determine ffmpeg -filtersকোন ফিল্টার টাইমলাইন সম্পাদনা সমর্থন করে তা দেখুন।

এই উদাহরণটি 30 সেকেন্ড পর্যন্ত লোগোটি প্রদর্শন করবে:

ffmpeg -i video.mp4 -i logo.png -filter_complex \
"[0:v][1:v]overlay=10:10:enable=between(t\,0\,30)" -codec:a copy out.mp4

আপনি লোগো বিবর্ণ করতে চাইলে চিহ্ন 4o এর উত্তরটি দেখুন


আপনাকে অনেক ধন্যবাদ! :) আমি আবার আমার ভাঙ্গা ইংরাজির জন্য ক্ষমা চাইছি his এই আদেশটি নিখুঁতভাবে কাজ করে! :)
iwocan

অবশেষে কিছু বোধগম্য! শুরু থেকে শেষের চেয়ে প্রদর্শিত হওয়ার জন্য আমার কী ব্যবহার করা উচিত?
সিকাতোমো

আমি শুরুতে এবং শেষে উপস্থিত হতে চাইছি? দুই বার. আমি সক্ষম করার চেষ্টা করেছি = এর মধ্যে (টি \, 0 \, 30): সক্ষম = এর মধ্যে (টি \, 50 \, 60), তবে একমাত্র শেষ সময়রেখা কার্যকর হচ্ছে
সিকাতোমো

@cikatomo enable=not(between'(t,30,50)')। এটি সর্বদা ওভারলে প্রদর্শন করবে তবে 30-60 সেকেন্ড সময়কালে নয়।
লগন

নিখুঁত তোমাকে ধন্যবাদ. আপনার overlayনিজের দ্বারা সমস্ত ব্যবহার না করার সতর্কতা সত্ত্বেও , আমি করেছি, কারণ উপরের বাম দিকের ডিফল্ট অবস্থানটি আমি চেয়েছিলাম। (সুতরাং শেষ পর্যন্ত আমার পতাকাগুলি সহজভাবে ছিল filter_complex overlay))
el
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.