ধারক এবং কোডেক

ডেরেক হারম্যান
Derek Herman
জো মেডলি
Joe Medley

একাধিক ব্রাউজার সমর্থন করার জন্য, আপনার .mov ফাইলটিকে দুটি ভিন্ন পাত্রে রূপান্তর করতে আপনাকে FFmpeg ব্যবহার করতে হবে: একটি MP4 ধারক এবং একটি WebM ধারক৷ প্রকৃত অনুশীলনে, আপনি সম্ভবত একই সময়ে একটি কোডেক নির্দিষ্ট করবেন। আপাতত, আমরা FFmpeg কে এর ডিফল্ট ব্যবহার করতে দিচ্ছি।

যদি এই ধারণাগুলি আপনার কাছে নতুন হয়, তাহলে আরও যাওয়ার আগে আপনার মিডিয়া ফাইলের মূল বিষয়গুলি পড়া উচিত। অতিরিক্তভাবে, আপনার যদি FFmpeg ইনস্টল না থাকে তবে এটি ডকারের সাথে সেট আপ করার জন্য মিডিয়া অ্যাপ্লিকেশন বেসিক পড়ুন।

আমরা media ডিরেক্টরির ভিতরে যোগ করা ওয়েবের জন্য প্রস্তুত মিডিয়া ফাইল থেকে প্রস্তাবিত ডকার ইনস্টল এবং glocken.mov ফাইলটি ব্যবহার করছি। আমরা এই বিভাগের সমস্ত কমান্ডের জন্য FFmpeg সংস্করণ 4.3.2 ব্যবহার করেছি।

পাত্রে

প্রথমত, আমাদের .mov ফাইল থেকে .mp4 এবং .webm ফাইল এক্সটেনশন সহ ফাইলের ভিতরে একটি অডিও এবং ভিডিও উভয় স্ট্রিম সহ আমাদের দুটি কন্টেইনার তৈরি করতে হবে। আপনি যদি তাদের মধ্যে পার্থক্য না জানেন তবে কন্টেইনার এবং স্ট্রীম সম্পর্কে আরও জানতে মিডিয়া ফাইলের মৌলিক বিষয়গুলি পর্যালোচনা করুন৷

  1. MP4

    /media # ffmpeg -i glocken.mov glocken.mp4
    
  2. ওয়েবএম

    /media # ffmpeg -i glocken.mov glocken.webm
    

WebM তৈরি করতে MP4 এর চেয়ে বেশি সময় নেয়। আপনি ফলাফল তাকান যখন এটি আশ্চর্যজনক নয়. যদিও MP4 মূল ফাইলের আকারের প্রায় 83% কম্প্রেস করে, WebM মূল ফাইলের আকারের 78% থেকে নিচে, কিন্তু অনেক ছোট হতে পারে। আপনার ফলাফল পরিবর্তিত হবে. এটা বলা গুরুত্বপূর্ণ যে FFmpeg 4.2.2 ডিফল্ট ভিডিও বিটরেট 200k এ সেট করে এবং 4.3.2 এ এটি একটি ডিফল্ট বিটরেট সেট করে না। তাই ভিডিওটি আর আসলটির মাত্র 4% নয়। আপনার মিডিয়া ফাইলগুলি যে ফোল্ডারে অবস্থিত সেখানে ls -a bash কমান্ড ব্যবহার করে আপনি এটি নিজের জন্য দেখতে পারেন।

যেমন:

/media # ls -l
-rw-r--r-- 1 root  root  12080306 Mar 7 12:16 glocken.mov
-rwx------ 1 root  root  10106446 Mar 7 12:33 glocken.mp4
-rwx------ 1 root  root   9503301 Mar 7 18:30 glocken.webm

একটি ছোট ফাইল পেতে, আপনি পরিবর্তে এটি করবেন:

/media # ffmpeg -i glocken.mov -b:v 200k glocken.webm
...
frame=  300 fps=3.6 q=0.0 Lsize=     483kB time=00:00:10.01 bitrate= 395.0kbits/s speed=0.121x
video:359kB audio:117kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.356068%
/media # ls -l
-rw-r--r-- 1 root  root  12080306 Mar 7 12:16 glocken.mov
-rwx------ 1 root  root  10106446 Mar 7 12:33 glocken.mp4
-rwx------ 1 root  root    494497 Mar 7 18:45 glocken.webm

আপনার কাজ পরীক্ষা করুন

আপনার ফলাফল যাচাই করতে, FFmpeg এবং Shaka প্যাকেজার ব্যবহার করুন যেমনটি ইতিমধ্যে মিডিয়া অ্যাপ্লিকেশন বেসিকগুলিতে দেখানো হয়েছে:

/media # packager input=glocken.mp4 --dump_stream_info
/media # ffmpeg -i glocken.mp4

কোডেক

পরবর্তী, কোডেক. মিডিয়া ফাইল বেসিকগুলিতে যেমন বলা হয়েছে, একটি কোডেক একটি ধারক (ফাইলের প্রকার) হিসাবে একই জিনিস নয় । একই ধারক ধরনের দুটি ফাইল বিভিন্ন কোডেক ব্যবহার করে সংকুচিত ডেটা ধরে রাখতে পারে। উদাহরণ স্বরূপ WebM ফরম্যাট Vorbis বা Opus ব্যবহার করে অডিওকে এনকোড করার অনুমতি দেয়। কোডেক পরিবর্তন করতে আমরা FFmpeg ব্যবহার করি। উদাহরণস্বরূপ, এই কমান্ডটি একটি vorbis অডিও কোডেক এবং একটি av1 ভিডিও কোডেক সহ একটি .mkv ফাইল আউটপুট করে।

/media # ffmpeg -i glocken.mov -c:a vorbis -c:v av1 glocken.mkv

এই উদাহরণে, -c:a পতাকা এবং -c:v যথাক্রমে অডিও এবং ভিডিও কোডেক নির্দিষ্ট করার জন্য।

মিডিয়া রূপান্তর পৃষ্ঠা কোডেক রূপান্তর করতে প্রয়োজনীয় কমান্ড তালিকাভুক্ত করে। নীচের টেবিলগুলি WebM এবং MP4 ফাইলগুলির জন্য কোডেক রূপান্তরগুলি সম্পাদন করতে FFmpeg-এ ব্যবহৃত লাইব্রেরিগুলির সংক্ষিপ্ত বিবরণ দেয়৷ এগুলি যথাক্রমে DASH এবং HLS-এর জন্য প্রস্তাবিত ফর্ম্যাট৷

ভিডিও

কোডেক এক্সটেনশন লাইব্রেরি
av1 ওয়েবএম, এমকেভি libaom-av1
h264 MP4 libx264
vp9 ওয়েবএম libvpx-vp9

অডিও

কোডেক এক্সটেনশন লাইব্রেরি
aac MP4 aac
রচনা ওয়েবএম লিবোপাস
ভর্বিস ওয়েবএম libvorbis

এরপরে, আমরা আপনাকে দেখাব কিভাবে আপনার নতুন তৈরি করা ফাইলের বিটরেট পরিবর্তন করতে হয়।