FLV হলো Flash Video, সেই ফরম্যাট যা Adobe-এর Flash Player ওয়েব ব্রাউজারে ভিডিও দেখাতে ব্যবহার করত। এটি তৈরি করেছিল Macromedia, যারা Flash-এরও নির্মাতা, এবং ২০০৫ সালে Adobe যখন Macromedia-কে কিনে নেয় তখন ফরম্যাটটি Adobe-র কাছে চলে যায়। প্রায় এক দশক ধরে অনলাইনে ভিডিও এভাবেই চলত: সেই সময় ব্রাউজারে দেখা প্রায় সব ক্লিপই খুব সম্ভবত FLV হিসেবেই আসত। ২০২০ সালের শেষ দিনে Adobe Flash Player-এর জন্য সমর্থন বন্ধ করে এবং ব্রাউজারগুলো এটিকে সরিয়ে দেয়, তাই আর কোনো ওয়েব পেজে FLV চলতে পারে না। তবে ফাইলগুলো হারিয়ে যায়নি। সেগুলো ডাউনলোড ফোল্ডার ও আর্কাইভে রয়ে গেছে, এবং ডেস্কটপ মিডিয়া প্লেয়ারে এখনও চালানো যায়।
একটি FLV ফাইল কীভাবে গঠিত হয়
FLV-এর নকশা উল্লেখযোগ্যভাবে সরল, কারণ এটি মূলত সংরক্ষণের চেয়ে স্ট্রিমিংয়ের জন্য বানানো হয়েছিল। একটি ছোট হেডার ফাইলটিকে শনাক্ত করে এবং জানায় এতে অডিও, ভিডিও নাকি দুটোই আছে। তারপর থেকে ফাইলের বাকিটা কেবল ট্যাগের একটি শৃঙ্খল, প্রতিটি ট্যাগই একটি ছোট প্যাকেট, যার একটি ধরন, একটি টাইমস্ট্যাম্প এবং একটি পে-লোড থাকে। অডিও ট্যাগ, ভিডিও ট্যাগ এবং স্ক্রিপ্ট ট্যাগ সময়ক্রম অনুযায়ী একের পর এক থাকে, এবং প্লেয়ার সেগুলো ধারাবাহিকভাবে পড়ে। এখানে কোনো কেন্দ্রীয় ইনডেক্স নেই, তাই FLV ফাইলে নির্দিষ্ট স্থানে যাওয়া (seeking) ঝামেলাপূর্ণ হতে পারে।
কন্টেইনার নিজে কিছুই কমপ্রেস করে না। প্রাথমিক FLV ফাইলগুলো ভিডিওর জন্য Sorenson Spark ব্যবহার করত, পরেরগুলো On2 VP6 কোডেক, এবং পরে যখন Flash Player সে ক্ষমতা পায়, তখন H.264 ভিডিওর সঙ্গে AAC অডিও, যেগুলো সবই লসি। পরে Adobe F4V চালু করে বিকল্প হিসেবে, যা অন্যত্র ব্যবহৃত একই MP4 কাঠামোর ওপর তৈরি।
একটি FLV ফাইল কী কী মেটাডাটা বহন করে
FLV মেটাডেটার প্রায় সবটাই থাকে ফাইলের শুরুতে থাকা একটি স্ক্রিপ্ট ট্যাগে, যার নাম সাধারণত onMetaData। এটি নাম ও মানের একটি তালিকা, যা Flash স্ক্রিপ্টের সঙ্গে যোগাযোগ করার জন্য যে ডেটা ফরম্যাট ব্যবহার করত সেটিতেই লেখা থাকে, এবং প্লেব্যাক শুরুর আগে প্লেয়ার নিজের সেটআপ করার জন্য এটি পড়ে। আপনি যেগুলো বেশি দেখতে পাবেন, সেগুলো হলো:
- duration, width এবং height, এবং frame rate;
- video data rate এবং audio data rate, এবং ভিডিও ও অডিও কোডেকের জন্য সংখ্যাসূচক আইডেন্টিফায়ার;
- audio sample rate, sample size, এবং শব্দটি স্টেরিও কি না;
- ফাইলের আকার এবং একটি ফ্ল্যাগ, যা জানায় ফাইলের একেবারে শেষে পর্যন্ত seek করা যায় কি না;
- keyframe-এর অবস্থান ও সময়ের একটি তালিকা, যা মূলত seeking-কে সম্ভব করে;
- মেটাডেটা লেখার বা যোগ করার অ্যাপের নাম, কারণ আলাদা কিছু প্রোগ্রাম ছিল, যেগুলোর কাজই ছিল শুধু এই ব্লকটি এমন ফাইলে যোগ করা যেখানে এটি অনুপস্থিত।
কিছু ফাইলে আরও একটি দ্বিতীয় স্ক্রিপ্ট ট্যাগ থাকে, যাতে XMP প্যাকেট থাকে, যা হলো Adobe-র সব প্রোডাক্টে ব্যবহৃত কাঠামোবদ্ধ টেক্সট ফরম্যাট। সেখানে কোনও ব্যক্তি লেখা শিরোনাম, নির্মাতা, বর্ণনা এবং কপিরাইট নোটিশ থাকতে পারে।
FLV-তে যে জিনিসের কোনো ধারণাই নেই, তা হলো ক্যামেরা মেটাডেটা। এখানে কোনো EXIF ব্লক নেই, নেই ক্যামেরার ব্র্যান্ড বা মডেল, লেন্স বা এক্সপোজারের তথ্য, আর নেই কোনো GPS ফিল্ড। অবস্থান তথ্য কখনওই Flash Video ফাইলের কাজের অংশ ছিল না। উৎস সম্পর্কে একমাত্র ইঙ্গিত থাকে লেখার অ্যাপের নাম এবং কোনো XMP প্যাকেটে থাকা তথ্য।
এখানে আরও একটি সাধারণ ফাঁক আছে, যা জানা দরকার। duration এবং ফাইল সাইজ পুরো ফাইল সম্পর্কে তথ্য পাওয়ার পর লেখা হয়, তাই লাইভ স্ট্রিম থেকে রেকর্ড করা ফাইলে এগুলো প্রায়ই অনুপস্থিত থাকে বা শূন্য লেখা থাকে। এজন্যই কিছু প্লেয়ার FLV ফাইলকে টাইমলাইন ছাড়া দেখায় এবং সামনে এগিয়ে যেতে দেয় না: প্লেয়ারের প্রয়োজনীয় তথ্য কখনওই ভরা হয়নি।
আজকের দিনে একটি FLV ফাইল দিয়ে কী করা যায়
FLV-কে সক্রিয় ব্যবহারের ফরম্যাট না ভেবে আর্কাইভ ফরম্যাট হিসেবে ধরুন। এখন আর নতুন কিছুই এতে তৈরি করা উচিত নয়, কারণ যে প্ল্যাটফর্মের জন্য এটি ছিল, সেটি আর নেই।
প্রতিটি ক্ষেত্রে বিকল্প হিসেবে MP4-ই এখন ব্যবহারযোগ্য: এটি ব্রাউজার ও ফোনে চলে, ঠিকমতো seek করা যায়, এবং অনেক বেশি মেটাডেটা ধরে রাখতে পারে। আপনি কীভাবে কনভার্ট করছেন, তা গুরুত্বপূর্ণ। কোনো FLV ফাইলে যদি আগে থেকেই H.264 ভিডিও ও AAC অডিও থাকে, তবে সাধারণত সেটিকে সরাসরি MP4-এ remux করা যায়, যা শুধু বাহ্যিক কাঠামো বদলে দেয় এবং ছবিকে বিট টু বিট অপরিবর্তিত রাখে। Sorenson Spark বা VP6 ব্যবহার করা পুরোনো ফাইলগুলোকে আবার re-encode করতে হয়, যা মানে আরেক দফা লসি কমপ্রেশন। তাই ফুটেজ গুরুত্বপূর্ণ হলে কপির সঙ্গে আসল ফাইলটিও রেখে দিন।