সংযুক্ত ছবি হলো এমন একটি ইমেজ, যা অন্য কিছুর সঙ্গে থাকে, যেমন কোনো ইমেইলে থাকা ছবি। অডিও বা ভিডিও ফাইলে সংযুক্ত ছবি বলতে বোঝায় এমন একটি ইমেজ যা ফাইলের ভেতরেই সংরক্ষিত থাকে। সাধারণ উদাহরণ হলো কোনো অ্যালবাম বা সিঙ্গেলের কভার আর্ট।
Attached Pic হলো সেই ফিল্ড, যা কোনো মেটাডাটা রিপোর্টে এমন ছবিকে চিহ্নিত করে। এই নামটি এসেছে ffprobe থেকে, যা FFmpeg প্রজেক্টের ফাইল রিডার এবং এটি এই ফিল্ডকে attached_pic হিসেবে লেখে।
FFmpeg একটি ফাইলের প্রতিটি অংশকে আলাদা স্ট্রিম হিসেবে তালিকাভুক্ত করে। এটি প্রতিটি স্ট্রিমকে কিছু ফ্ল্যাগ দেয়, যেগুলোকে একসাথে disposition বলা হয়। প্রতিটি ফ্ল্যাগ হয় চালু থাকে, নয় বন্ধ থাকে, এবং Attached Pic সেই ফ্ল্যাগগুলোর একটি।
মানগুলি দেখতে কেমন
ffprobe রিডারের -show_streams অপশন প্রতিটি স্ট্রিমের জন্য এই ফ্ল্যাগটি প্রিন্ট করে, এমনকি যেসব ফাইলে কোনো সংযুক্ত ছবি নেই সেগুলোর ক্ষেত্রেও। সেই আউটপুটে ফ্ল্যাগটির ২টি মান থাকতে পারে:
0: স্ট্রিমটি সংযুক্ত ছবি নয়, উদাহরণস্বরূপ একটি সাধারণ অডিও বা ভিডিও স্ট্রিম1: স্ট্রিমটিতে একটি সংযুক্ত ছবি থাকে, যেমন কোনো অ্যালবামের কভার
FFmpeg যেই সংক্ষিপ্ত সারাংশটি কোনো ফাইলের জন্য প্রিন্ট করে, সেখানে একই ফ্ল্যাগটি (attached pic) হিসেবে দেখায়। FFmpeg এই লেবেলটি তখনই প্রিন্ট করে, যখন ফ্ল্যাগটি চালু থাকে।
কোন ফাইলগুলো এটিকে বহন করে
FFmpeg একটি সংযুক্ত ছবিকে একটি মাত্র ইমেজসহ ভিডিও স্ট্রিম হিসেবে ধরে। তাই কভার আর্টযুক্ত কোনো গান ২টি স্ট্রিম দেখাতে পারে: একটি শব্দের জন্য এবং একটি ছবির জন্য। সেই ছবি-স্ট্রিমের codec type হয় video, যদিও ছবিটি কখনো নড়ে না।
FFmpeg প্রতিটি ফরম্যাটে ভিন্ন ভিন্ন জায়গা থেকে ছবিটি পড়ে:
- MP3: ID3v2 ট্যাগের একটি APIC ফ্রেম, যাকে ID3v2 মানদণ্ডে Attached picture বলা হয়
- M4A এবং MP4:
covrআইটেম, যাকে ExifToolCoverArtনামে উল্লেখ করে - FLAC: একটি picture block, এবং একটি ফাইলে এমন একাধিক ব্লক থাকতে পারে
- MKV: একটি image টাইপের attachment, যেমন
cover.jpgবাcover.pngনামে ফাইল
ছবি ও ই-বুক তাদের ছবি অন্য ফিল্ডে রাখে। কোনো JPEG ছবিতে তার Thumbnail Image ফিল্ডে একটি ছোট প্রিভিউ রাখা থাকতে পারে। কোনো EPUB ই-বুক সর্বোচ্চ একটি ইমেজ ফাইলকে তার কভার হিসেবে চিহ্নিত করতে পারে।
মানের উৎস কোথায়
ফাইলের ভেতরে Attached Pic নামে কোনো ফিল্ড থাকে না। FFmpeg কোনো picture frame, picture block বা image attachment পেলে এই ফ্ল্যাগটি চালু করে।
MP3 এবং FLAC ফাইলের ক্ষেত্রে FFmpeg ছবির বর্ণনাটি title ট্যাগে কপি করে। এটি ছবির ধরনকে comment ট্যাগে কপি করে।
ছবির ধরন ০ থেকে ২০ পর্যন্ত একটি সংখ্যা, যা বলে ছবিতে কী আছে। FFmpeg এই ধরনটিকে টেক্সট হিসেবে লেখে, উদাহরণস্বরূপ:
- Type 0,
Other: এমন একটি ছবি, যা অন্য কোনো ধরনের মধ্যে পড়ে না - Type 3,
Cover (front): সামনের কভার, যা অনেক প্লেয়ার প্লেব্যাকের সময় দেখায় - Type 4: পেছনের কভার
- Type 6: মিডিয়া নিজেই, উদাহরণস্বরূপ কোনো CD-র লেবেল-সাইড
FFmpeg শুধুমাত্র কিছু নির্দিষ্ট ফরম্যাটেই এমবেড করা ছবি লিখতে পারে, যেসব ফরম্যাট এটি সমর্থন করে। ছবির জন্য ID3v2 স্ট্যান্ডার্ড এবং Matroska স্পেসিফিকেশন উভয়ই JPEG এবং PNG ব্যবহারের পরামর্শ দেয়।
এটি কেন গুরুত্বপূর্ণ
এই ফ্ল্যাগ সফটওয়্যারকে জানায় যে স্ট্রিমটি একটি ছবি, নড়মান ভিডিও নয়। FFmpeg কমান্ডে স্ট্রিম সিলেক্টর V শুধুমাত্র সেই ভিডিও স্ট্রিমগুলোকে বেছে নেয়, যেগুলো সংযুক্ত ছবি নয়।
ছবির ডেটা ফাইলের ভেতরেই থাকে, তাই বড় কভার হলে পুরো ফাইলটিই বড় হয়। একটি ছবি শুধু কভারই নয়, পারফর্মার বা রেকর্ডিং লোকেশনের মতো আরও তথ্যও দেখাতে পারে।
কোনো picture frame বা picture block ফাইলের বাইরে থাকা কোনো ইমেজের লিঙ্কও ধরে রাখতে পারে। FLAC ফাইলের ক্ষেত্রে স্পেসিফিকেশন বলে, কোনো প্রোগ্রামকে নেটওয়ার্কের মাধ্যমে সেই ইমেজ লোড করার আগে অবশ্যই আপনাকে জিজ্ঞেস করতে হবে।