প্রস্তাবিত সেটিংস
এই বিভাগে বিভিন্ন সাধারণ প্রোফাইলের জন্য VP9 এনকোডিং সুপারিশ তালিকাভুক্ত করা হয়েছে:
- ওয়েব এবং মোবাইলের জন্য অত্যন্ত অপ্টিমাইজ করা ভিডিও (VOD)
- প্রিমিয়াম সামগ্রী বিতরণ (VOD)
- খেলাধুলা, অ্যানিমেশন, 10-বিট সামগ্রী (VOD)
- লাইভ এনকোডিং
- ওয়েবআরটিসি
ভূমিকা
ভিডিও এনকোডিং করার সময়, অনেকগুলি বিবেচ্য বিষয় রয়েছে:
- আপনি কি আপনার মিডিয়ার একটি একক সংস্করণ বা বিভিন্ন বিটরেট এবং রেজোলিউশনে একাধিক সংস্করণ তৈরি করছেন?
- আপনি কি একটি লাইভ ভিডিও স্ট্রিম তৈরি করছেন, নাকি অন-ডিমান্ড ভিডিও ফাইল তৈরি করছেন?
- আপনি কোন ধরনের মিডিয়া এনকোড করছেন - এতে কি অনেক গতি আছে? বিস্তারিত? অ্যানিমেশন?
- আপনি কি সর্বোচ্চ মানের (যেমন প্রিমিয়াম সামগ্রী) বা গতি (যেমন ওয়েব কনফারেন্সিং?) এর জন্য এনকোডিং করছেন?
এই বিভাগটি একটি মৌলিক অন-ডিমান্ড ভিডিও ফাইলের সেটিংস দিয়ে শুরু হয় এবং তারপর এই সমস্ত প্রশ্নের জন্য সুপারিশ করে৷
মৌলিক সেটিংস
এনকোডিং বিট্রেট
নিম্নলিখিত বিটরেটগুলি ওয়েব এবং মোবাইল বিতরণের জন্য বেসলাইন হিসাবে প্রস্তাবিত। এই পরামর্শগুলি বিটরেট কমিয়ে দেয় যা ভোক্তা ওয়েব এবং মোবাইল বিতরণের জন্য উপযুক্ত ভিডিও গুণমান অর্জন করে; এগুলিকে একটি 'নিম্ন' বিট রেট সুপারিশ হিসাবে মনে করুন যা এখনও যুক্তিসঙ্গত গুণমান অর্জন করতে পারে।
প্রস্তাবিত টার্গেট বিট্রেট
ফ্রেমের আকার/হার | গড় বিটরেট (VOD, kbps) | গড় বিটরেট (লাইভ, কেবিপিএস) |
---|---|---|
320x240p @ 24,25,30 | 150 | 250 |
640x360p @ 24,25,30 | 276 | 386 |
640x480p @ 24,25,30 | 512 (LQ), 750 (MQ) | 720 (LQ), 1024 (MQ) |
1280x720p @ 24,25,30 | 1024 | 1440 |
1280x720p @ 50,60 | 1800 | 2500 |
1920x1080p @ 24,25,30 | 1800 | 2500 |
1920x1080p @ 50,60 | 3000 | 4200 |
2560x1440p @ 24,25,30 | 6000 | 8400 |
2560x1440p @ 50,60 | 9000 | 12600 |
3840x2160p @ 24,25,30 | 12000 | 16800 |
3840x2160p @ 50,60 | 18000 | 25200 |
চিত্র 2a: টার্গেট বিট্রেট
VOD এনকোডিং সেটিংস
অধিকাংশ ধরনের বিষয়বস্তুর জন্য সেটিংস
বেশিরভাগ বিষয়বস্তুর প্রকারের জন্য, আমরা বিটরেট ক্যাপ সহ সীমাবদ্ধ গুণমান (CQ) মোড ব্যবহার করার পরামর্শ দিই। বেশিরভাগ ভিডিওতে উচ্চ-মোশন দৃশ্যের মিশ্রণ রয়েছে (যেমন অ্যাকশন সিকোয়েন্স), এবং কম বিবরণ সহ দৃশ্য (যেমন কথোপকথন)। কঠিন ক্রমগুলির জন্য আরও বিট বরাদ্দ করার সময় CQ মোড এনকোডারকে দীর্ঘ, সহজ দৃশ্যের সময় (বিট নষ্ট না করে) একটি যুক্তিসঙ্গত মানের স্তর বজায় রাখার অনুমতি দেয়।
নীচের চার্টে নির্দেশিত গুণমানের মানগুলি ব্যবহার করে আমরা লক্ষ্যের 50% থেকে 150% পর্যন্ত বিটরেট পরিসরের অনুমতি দেওয়ারও সুপারিশ করি৷ এই মোডের জন্য দুই-পাস এনকোডিং প্রয়োজন, এবং নীচে নির্দেশিত হিসাবে HD এবং তার উপরে দ্রুত সেটিংস ব্যবহার করার পরামর্শ দেওয়া হয়।
CQ এনকোডিংয়ের জন্য এনকোডার সেটিংস
ফ্রেমের উচ্চতা | লক্ষ্য গুণমান (CQ) | এনকোডিং মোড |
---|---|---|
240 | 37 | TWO_PASS_MEDIUM |
360 | 36 | TWO_PASS_MEDIUM |
480 | 34 (নিম্ন মানের) বা 33 (মাঝারি মানের) | TWO_PASS_MEDIUM |
720 | 32 | TWO_PASS_FAST |
1080 | 31 | TWO_PASS_FAST |
1440 | 24 | TWO_PASS_FAST |
2160 | 15 | TWO_PASS_FAST |
চিত্র 2b: CQ প্রস্তাবিত সেটিংস
আমরা অবশেষে কীফ্রেমের মধ্যে 240 ফ্রেমের ভিডিও সুপারিশ করি (30fps সামগ্রীর জন্য এটি 8 সেকেন্ডে অনুবাদ করে)। কীফ্রেম হল ভিডিও ফ্রেম যা স্বয়ংসম্পূর্ণ; তারা রেন্ডার করার জন্য অন্য কোন ফ্রেমের উপর নির্ভর করে না (আরো বিস্তারিত ব্যাখ্যার জন্য GOP স্ট্রাকচার দেখুন)। ওয়েব এবং মোবাইল প্লেব্যাকের জন্য, আমরা কীফ্রেমের মধ্যে উদার ব্যবধানের অনুমতি দিই কারণ এটি এনকোডারকে সর্বোচ্চ গুণমান বাড়াতে কীফ্রেমের 'সেরা' স্থান নির্বাচন করতে দেয়।
উদাহরণ কমান্ড-লাইন প্যারামিটার: 640x360 ভিডিও
উপরে থেকে, 360p ভিডিওর জন্য সুপারিশগুলি নিম্নরূপ:
- 36 এর CQ স্তর (চিত্র 2b দেখুন)
- 276kbps এর টার্গেট বিটরেট (চিত্র 2a দেখুন)
- সর্বনিম্ন অনুমোদিত বিটরেট 138kbps (লক্ষ্যের 50%)
- সর্বাধিক অনুমোদিত বিটরেট 414kbps (লক্ষ্যের 150%)
- সর্বাধিক কীফ্রেমের ব্যবধান 240 সেকেন্ড
- দুই-পাস, "মাঝারি" প্রোফাইল
এটি libvpx এবং FFmpeg-এর জন্য নিম্নলিখিত কমান্ড-লাইন পরামিতি দেয়:
libvpx
--end-usage=cq --cq-level=36 --target-bitrate=276 --minsection-pct=50 \
--maxsection-pct=150 --kf-max-dist=240 --passes=2 --good --cpu-used=2
FFmpeg
-crf 36 -b:v 276k -minrate 138k -maxrate 414k -g 240 -good -speed 2
প্রিমিয়াম সামগ্রী সেটিংস
উপরের উদাহরণগুলিতে, আমরা দক্ষতার সাথে আমাদের ভিডিও স্ট্রীম তৈরি করতে মোটামুটি দ্রুত এনকোডিং সেটিংস ব্যবহার করেছি। যাইহোক, কিছু বিষয়বস্তুর জন্য (যেমন প্রিমিয়াম চলচ্চিত্র) উচ্চ মানের আউটপুট পেতে এনকোডিংয়ের সময় আরও বেশি সময় ব্যয় করা মূল্যবান।
প্রিমিয়াম সামগ্রীর জন্য, আমরা উপরের মত একই সেটিংসের সুপারিশ করি, কিন্তু বিভিন্ন প্রিসেট সহ, এনকোডারকে গুণমানের জন্য অপ্টিমাইজ করার জন্য আরও বেশি সময় ব্যয় করার নির্দেশ দিচ্ছি:
প্রিমিয়াম কন্টেন্ট এনকোডিং মোড এবং কমান্ড-লাইন প্যারামিটার
ফ্রেমের উচ্চতা | এনকোডিং মোড | libvpx | FFmpeg |
---|---|---|---|
240 | TWO_PASS_VERY_SLOW | --good --cpu-used 0 | -good -speed 0 |
360 | TWO_PASS_VERY_SLOW | --good --cpu-used 0 | -good -speed 0 |
480 | TWO_PASS_VERY_SLOW | --good --cpu-used 0 | -good -speed 0 |
720 | TWO_PASS_SLOW | --good --cpu-used 1 | -good -speed 1 |
1080 | TWO_PASS_MEDIUM | --good --cpu-used 2 | -good -speed 2 |
1440 | TWO_PASS_MEDIUM | --good --cpu-used 2 | -good -speed 2 |
2160 | TWO_PASS_MEDIUM | --good --cpu-used 2 | -good -speed 2 |
চিত্র 2c: প্রিমিয়াম সামগ্রী এনকোডিং মোড
খেলাধুলা, হাই মোশন কন্টেন্ট সেটিংস
আমরা ক্রীড়া সামগ্রীর জন্য VBR এনকোডিং সুপারিশ করি। খেলাধুলার উচ্চ গতি এবং জটিলতার একটি মোটামুটি সামঞ্জস্যপূর্ণ স্তর থাকে, এবং VBR ব্যবহার QP এনকোডিংয়ের চেয়ে কম গতির সময়কালে উচ্চ গুণমান অর্জন করে।
কমান্ড-লাইনের জন্য, QP এবং VBR মোডের মধ্যে প্রাথমিক পার্থক্য হল যে আপনি একটি CQ স্তর নির্দিষ্ট করবেন না; অন্যথায়, প্রস্তাবিত সেটিংস একই।
উদাহরণ VBR কমান্ড-লাইন প্যারামিটার: 640x360 ভিডিও
libvpx
--end-usage=vbr --target-bitrate=276 --minsection-pct=50 --maxsection-pct=150 \
--kf-max-dist=240 --passes=2 --good --cpu-used=2
FFmpeg
-b:v 276k -minrate 138k -maxrate 414k -g 240 -good -speed 2
অ্যানিমেশন এবং গেমিং সেটিংস
কোলাহলপূর্ণ / নিম্ন মানের সামগ্রী সেটিংস
কোলাহলপূর্ণ বিষয়বস্তুর জন্য, আমরা Alt-রেফ ফ্রেমের সংখ্যা এবং শক্তি বৃদ্ধি করার পরামর্শ দিই। বিকল্প রেফারেন্স ফ্রেমগুলি হল 'অদৃশ্য' ফ্রেম, ব্যবহারকারীকে কখনই দেখানো হয় না, তবে চূড়ান্ত ফ্রেম তৈরি করার সময় যেগুলি একটি রেফারেন্স হিসাবে ব্যবহৃত হয় (আপনি এখানে আরও তথ্য পড়তে পারেন)।
VP9-কে আরও alt-ref ফ্রেম ব্যবহার করার নির্দেশ দেওয়ার জন্য নিম্নলিখিত পরামিতিগুলি সুপারিশ করা হয়:
libvpx
--auto-alt-ref=1 --lag-in-frames-16 --arnr-maxframes=5 --arnr-strength=3
FFmpeg
10-বিট/এইচডিআর এনকোডিং
10-বিট এনকোডিংয়ের জন্য, আপনি VP9 প্রোফাইল 2 ব্যবহার করতে চাইবেন। 10-বিটে এনকোডিংয়ের জন্য আর কোনও বিট প্রয়োজন হয় না, তাই বাকি প্যারামিটারগুলি একই:
libvpx
--profile=2
FFmpeg
-profile 2
লাইভ এনকোডিং সেটিংস
লাইভ স্ট্রিমিং
লাইভ এনকোডিং সাধারণত সিবিআর হিসাবে করা হয়, যা এনকোডারের গুণমানকে সর্বাধিক করার ক্ষমতাকে সীমাবদ্ধ করে। এই কারণে, আমরা চিত্র 2a এ নির্দেশিত হিসাবে উচ্চতর বিটরেট ব্যবহার করব।
লাইভ এনকোডিংয়ের জন্য, আমরা থ্রেডিং সর্বাধিক করতে চাই। এটি দ্বারা করা হয়:
- VP9 কে ভিডিওটিকে কলামে বিভক্ত করার অনুমতি দেওয়া (যা 256 পিক্সেলের কম চওড়া হতে পারে না এবং এটি অবশ্যই দুটি শক্তি হতে হবে);
- আরও CPU পাওয়ার ব্যবহার করার জন্য VP9-কে নির্দেশ করা হচ্ছে। নিম্নলিখিত সারণী প্রতিটি রেজোলিউশনের জন্য সুপারিশ তালিকাভুক্ত করে।
টাইলিং এবং থ্রেডিং সুপারিশ
CQ এনকোডিংয়ের জন্য এনকোডার সেটিংস
ফ্রেমের আকার | টাইল-কলামের সংখ্যা | থ্রেড সংখ্যা |
---|---|---|
320x240 | 1 | 2 |
640x360 | 2 | 4 |
640x480 | 2 | 4 |
1280x720 | 4 | 8 |
1920x1080 | 4 | 8 |
2560x1440 | 8 | 16 |
3840x2160 | 8 | 16 |
চিত্র 2d. লাইভ এনকোডিংয়ের জন্য প্রস্তাবিত টাইলিং এবং থ্রেডিং
লাইভ এনকোডিং কার্যক্ষমতা নিশ্চিত করতে 'রিয়েলটাইম'-এ সময়সীমাও সেট করবে এবং ভবিষ্যতের দিকে নজর না দেওয়ার জন্য alt-রেফ ফ্রেমকে নির্দেশ দেবে (যা লেটেন্সি প্রবর্তন করবে):
এটি থেকে, লাইভ 360p ভিডিওর জন্য সুপারিশগুলি নিম্নরূপ:
- CBR, টার্গেট বিটরেট 386kbps (চিত্র 2a দেখুন)
- 2 টালি কলাম (চিত্র 2d দেখুন)
- 4টি থ্রেড (চিত্র 2d দেখুন)
- রিয়েল-টাইম কর্মক্ষমতা
- বিকল্প ফ্রেমের কারণে কোনো বিলম্ব নেই (কোন ফ্রেম ল্যাগ নেই)
এটি libvpx এবং FFmpeg-এর জন্য নিম্নলিখিত কমান্ড-লাইন পরামিতি দেয়:
libvpx
--end-usage=cbr --target-bitrate=386 --cpu-used=4 --tile-columns=2 --rt --lag-in-frames=0
FFmpeg
ffmpeg -i tears_of_steel_1080p.webm -vf scale=640x480 -r 29.97 -b:v 386k \
-minrate 386k -maxrate 386k -c:v libvpx-vp9 -c:a libopus output.webm