FFmpeg আউটপুট ভিডিওতে একক চিত্রের ফাইলের নামগুলি পোড়া


6

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

এখন আমি অঙ্কন কমান্ডটি ব্যবহার করে ফলাফলের প্রতিটি চিত্রের মূল ক্যাপচার সময়টি পোড়াতে চাই। ক্যাপচার সময় প্রতিটি ইমেজ ফাইলের নাম পাওয়া যায়। তবে আমি ইনপুট চিত্রগুলির ফাইলের নাম অ্যাক্সেস করার জন্য অঙ্কিতের জন্য কিছু বিকল্প খুঁজে পেতে ব্যর্থ হচ্ছি।

বিকল্পটি হ'ল আঁকাটি থেকে প্রতিটি চিত্রের তৈরি তারিখটি অ্যাক্সেস করা (আমি এটি করার কোনও উপায়ও খুঁজে পাচ্ছি না)। তবে আমি অবশ্যই ফাইলের নাম অ্যাক্সেস করতে পছন্দ করব, কারণ এটি আমাকে পাঠ্যটির বিন্যাস করতে আরও বিকল্প দেয়।

এই কাজ করতে একটি উপায় আছে কি?
এটি দুর্দান্ত হবে যদি কোনও প্রস্তাবিত সমাধান উইন্ডোজেও কাজ করে।

উত্তর:


2

আপনি এটি এক লাইনে করতে সক্ষম হবেন না, কারণ ffmpegএর আঁকানো ফিল্টারটি উন্নত নয়।

কিছু স্ক্রিপ্টিং সহ আপনাকে ছবিগুলি আগে থেকে প্রসেস করতে হবে।

সরল বাশ স্ক্রিপ্টের মতো কিছু:

for i in *.png; do 
    time = $(echo $i | cut -d . -f 1)
    ffmpeg -i $i -vf "drawtext=text=$time" mod-$time.png
done

তারপরে আপনি আপনার ভিডিও তৈরি করতে Mod * .png ফাইলগুলি ব্যবহার করতে পারেন।


2

জ্নুফের উত্তরটি দুর্দান্ত (স্বীকৃত ও উর্ধ্বে) এবং আমার নিজের সমাধানের পথ প্রশস্ত করেছে। যেহেতু এটি ইউনিক্স-নির্দিষ্ট এবং উইনের জন্য আমাকে কাজ করতে হয়েছিল, উইন্ডোজ and এবং তারপরে আমার সমাধানটি এখানে রয়েছে:

সমস্ত চিত্রের লুপ লুপ করতে এবং সেগুলিতে ফাইলের নামগুলি পোড়াতে আমি দুটি ব্যাচ ফাইল (মাস্টার.ক্যামডি এবং স্ল্যাভ.কম) ব্যবহার করেছি।

Master.cmd:

forfiles /p "MyImagesSubPath" /m "2014-02-15*.png" /c "cmd /c ..\Slave.cmd @file @fname

Slave.cmd:

ffmpeg -i "%~1" -vf "crop=1072:1192:24:101, drawtext=text=%~2: fontcolor=white: fontsize=60: box=1: boxcolor=black@0.6: x=50:y=50: fontfile=c\\:\\\\Windows\\\\Fonts\\\\myfont.ttf" "mod_%~1"

ব্যাখ্যা:

এটি একাধিক কারণে দুই ব্যাচে ব্যবহার করতে প্রয়োজনীয়:
1. forfiles এর / C প্যারামিটার সীমিত দৈর্ঘ্য (253 অক্ষর) শুধুমাত্র একটি কমান্ড লাইন গ্রহণ করে
2. পাখির forfiles / C পরামিতি মধ্যে FFmpeg কমান্ড চরিত্র একজন উন্মাদ স্তর করতে হবে excaping।

মাস্টার সিএমডি-তে ফাইলনাম ফিল্টার "2014 -.... পিএনজি" লুপকে একটি অন্তহীন লুপে নিজের আউটপুট ("মোড _.... পিএনজি" নাম দেওয়া হয়েছে) এর পুনরায় প্রসেস করা থেকে বিরত রাখতে ব্যবহৃত হয়। আপনার উত্স চিত্রগুলি মেলে আপনাকে অবশ্যই ফিল্টার স্ট্রিংটি মানিয়ে নিতে হবে।

স্লেভ ব্যাচটি ব্যাচ ডিরেক্টরিটির নীচে (মাইআইমেজেসসপথ) সাব ডিরেক্টরিতে নির্বাহ করা হয় (এটি, যেখানে আপনাকে আপনার উত্সের চিত্রগুলি রাখতে হবে)। স্লেভ.সি.এম.ডি. এর দুটি পরামিতি হিসাবে এক্সটেনশন (.png) সহ এবং ছাড়াই প্রাপ্ত করে name

এক্সটেনশন ছাড়াই ফাইলের প্যারামিটারটি ছবিতে পোড়া হিসাবে পাঠ্য হিসাবে ব্যবহৃত হয়। ফলস্বরূপ চিত্রগুলি মূল চিত্রগুলির মতো একই পথে উপসর্গ "mod_" দিয়ে সংরক্ষণ করা হয়। ফাইলের নামগুলিতে ফাঁকা থাকতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.