রি-এনকোড ছাড়াই কীভাবে ভিডিও ট্রিম, স্প্লিট ও মার্জ করবেন
হালনাগাদ:
ভিডিও থেকে কয়েক সেকেন্ড কেটে বাদ দেওয়া শুনে মনে হয় কাজটি তাৎক্ষণিক ও লসলেস হওয়ার কথা, আর কখনো কখনো তা হয়ও। আবার কখনো টুলটি পুরো ক্লিপটি ডিকোড করে আবার কম্প্রেস করে, যাতে বেশি সময় লাগে এবং কিছুটা কোয়ালিটি হারায়। পার্থক্যটা আসে দুটি কৌশল থেকে — স্ট্রিম কপি ও রি-এনকোডিং — আর কম্প্রেস করা ভিডিও কীভাবে কিফ্রেম দিয়ে গড়া, তা থেকে।
এই গাইডে দুটোই ব্যাখ্যা করা হয়েছে, দেখানো হয়েছে কখন লসলেস কাট সম্ভব, আর খোলাখুলি বলা হয়েছে আমাদের কোন টুল স্ট্রিম কপি করে আর কোনটি রি-এনকোড করে।
স্ট্রিম কপি বনাম রি-এনকোডিং
স্ট্রিম কপি (একে রিমাক্সিং বা পাসথ্রুও বলা হয়) আগে থেকে কম্প্রেস করা ভিডিও ও অডিও প্যাকেটগুলো ডিকোড না করেই একটি নতুন ফাইলে লেখে। এটি খুবই দ্রুত, কারণ কোনো কম্প্রেশন হয় না, আর এটি লসলেস, কারণ প্যাকেটগুলো মূলের সাথে বিট-বাই-বিট হুবহু এক। এর সীমাবদ্ধতা হলো আপনি শুধু পুরো প্যাকেট রাখতে বা বাদ দিতে পারেন; পিক্সেলের কোডেক, রেজোলিউশন, বিটরেট বা ওরিয়েন্টেশন বদলাতে পারেন না।
রি-এনকোডিং ভিডিওটিকে ডিকোড করে আলাদা আলাদা ফ্রেমে ভাঙে এবং সেগুলো আবার কম্প্রেস করে। এটি ধীর, আর লসি কোডেকের ক্ষেত্রে প্রতিটি রি-এনকোডে আরও কিছুটা খুঁটিনাটি হারায়, কিন্তু এটি যেকোনো ফ্রেমে শুরু ও শেষ হতে পারে এবং ভিডিওর যেকোনো কিছু বদলাতে পারে।
লসলেস কাট কেন কিফ্রেমে সরে যায়
আধুনিক কোডেক প্রতিটি ফ্রেমকে সম্পূর্ণ ছবি হিসেবে সংরক্ষণ করে না। কিফ্রেম (I-frame) হলো একটি পূর্ণাঙ্গ ছবি; এর পরের ফ্রেমগুলো মূলত শুধু পরিবর্তনটুকু সংরক্ষণ করে, আগের ফ্রেমগুলোর ওপর নির্ভর করে। কিফ্রেম দিয়ে শুরু হওয়া ফ্রেমের একটি দলকে বলা হয় GOP, আর ফোন ও ক্যামেরার ফুটেজে সাধারণত প্রতি এক থেকে কয়েক সেকেন্ডে একটি কিফ্রেম থাকে।
GOP-এর মাঝখানের কোনো ফ্রেম, সেটি যে ফ্রেমগুলোর ওপর নির্ভরশীল সেগুলো ছাড়া দেখানো যায় না। তাই স্ট্রিম-কপি কাট নির্ভুলভাবে শুরু হতে পারে কেবল একটি কিফ্রেমে। লসলেসভাবে কাটে এমন টুল হয় আপনার শুরুর পয়েন্টকে নিকটতম কিফ্রেমে সরিয়ে নেয় — এ কারণেই কাটটি আপনার চাওয়া জায়গা থেকে এক-দুই সেকেন্ড দূরে পড়তে পারে — নয়তো আগের ফ্রেমগুলো রেখে সেগুলো লুকিয়ে রাখে, যা কিছু প্লেয়ার উপেক্ষা করে। ক্লিপ শেষ করা সহজ, কারণ যেকোনো ফ্রেমের পরেই থামা যায়।
কিছু এডিটর স্মার্ট রেন্ডারিং ব্যবহার করে: এগুলো শুধু আপনার কাট পয়েন্ট আর পরের কিফ্রেমের মাঝের অল্প কয়েকটি ফ্রেম রি-এনকোড করে, বাকিটা স্ট্রিম কপি করে। এতে প্রায় কোনো কোয়ালিটি না হারিয়েই ফ্রেম ধরে নির্ভুলতা পাওয়া যায়, তবে এর জন্য এনকোডারের সেটিংস মূলের সাথে সতর্কভাবে মেলাতে হয়।
রি-এনকোড ছাড়া মার্জ করা
স্ট্রিম কপি দিয়ে ফাইল জোড়া লাগানো কাজ করে কেবল তখনই, যখন প্রতিটি ক্লিপের কোডেক, রেজোলিউশন, ফ্রেম রেট, পিক্সেল ফরম্যাট ও অডিও ফরম্যাট একই, যেমন একই ক্যামেরায় পরপর রেকর্ড করা কয়েকটি ক্লিপ। কোনো কিছু ভিন্ন হলে, যেমন স্ক্রিন রেকর্ডিংয়ের সাথে ফোনের ক্লিপ জোড়া দিলে, অংশগুলোকে একটি সাধারণ ফরম্যাটে রি-এনকোড করতে হয়, আর ভিন্ন ভিন্ন সাইজ কীভাবে সামলাবে তা টুলটিকে ঠিক করতে হয়, সাধারণত কালো বার যোগ করে।
আমাদের টুলগুলো কী করে
এর সবগুলোই চলে আপনার ব্রাউজারে, তাই ফাইল আপলোড হয় না। নিচে দেওয়া হলো প্রতিটি টুল তার মূল ইঞ্জিনে — যা আপনার ব্রাউজারের বিল্ট-ইন WebCodecs সাপোর্ট ব্যবহার করে — রি-এনকোডিং কীভাবে সামলায়। কোনো ব্রাউজার নির্দিষ্ট কোনো ফাইল এভাবে প্রসেস করতে না পারলে টুলগুলো বিকল্প হিসেবে ffmpeg-এর একটি WebAssembly বিল্ড ব্যবহার করে, যা ভিডিওটি রি-এনকোড করে।
- ভিডিও কাটার, “ট্রিম” মোড: আপনি যে অংশটি রাখছেন তা যদি ভিডিওর একদম শুরু থেকে শুরু হয় এবং আউটপুট ফরম্যাট সোর্সের কোডেক সাপোর্ট করে, তাহলে ভিডিও ও অডিও স্ট্রিম কপি হয়। রাখা অংশটি পরে শুরু হলে ভিডিওটি রি-এনকোড হয়, ফলে কাটটি কিফ্রেমে সরে না গিয়ে ফ্রেম ধরে নির্ভুল হয়; অডিওও রি-এনকোড হয়।
- ভিডিও কাটার, “কাট” মোড (মাঝখান থেকে একটি অংশ বাদ দেওয়া): বাকি থাকা দুটি টুকরোই একই সেটিংসে রি-এনকোড হয়, তারপর আর কোনো রি-এনকোড ছাড়াই জোড়া লাগানো হয়। বাদ দেওয়া অংশটি শুরু বা শেষ ছুঁয়ে গেলে এটি ট্রিমের মতো আচরণ করে।
- ভিডিও স্প্লিটার: প্রতিটি অংশ তৈরি হয় আলাদা একটি ট্রিম হিসেবে, তাই প্রথম অংশটি স্ট্রিম কপি হতে পারে, আর পরের প্রতিটি অংশ রি-এনকোড হয়। অংশের সংখ্যা ধরে, দৈর্ঘ্য ধরে বা নিজের বেছে নেওয়া পয়েন্টে স্প্লিট করতে পারেন, আউটপুট MP4, MOV, MKV বা WebM।
- মার্জ করা: ভিডিও মার্জার খোলে ভিডিও এডিটর, যেখানে আপনি টাইমলাইনে ক্লিপগুলো সাজান। এক্সপোর্ট সবসময় আপনার বেছে নেওয়া রেজোলিউশন, ফ্রেম রেট ও বিটরেটে একটি নতুন ভিডিও রেন্ডার করে, তাই ভিন্ন সাইজ বা কোডেকের ক্লিপও একসাথে জোড়া যায়।
- ভিডিও রোটেটর: ক্লাসিক রোটেটরে, যে MP4 বা MOV-এর কোডেক সেই কনটেইনার সাপোর্ট করে, সেটি ঘোরানো হয় রি-এনকোড ছাড়াই, প্লেয়ার যে রোটেশন ফ্ল্যাগ পড়ে সেটি সেট করে। ফ্লিপ, MKV বা WebM আউটপুটে ঘোরানো, এবং এআই অ্যাসিস্ট্যান্টের করা প্রতিটি ঘোরানো পিক্সেলগুলো রি-এনকোড করে।
রি-এনকোড এড়ানো না গেলে কোয়ালিটি বজায় রাখা
যুক্তিসংগত বিটরেটে একবারের রি-এনকোড চোখে পড়া খুবই কঠিন। কোয়ালিটির সমস্যা আসে প্রক্রিয়াটি বারবার করলে, অথবা বিটরেট খুব বেশি কমিয়ে দিলে।
- মূল ফাইল থেকে কাটুন, এক্সপোর্টের এক্সপোর্ট থেকে নয়।
- সম্ভব হলে সব ট্রিমিং এক দফায় করুন; ট্রিম, তারপর স্প্লিট, তারপর আবার ট্রিম — এভাবে নয়।
- ছোট ফাইলও না চাইলে আউটপুট রেজোলিউশন সোর্সের সমানই রাখুন।
- ভিন্ন কনটেইনারের দরকার না হলে সোর্সের কনটেইনারটিই বেছে নিন; এতে যেখানে সম্ভব সেখানে টুলটির স্ট্রিম কপি করার সম্ভাবনা সবচেয়ে বেশি থাকে।
যখন পুরোপুরি লসলেস কিফ্রেম কাট দরকার
আপনার কাছে খুব লম্বা একটি রেকর্ডিং থাকলে এবং বাকিটুকুতে হাত না দিয়ে শুধু শুরুর অংশ ছেঁটে ফেলতে চাইলে, শুধুই স্ট্রিম কপি দিয়ে কাজ করে এমন একটি ডেস্কটপ টুলই সঠিক পছন্দ। ওপেন-সোর্স LosslessCut অ্যাপটি এই কাজের জন্যই তৈরি, আর ffmpeg কমান্ড লাইনও এর copy অপশন দিয়ে এটি করতে পারে, যেমন: ffmpeg -ss 00:01:00 -i input.mp4 -t 30 -c copy output.mp4। ধরে রাখুন, শুরুটা আপনার দেওয়া সময়ের আগের নিকটতম কিফ্রেমে সরে যাবে।
দৈনন্দিন ক্লিপের ক্ষেত্রে, যেখানে একবারের রি-এনকোড এড়ানোর চেয়ে ফ্রেম ধরে নির্ভুলতা বেশি গুরুত্বপূর্ণ, ভিডিও কাটার ব্যবহার করা দ্রুততর এবং কিছু ইনস্টল করতে হয় না। একই সাথে সাইজ কমাতে চাইলে শেষে ভিডিও কম্প্রেসর চালিয়ে নিন।
এই গাইডে ব্যবহৃত টুল
সচরাচর জিজ্ঞাসা
০১
০২
০৩