HLS এর মাধ্যমে লাইভ ইউটিউব কন্টেন্ট ডেলিভার করা

এই দস্তাবেজটি ব্যাখ্যা করে যে কীভাবে একটি এনকোডার থেকে YouTube-এ লাইভ ডেটা স্ট্রিম করতে HTTP লাইভ স্ট্রিমিং (HLS) প্রোটোকল ব্যবহার করতে হয়। এই নথিটি এনকোডার বিক্রেতাদের উদ্দেশ্যে যারা তাদের পণ্যগুলিতে HLS ইনজেশন সমর্থন যোগ করতে চান৷ HLS ইনজেশন প্রিমিয়াম কন্টেন্টের জন্য একটি ভাল পছন্দ যার জন্য অপেক্ষাকৃত বেশি লেটেন্সিতে উচ্চ মানের এবং উচ্চ রেজোলিউশন প্রয়োজন। YouTube লাইভ স্ট্রিমিং সমর্থন করে এমন বিভিন্ন ইনজেশন প্রোটোকলের সংক্ষিপ্ত তুলনার জন্য, YouTube লাইভ স্ট্রিমিং ইনজেশন প্রোটোকল তুলনা দেখুন।

HLS ব্যবহার করে লাইভ ডেটা স্ট্রীম করতে, এনকোডারকে HTTP PUT বা POST অনুরোধগুলি ব্যবহার করে YouTube-এর HLS এন্ডপয়েন্টে মিডিয়া প্লেলিস্ট এবং মিডিয়া সেগমেন্টের একটি সিরিজ পাঠাতে হবে। এনকোডারের দৃষ্টিকোণ থেকে, YouTube HLS এন্ডপয়েন্ট একটি প্যাসিভ HTTP সার্ভার বলে মনে হচ্ছে।

প্রতিটি মিডিয়া সেগমেন্ট এক থেকে চার সেকেন্ডের মধ্যে স্থায়ী স্ট্রিমের একটি সংক্ষিপ্ত অংশের জন্য প্রকৃত মাল্টিমিডিয়া বিষয়বস্তু উপস্থাপন করে। প্রতিটি মিডিয়া প্লেলিস্ট বর্ণনা করে কিভাবে মিডিয়া সেগমেন্টগুলিকে সঠিক স্ট্রিম ক্রমে পুনরায় একত্রিত করা যায়।

মিডিয়া ফরম্যাটের প্রয়োজনীয়তা

ভিডিও এবং অডিও সামগ্রীর জন্য YouTube HLS ইনজেশনের নিম্নলিখিত প্রয়োজনীয়তা রয়েছে:

  • ভিডিও এবং অডিও M2TS ফরম্যাটে মিক্স করা আবশ্যক।
  • সমর্থিত ভিডিও কোডেক হল H.264 এবং HEVC।
  • 60fps পর্যন্ত ফ্রেম রেট সমর্থিত।
  • শুধুমাত্র বন্ধ GOP সমর্থিত.
  • সমর্থিত অডিও কোডেক হল AAC, এবং শুধুমাত্র একক-ট্র্যাক অডিও সমর্থিত।

মিডিয়া সেগমেন্ট বিভাগে আরো বিস্তারিত প্রয়োজনীয়তা দেখুন।

এইচডিআর

হাই ডাইনামিক রেঞ্জ (HDR) ভিডিও HEVC কোডেক ব্যবহার করে সমর্থিত এবং নিম্নলিখিত অতিরিক্ত প্রয়োজনীয়তা রয়েছে:

  • সমর্থিত রঙের মান হল 10-বিট PQ এবং HLG অ ধ্রুবক আলো সহ। আরো নির্দিষ্টভাবে:
    • Chroma বিন্যাস অবশ্যই YUV 4:2:0 10-বিট হতে হবে।
    • স্থানান্তর ফাংশন অবশ্যই PQ (SMPTE ST 2084 নামেও পরিচিত) বা HLG (এছাড়াও ARIB STD-B67 নামে পরিচিত) হতে হবে।
    • রঙের প্রাথমিকগুলি অবশ্যই Rec হতে হবে। 2020
    • ম্যাট্রিক্স সহগ অবশ্যই Rec হতে হবে। 2020 অ ধ্রুবক আলো.
  • উভয় সীমিত-পরিসর (বা MPEG-পরিসীমা) এবং সম্পূর্ণ-রেঞ্জ (বা JPEG-পরিসীমা) নমুনা মান সমর্থিত। বিষয়বস্তু ব্যবহার করে নমুনা মান পরিসর অনুযায়ী পরিসীমা সেট করা গুরুত্বপূর্ণ। সীমিত-পরিসরের নমুনা মান সুপারিশ করা হয়।

একটি HLS ইনজেশন URL প্রাপ্ত করা

YouTube API থেকে একটি HLS ইনজেশন URL প্রাপ্ত করা

সম্পূর্ণ ইনজেশন URL পেতে, এনকোডাররা YouTube লাইভ স্ট্রিমিং এপিআই ব্যবহার করে নিম্নলিখিত বৈশিষ্ট্য সহ একটি লাইভস্ট্রিম সংস্থান সন্নিবেশ করতে পারে :

"cdn": {
  "ingestionType": "hls",
  "frameRate": "variable",
  "resolution": "variable"
}

API প্রতিক্রিয়াতে, cdn.ingestionInfo.ingestionAddress ফিল্ড প্রাথমিক ইনজেশন ইউআরএল নির্দিষ্ট করে এবং cdn.ingestionInfo.backupIngestionAddress ফিল্ড ব্যাকআপ ইনজেশন ইউআরএল নির্দিষ্ট করে। আরও বিস্তারিত জানার জন্য, liveStreams রিসোর্সের ডকুমেন্টেশন দেখুন।

YouTube ক্রিয়েটর স্টুডিও থেকে একটি HLS ইনজেশন URL প্রাপ্ত করা

YouTube ক্রিয়েটর স্টুডিও ওয়েব ইন্টারফেসে , নির্মাতা "স্ট্রিম তৈরি করুন" ক্লিক করার পরে, ইউটিউব একটি "স্ট্রীম কী" প্রদর্শন করে যার মধ্যে আলফানিউমেরিক অক্ষর এবং হাইফেন রয়েছে৷ এই গোপন কী স্রষ্টা এবং YouTube-এ স্ট্রীম উভয়কেই শনাক্ত করে৷

আপনি এই স্ট্রিম কী থেকে একটি HLS URL তৈরি করতে পারেন, নিম্নরূপ:

https://a.upload.youtube.com/http_upload_hls?cid=$STREAM_KEY&copy=0&file=

... যেখানে $STREAM_KEY হল ওয়েব ইন্টারফেসে প্রদর্শিত স্ট্রিম কী। যেমন: https://a.upload.youtube.com/http_upload_hls?cid=abcd-efgh-ijkl-mnop-qrst&copy=0&file=

অতিরিক্ত নির্ভরযোগ্যতার জন্য, আপনি এই ব্যাকআপ URL-এ ইনজেশনের একটি অপ্রয়োজনীয় দ্বিতীয় অনুলিপি প্রেরণ করতে পারেন:

https://b.upload.youtube.com/http_upload_hls?cid=$STREAM_KEY&copy=1&file=

মনে রাখবেন প্রাথমিক URL থেকে ব্যাকআপের দুটি পার্থক্য রয়েছে: হোস্টনাম এবং copy= প্যারামিটার উভয়ই পরিবর্তিত হয়েছে। ব্যাকআপ ইনজেশনকে অবশ্যই প্রাথমিক ইনজেশনের থেকে একটি আলাদা copy= প্যারামিটার মান পাঠাতে হবে যাতে স্ট্রীম নষ্ট না হয়।

HLS ইনজেশন URL সম্পূর্ণ করা হচ্ছে

উভয় পদ্ধতি ব্যবহার করে প্রাপ্ত URLগুলি অসম্পূর্ণ টেমপ্লেট; প্রতিটি একটি খালি file= ক্যোয়ারী প্যারামিটার দিয়ে শেষ হয়। চূড়ান্ত URL তৈরি করতে, এনকোডারকে অবশ্যই URL-এর শেষে একটি মিডিয়া প্লেলিস্ট বা মিডিয়া সেগমেন্টের ফাইলের নাম যুক্ত করতে হবে, এইভাবে file= প্যারামিটারটি সম্পূর্ণ করে।

নিম্নলিখিত নিয়মগুলি file= প্যারামিটারের মানের ক্ষেত্রে প্রযোজ্য:

  • এনকোডার আলফানিউমেরিক অক্ষর, আন্ডারস্কোর, ফরোয়ার্ড স্ল্যাশ, হাইফেন এবং পিরিয়ড থেকে একটি মিডিয়া প্লেলিস্ট বা মিডিয়া সেগমেন্ট ফাইলের নাম তৈরি করতে পারে; অন্য কোন অক্ষর সমর্থিত হয় না.
  • এনকোডার অবশ্যই ফাইলের নাম URL-এনকোড করবে না।
  • এনকোডার ফাইলের নামগুলিতে আপেক্ষিক বা পরম পাথ উপাদান অন্তর্ভুক্ত করতে পারে, যদিও এটি কখনই প্রয়োজন হয় না। যদি এনকোডার একটি মিডিয়া সেগমেন্ট ফাইলের নামের মধ্যে একটি পাথ উপাদান অন্তর্ভুক্ত করে, তাহলে এটি সংশ্লিষ্ট প্লেলিস্ট এন্ট্রিতে একই পথ উল্লেখ করতে হবে।

HLS প্রোটোকল প্রয়োজনীয়তা

এনকোডার দ্বারা পাঠানো মিডিয়া প্লেলিস্ট এবং মিডিয়া সেগমেন্টগুলিকে HTTP লাইভ স্ট্রিমিং 2য় সংস্করণের স্পেসিফিকেশনের সাথে সঙ্গতিপূর্ণ হতে হবে।

HLS স্পেসিফিকেশন দুটি ধরনের প্লেলিস্টকে সংজ্ঞায়িত করে: মিডিয়া প্লেলিস্ট এবং মাস্টার প্লেলিস্ট। যেহেতু ইউটিউব স্ট্রিম করা বিষয়বস্তুকে বিভিন্ন রেজোলিউশন এবং বিটরেটে ট্রান্সকোড করে, তাই এনকোডারকে বিভিন্ন বিটরেট সহ সামগ্রী YouTube-এ পাঠাতে হবে না। ফলস্বরূপ, YouTube শুধুমাত্র HLS ইনজেশনের জন্য মিডিয়া প্লেলিস্ট সমর্থন করে এবং মাস্টার প্লেলিস্ট উপেক্ষা করা হয়। (একটি মাস্টার প্লেলিস্ট ভেরিয়েন্ট স্ট্রিমগুলির একটি সেট সরবরাহ করে, যার প্রতিটি একই সামগ্রীর একটি ভিন্ন সংস্করণ বর্ণনা করে৷)

এনকোডার অবশ্যই:

  • আপনি ব্যবহারকারীদের (একক রেজোলিউশন এবং কোডেক) পরিবেশন করতে চান এমন সর্বোচ্চ রেজোলিউশন সহ ঠিক একটি এনকোডেড স্ট্রিম পাঠান।
  • mux অডিও এবং ভিডিও।
  • সমস্ত অনুরোধের জন্য HTTPS এবং একটি অবিরাম সংযোগ ব্যবহার করুন।

নিম্নলিখিত বিভাগগুলিতে মিডিয়া প্লেলিস্ট এবং মিডিয়া বিভাগগুলির জন্য আরও নির্দিষ্ট প্রয়োজনীয়তা রয়েছে৷

মিডিয়া প্লেলিস্ট

একটি মিডিয়া প্লেলিস্টে মিডিয়া সেগমেন্টগুলির একটি তালিকা রয়েছে যা একটি অবিচ্ছিন্ন, ডিকোডযোগ্য মাল্টিমিডিয়া স্ট্রিম উপস্থাপন করতে সংযুক্ত করা যেতে পারে। মিডিয়া প্লেলিস্ট সার্ভারকে বলে যে কোন মিডিয়া বিভাগগুলি আশা করবে এবং কীভাবে সেগুলিকে পুনরায় একত্রিত স্ট্রীমে সঠিকভাবে অর্ডার করতে হবে৷

প্রয়োজনীয়তা

  • মিডিয়া প্লেলিস্ট ফাইলের নাম অবশ্যই .m3u8 বা .m3u দিয়ে শেষ হতে হবে।

  • একটি স্ট্রিমের জন্য পাঠানো প্রথম মিডিয়া প্লেলিস্টটি অবশ্যই ক্রম নম্বর 0 থেকে শুরু হতে হবে এবং ক্রম সংখ্যাটি একঘেয়েভাবে বৃদ্ধি করতে হবে৷

  • EXT-X-MEDIA-SEQUENCE ট্যাগকে অবশ্যই প্লেলিস্টে তালিকাভুক্ত প্রথম মিডিয়া সেগমেন্টের ক্রম সংখ্যা চিহ্নিত করতে হবে৷

  • একটি মিডিয়া প্লেলিস্টে পাঁচটির বেশি অসামান্য সেগমেন্ট থাকা উচিত নয়৷ সার্ভার এটি গ্রহণ না করে বা এটির প্রাপ্তি স্বীকার না করলে একটি সেগমেন্ট অসামান্য।

    অসামান্য সেগমেন্ট ছাড়াও, প্রতিটি মিডিয়া প্লেলিস্টে কয়েকটি স্বীকৃত সেগমেন্টও অন্তর্ভুক্ত করুন। এই অনুশীলনটি সার্ভার সাইডে মিডিয়া প্লেলিস্ট হারিয়ে গেলে একটি সেগমেন্ট এড়িয়ে যাওয়ার সম্ভাবনা কম করে তোলে। উদাহরণস্বরূপ, আপনি প্রতিটি মিডিয়া প্লেলিস্টে দুটি পর্যন্ত স্বীকৃত বিভাগ এবং পাঁচটি পর্যন্ত অসামান্য সেগমেন্ট অন্তর্ভুক্ত করতে পারেন।

    নোট করুন যে সার্ভার সেই সেগমেন্টের আপলোডের উপর একটি 200 ( OK ) বা 202 ( Accepted ) প্রতিক্রিয়া ফিরিয়ে দিয়ে একটি মিডিয়া সেগমেন্টের প্রাপ্তি স্বীকার করে৷ একটি 202 প্রতিক্রিয়া নির্দেশ করে যে সার্ভারটি সেই বিভাগটিকে চিহ্নিতকারী একটি প্লেলিস্টের আগে সেগমেন্ট পেয়েছে।

  • প্রতিটি মিডিয়া সেগমেন্টের জন্য একটি আপডেট করা মিডিয়া প্লেলিস্ট পাঠান যাতে কোনো মিডিয়া প্লেলিস্ট হারিয়ে গেলে সার্ভার দ্রুত পুনরুদ্ধার করতে পারে।

  • যেহেতু সার্ভার মিডিয়া সেগমেন্টের প্রাপ্তি স্বীকার করে, আপনি মিডিয়া প্লেলিস্টটিকে খুব দীর্ঘ হওয়া থেকে রোধ করতে EXT-X-MEDIA-SEQUENCE ট্যাগ মান বৃদ্ধি করতে পারেন৷ উদাহরণস্বরূপ, যদি সার্ভার ইতিমধ্যেই প্রথম নয়টি মিডিয়া সেগমেন্টের প্রাপ্তি স্বীকার করে থাকে, তাহলে পরবর্তী মিডিয়া প্লেলিস্ট অষ্টম, নবম এবং দশম মিডিয়া সেগমেন্টের তালিকা করতে পারে।

  • EXT-X-KEY এবং EXT-X-SESSION-KEY ট্যাগ সমর্থিত নয়৷

উদাহরণ

নিম্নলিখিত তালিকাটি ফাইলগুলির একটি উদাহরণ দেখায় যা এনকোডার প্রেরণ করবে বলে আশা করা হচ্ছে:

Media Playlist file with seqnum #0
Media Segment file #0
Media Playlist file with seqnum #0-#1
Media Segment file #1
Media Playlist file with seqnum #0-#2
Media Segment file #2
Media Playlist file with seqnum #1-#3
Media Segment file #3
...

নিম্নলিখিত উদাহরণটি একটি লাইভ ভিডিও স্ট্রিমের মাঝখানে পাঠানো একটি মিডিয়া প্লেলিস্ট দেখায়৷ যেহেতু উদাহরণটি একটি স্ট্রিমের মাঝখানের, EXT-X-MEDIA-SEQUENCE ট্যাগের একটি অশূন্য মান রয়েছে৷

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:4
#EXT-X-MEDIA-SEQUENCE:2680

#EXTINF:3.975,
fileSequence2680.ts
#EXTINF:3.941,
fileSequence2681.ts
#EXTINF:3.975,
fileSequence2682.ts

মিডিয়া সেগমেন্ট

নিম্নলিখিত তালিকা মিডিয়া সেগমেন্টের জন্য প্রয়োজনীয়তা চিহ্নিত করে:

  • ফাইলের নাম
    • URL-এ মিডিয়া সেগমেন্ট ফাইলের নামগুলিতে .ts ফাইলের নাম এক্সটেনশন থাকতে হবে এবং প্লেলিস্টের ফাইলের নামগুলির সাথে অবশ্যই মিলতে হবে৷
    • এনকোডার রিবুট এবং স্ট্রিম রিস্টার্ট জুড়ে মিডিয়া সেগমেন্ট ফাইলের নাম অবশ্যই অনন্য হতে হবে।
  • বিন্যাস
    • মিডিয়া সেগমেন্টগুলি অবশ্যই M2TS ফর্ম্যাটে হতে হবে এবং স্ব-প্রবর্তিত হওয়া উচিত।
    • প্রতিটি M2TS সেগমেন্টে একটি একক MPEG-2 প্রোগ্রাম থাকতে হবে।
    • M2TS সেগমেন্টে একটি PAT এবং একটি PMT থাকতে হবে এবং একটি সেগমেন্টের প্রথম দুটি ট্রান্সপোর্ট স্ট্রিম প্যাকেট একটি PAT এবং একটি PMT হওয়া উচিত।
  • বিষয়বস্তু
    • ভিডিও এবং অডিও মিক্স করা আবশ্যক.
    • সমর্থিত ভিডিও কোডেক হল H.264 এবং HEVC।
    • HEVC সহ HDR সমর্থিত ( HDR প্রয়োজনীয়তা দেখুন)।
    • 60fps পর্যন্ত ফ্রেম রেট সমর্থিত।
    • শুধুমাত্র বন্ধ GOP সমর্থিত.
    • সমর্থিত অডিও কোডেক হল AAC, এবং শুধুমাত্র একক-ট্র্যাক অডিও সমর্থিত।
    • মিডিয়া সেগমেন্টগুলির একটি সময়কাল এক থেকে চার সেকেন্ডের মধ্যে থাকার সুপারিশ করা হয়, যেমনটি নিম্নলিখিত বিভাগে আলোচনা করা হয়েছে। মিডিয়া সেগমেন্টের সময়কাল 5 সেকেন্ডের বেশি হওয়া উচিত নয়।
    • মিডিয়া বিভাগগুলি শুধুমাত্র HTTPS-এর সাথে TLS/SSL স্তরে এনক্রিপ্ট করা আবশ্যক৷ অন্যান্য এনক্রিপশন প্রক্রিয়া সমর্থিত নয়।

মিডিয়া সেগমেন্টের সময়কাল

আমরা আশা করি যে উচ্চ মানের এবং উচ্চ রেজোলিউশনের প্রয়োজন এমন প্রিমিয়াম সামগ্রীর জন্য HLS ইনজেশন ব্যবহার করা হবে। HLS ইনজেশনের সাধারণত RTMP- এবং WebRTC-ভিত্তিক ইনজেশনের চেয়ে বেশি লেটেন্সি থাকে কারণ HLS ইনজেশন সেগমেন্ট-ভিত্তিক।

আমরা একটি মিডিয়া সেগমেন্টের সময়কাল এক থেকে চার সেকেন্ডের সুপারিশ করি কারণ ছোট মিডিয়া সেগমেন্টগুলি কম লেটেন্সি হতে পারে, যদিও একটি উচ্চ রিবাফার রেট এবং কম এনকোডিং দক্ষতার খরচে। পূর্ববর্তী বিভাগে উল্লিখিত হিসাবে, মিডিয়া সেগমেন্টগুলি 5 সেকেন্ডের বেশি হওয়া উচিত নয়।

বিট্রেটস

YouTube সহায়তা কেন্দ্র বিটরেট সেটিংসের জন্য নির্দেশিকা প্রদান করে।

মনে রাখবেন যে HEVC সাধারণত H.264 এর তুলনায় একই ভিডিও গুণমানে 25% থেকে 50% বেশি ডেটা কম্প্রেশন দেয়। যেমন, প্রস্তাবিত রেঞ্জের নীচের প্রান্তে বিটরেট মানগুলি ব্যান্ডউইথ সংরক্ষণ করতে HEVC-এর সাথে ব্যবহার করা যেতে পারে, যা বিশেষ করে 4K সামগ্রীর জন্য উপযোগী।

অন্যান্য প্রয়োজনীয়তা

  • এনকোডারগুলিকে নিম্নলিখিত সিনট্যাক্স ব্যবহার করে HTTP অনুরোধে User-Agent শিরোনাম সেট করা উচিত, যার মধ্যে প্রস্তুতকারকের নাম, মডেলের নাম এবং সংস্করণ রয়েছে:

    User-Agent: <manufacturer> / <model> / <version>
    

ক্লোজড ক্যাপশন

HLS ইনজেশন বন্ধ ক্যাপশন পাঠানোর জন্য দুটি বিকল্প সমর্থন করে:

  • আলাদা HTTP POST অনুরোধ ব্যবহার করে বন্ধ ক্যাপশন পাঠান। এটি সমস্ত HLS ইনজেশনের জন্য কাজ করে।
  • এমবেডেড 608/708 বন্ধ ক্যাপশনগুলি HLS ইনজেশনের সাথে কাজ করে যা H264 ভিডিও কোডেক ব্যবহার করে কিন্তু HEVC ভিডিও কোডেক ব্যবহার করে এমন ইনজেশনগুলির সাথে নয়। আরও বিশদ বিবরণের জন্য, YouTube সহায়তা কেন্দ্রে লাইভ ক্যাপশনের প্রয়োজনীয়তাগুলি দেখুন৷

HTTP প্রতিক্রিয়া কোড

নিম্নলিখিত বিভাগগুলি HLS ব্যবহার করে মিডিয়া সেগমেন্ট এবং মিডিয়া প্লেলিস্টগুলির প্রতিক্রিয়া হিসাবে YouTube ফেরত দেওয়া প্রতিক্রিয়া কোডগুলি ব্যাখ্যা করে৷

200 (ঠিক আছে)

একটি PUT বা POST অনুরোধের প্রতিক্রিয়া হিসাবে, একটি HTTP 200 (OK) প্রতিক্রিয়া নির্দেশ করে যে YouTube সার্ভার একটি প্রত্যাশিত অপারেশন পেয়েছে এবং এটি সফলভাবে পরিচালনা করেছে৷

একটি মুছে ফেলার অনুরোধের প্রতিক্রিয়া হিসাবে, একটি HTTP 200 (ওকে) প্রতিক্রিয়া নির্দেশ করে যে YouTube সার্ভার অনুরোধটি গ্রহণ করেছে এবং উপেক্ষা করেছে৷ YouTube সার্ভারের ক্লায়েন্টকে স্ট্রীমের কোনো সম্পদ মুছে ফেলার প্রয়োজন হয় না এবং এটি মুছে ফেলার অনুরোধ উপেক্ষা করে। পারফরম্যান্সের কারণে, YouTube ক্লায়েন্টদের ডিলিট না পাঠাতে পরামর্শ দেয়।

202 (স্বীকৃত)

একটি HTTP 202 (স্বীকৃত) প্রতিক্রিয়া নির্দেশ করে যে YouTube সার্ভার মিডিয়া সেগমেন্ট ধারণকারী একটি মিডিয়া প্লেলিস্ট পাওয়ার আগে মিডিয়া সেগমেন্ট পেয়েছে। এটি ক্লায়েন্টকে নির্দেশ করে যে সেগমেন্ট প্রক্রিয়াকরণে বিলম্ব রোধ করতে যত তাড়াতাড়ি সম্ভব মিডিয়া সেগমেন্ট ধারণকারী মিডিয়া প্লেলিস্ট পাঠাতে হবে। মনে রাখবেন যে এনকোডার প্রতিটি মিডিয়া সেগমেন্টের জন্য একটি আপডেট মিডিয়া প্লেলিস্ট পাঠালে এটি একটি সমস্যা হবে না।

400 (খারাপ অনুরোধ)

একটি HTTP 400 (খারাপ অনুরোধ) প্রতিক্রিয়া নিম্নলিখিত সমস্যাগুলির মধ্যে একটি নির্দেশ করে:

  • URLটি বিকৃত
  • প্লেলিস্ট পার্স করা যাবে না বা এতে অসমর্থিত ট্যাগ থাকবে না
401 (অননুমোদিত)

একটি HTTP 401 (অননুমোদিত) প্রতিক্রিয়া নির্দেশ করে যে YouTube HLS এন্ডপয়েন্টের জন্য বেস URL-এর cid প্যারামিটারটি দূষিত বা মেয়াদ শেষ হয়ে গেছে। এগিয়ে যাওয়ার জন্য ক্লায়েন্টকে cid প্যারামিটার আপডেট করতে হবে।

405 (পদ্ধতি অনুমোদিত নয়)

একটি HTTP 405 (পদ্ধতি অনুমোদিত নয়) প্রতিক্রিয়া নির্দেশ করে যে অনুরোধটি একটি POST, PUT, বা DELETE অনুরোধ ছিল না৷

500 (অভ্যন্তরীণ সার্ভার ত্রুটি)

একটি HTTP 500 (অভ্যন্তরীণ সার্ভার ত্রুটি) প্রতিক্রিয়া নির্দেশ করে যে সার্ভার অনুরোধটি প্রক্রিয়া করতে অক্ষম ছিল৷ এই ত্রুটির জন্য, আমরা সুপারিশ করছি যে আপনি সূচকীয় ব্যাকঅফের সাথে অনুরোধটি পুনরায় চেষ্টা করুন৷

,

এই দস্তাবেজটি ব্যাখ্যা করে যে কীভাবে একটি এনকোডার থেকে YouTube-এ লাইভ ডেটা স্ট্রিম করতে HTTP লাইভ স্ট্রিমিং (HLS) প্রোটোকল ব্যবহার করতে হয়। এই নথিটি এনকোডার বিক্রেতাদের উদ্দেশ্যে যারা তাদের পণ্যগুলিতে HLS ইনজেশন সমর্থন যোগ করতে চান৷ HLS ইনজেশন প্রিমিয়াম কন্টেন্টের জন্য একটি ভাল পছন্দ যার জন্য অপেক্ষাকৃত বেশি লেটেন্সিতে উচ্চ মানের এবং উচ্চ রেজোলিউশন প্রয়োজন। YouTube লাইভ স্ট্রিমিং সমর্থন করে এমন বিভিন্ন ইনজেশন প্রোটোকলের সংক্ষিপ্ত তুলনার জন্য, YouTube লাইভ স্ট্রিমিং ইনজেশন প্রোটোকল তুলনা দেখুন।

HLS ব্যবহার করে লাইভ ডেটা স্ট্রীম করতে, এনকোডারকে HTTP PUT বা POST অনুরোধগুলি ব্যবহার করে YouTube-এর HLS এন্ডপয়েন্টে মিডিয়া প্লেলিস্ট এবং মিডিয়া সেগমেন্টের একটি সিরিজ পাঠাতে হবে। এনকোডারের দৃষ্টিকোণ থেকে, YouTube HLS এন্ডপয়েন্ট একটি প্যাসিভ HTTP সার্ভার বলে মনে হচ্ছে।

প্রতিটি মিডিয়া সেগমেন্ট এক থেকে চার সেকেন্ডের মধ্যে স্থায়ী স্ট্রিমের একটি সংক্ষিপ্ত অংশের জন্য প্রকৃত মাল্টিমিডিয়া বিষয়বস্তু উপস্থাপন করে। প্রতিটি মিডিয়া প্লেলিস্ট বর্ণনা করে কিভাবে মিডিয়া সেগমেন্টগুলিকে সঠিক স্ট্রিম ক্রমে পুনরায় একত্রিত করা যায়।

মিডিয়া ফরম্যাটের প্রয়োজনীয়তা

ভিডিও এবং অডিও সামগ্রীর জন্য YouTube HLS ইনজেশনের নিম্নলিখিত প্রয়োজনীয়তা রয়েছে:

  • ভিডিও এবং অডিও M2TS ফরম্যাটে মিক্স করা আবশ্যক।
  • সমর্থিত ভিডিও কোডেক হল H.264 এবং HEVC।
  • 60fps পর্যন্ত ফ্রেম রেট সমর্থিত।
  • শুধুমাত্র বন্ধ GOP সমর্থিত.
  • সমর্থিত অডিও কোডেক হল AAC, এবং শুধুমাত্র একক-ট্র্যাক অডিও সমর্থিত।

মিডিয়া সেগমেন্ট বিভাগে আরো বিস্তারিত প্রয়োজনীয়তা দেখুন।

এইচডিআর

হাই ডাইনামিক রেঞ্জ (HDR) ভিডিও HEVC কোডেক ব্যবহার করে সমর্থিত এবং নিম্নলিখিত অতিরিক্ত প্রয়োজনীয়তা রয়েছে:

  • সমর্থিত রঙের মান হল 10-বিট PQ এবং HLG অ ধ্রুবক আলো সহ। আরো নির্দিষ্টভাবে:
    • Chroma বিন্যাস অবশ্যই YUV 4:2:0 10-বিট হতে হবে।
    • স্থানান্তর ফাংশন অবশ্যই PQ (SMPTE ST 2084 নামেও পরিচিত) বা HLG (এছাড়াও ARIB STD-B67 নামে পরিচিত) হতে হবে।
    • রঙের প্রাথমিকগুলি অবশ্যই Rec হতে হবে। 2020
    • ম্যাট্রিক্স সহগ অবশ্যই Rec হতে হবে। 2020 অ ধ্রুবক আলো.
  • উভয় সীমিত-পরিসর (বা MPEG-পরিসীমা) এবং সম্পূর্ণ-রেঞ্জ (বা JPEG-পরিসীমা) নমুনা মান সমর্থিত। বিষয়বস্তু ব্যবহার করে নমুনা মান পরিসর অনুযায়ী পরিসীমা সেট করা গুরুত্বপূর্ণ। সীমিত-পরিসরের নমুনা মান সুপারিশ করা হয়।

একটি HLS ইনজেশন URL প্রাপ্ত করা

YouTube API থেকে একটি HLS ইনজেশন URL প্রাপ্ত করা

সম্পূর্ণ ইনজেশন URL পেতে, এনকোডাররা YouTube লাইভ স্ট্রিমিং এপিআই ব্যবহার করে নিম্নলিখিত বৈশিষ্ট্য সহ একটি লাইভস্ট্রিম সংস্থান সন্নিবেশ করতে পারে :

"cdn": {
  "ingestionType": "hls",
  "frameRate": "variable",
  "resolution": "variable"
}

API প্রতিক্রিয়াতে, cdn.ingestionInfo.ingestionAddress ফিল্ড প্রাথমিক ইনজেশন ইউআরএল নির্দিষ্ট করে এবং cdn.ingestionInfo.backupIngestionAddress ফিল্ড ব্যাকআপ ইনজেশন ইউআরএল নির্দিষ্ট করে। আরও বিস্তারিত জানার জন্য, liveStreams রিসোর্সের ডকুমেন্টেশন দেখুন।

YouTube ক্রিয়েটর স্টুডিও থেকে একটি HLS ইনজেশন URL প্রাপ্ত করা

YouTube ক্রিয়েটর স্টুডিও ওয়েব ইন্টারফেসে , নির্মাতা "স্ট্রিম তৈরি করুন" ক্লিক করার পরে, ইউটিউব একটি "স্ট্রীম কী" প্রদর্শন করে যার মধ্যে আলফানিউমেরিক অক্ষর এবং হাইফেন রয়েছে৷ এই গোপন কী স্রষ্টা এবং YouTube-এ স্ট্রীম উভয়কেই শনাক্ত করে৷

আপনি এই স্ট্রিম কী থেকে একটি HLS URL তৈরি করতে পারেন, নিম্নরূপ:

https://a.upload.youtube.com/http_upload_hls?cid=$STREAM_KEY&copy=0&file=

... যেখানে $STREAM_KEY হল ওয়েব ইন্টারফেসে প্রদর্শিত স্ট্রিম কী। যেমন: https://a.upload.youtube.com/http_upload_hls?cid=abcd-efgh-ijkl-mnop-qrst&copy=0&file=

অতিরিক্ত নির্ভরযোগ্যতার জন্য, আপনি এই ব্যাকআপ URL-এ ইনজেশনের একটি অপ্রয়োজনীয় দ্বিতীয় অনুলিপি প্রেরণ করতে পারেন:

https://b.upload.youtube.com/http_upload_hls?cid=$STREAM_KEY&copy=1&file=

মনে রাখবেন প্রাথমিক URL থেকে ব্যাকআপের দুটি পার্থক্য রয়েছে: হোস্টনাম এবং copy= প্যারামিটার উভয়ই পরিবর্তিত হয়েছে। ব্যাকআপ ইনজেশনকে অবশ্যই প্রাথমিক ইনজেশনের থেকে একটি আলাদা copy= প্যারামিটার মান পাঠাতে হবে যাতে স্ট্রীম নষ্ট না হয়।

HLS ইনজেশন URL সম্পূর্ণ করা হচ্ছে

উভয় পদ্ধতি ব্যবহার করে প্রাপ্ত URLগুলি অসম্পূর্ণ টেমপ্লেট; প্রতিটি একটি খালি file= ক্যোয়ারী প্যারামিটার দিয়ে শেষ হয়। চূড়ান্ত URL তৈরি করতে, এনকোডারকে অবশ্যই URL-এর শেষে একটি মিডিয়া প্লেলিস্ট বা মিডিয়া সেগমেন্টের ফাইলের নাম যুক্ত করতে হবে, এইভাবে file= প্যারামিটারটি সম্পূর্ণ করে।

নিম্নলিখিত নিয়মগুলি file= প্যারামিটারের মানের ক্ষেত্রে প্রযোজ্য:

  • এনকোডার আলফানিউমেরিক অক্ষর, আন্ডারস্কোর, ফরোয়ার্ড স্ল্যাশ, হাইফেন এবং পিরিয়ড থেকে একটি মিডিয়া প্লেলিস্ট বা মিডিয়া সেগমেন্ট ফাইলের নাম তৈরি করতে পারে; অন্য কোন অক্ষর সমর্থিত হয় না.
  • এনকোডার অবশ্যই ফাইলের নাম URL-এনকোড করবে না।
  • এনকোডার ফাইলের নামগুলিতে আপেক্ষিক বা পরম পাথ উপাদান অন্তর্ভুক্ত করতে পারে, যদিও এটি কখনই প্রয়োজন হয় না। যদি এনকোডার একটি মিডিয়া সেগমেন্ট ফাইলের নামের মধ্যে একটি পাথ উপাদান অন্তর্ভুক্ত করে, তাহলে এটি সংশ্লিষ্ট প্লেলিস্ট এন্ট্রিতে একই পথ উল্লেখ করতে হবে।

HLS প্রোটোকল প্রয়োজনীয়তা

এনকোডার দ্বারা পাঠানো মিডিয়া প্লেলিস্ট এবং মিডিয়া সেগমেন্টগুলিকে HTTP লাইভ স্ট্রিমিং 2য় সংস্করণের স্পেসিফিকেশনের সাথে সঙ্গতিপূর্ণ হতে হবে।

HLS স্পেসিফিকেশন দুটি ধরনের প্লেলিস্টকে সংজ্ঞায়িত করে: মিডিয়া প্লেলিস্ট এবং মাস্টার প্লেলিস্ট। যেহেতু ইউটিউব স্ট্রিম করা বিষয়বস্তুকে বিভিন্ন রেজোলিউশন এবং বিটরেটে ট্রান্সকোড করে, তাই এনকোডারকে বিভিন্ন বিটরেট সহ সামগ্রী YouTube-এ পাঠাতে হবে না। ফলস্বরূপ, YouTube শুধুমাত্র HLS ইনজেশনের জন্য মিডিয়া প্লেলিস্ট সমর্থন করে এবং মাস্টার প্লেলিস্ট উপেক্ষা করা হয়। (একটি মাস্টার প্লেলিস্ট ভেরিয়েন্ট স্ট্রিমগুলির একটি সেট সরবরাহ করে, যার প্রতিটি একই সামগ্রীর একটি ভিন্ন সংস্করণ বর্ণনা করে৷)

এনকোডার অবশ্যই:

  • আপনি ব্যবহারকারীদের (একক রেজোলিউশন এবং কোডেক) পরিবেশন করতে চান এমন সর্বোচ্চ রেজোলিউশন সহ ঠিক একটি এনকোডেড স্ট্রিম পাঠান।
  • mux অডিও এবং ভিডিও।
  • সমস্ত অনুরোধের জন্য HTTPS এবং একটি অবিরাম সংযোগ ব্যবহার করুন।

নিম্নলিখিত বিভাগগুলিতে মিডিয়া প্লেলিস্ট এবং মিডিয়া বিভাগগুলির জন্য আরও নির্দিষ্ট প্রয়োজনীয়তা রয়েছে৷

মিডিয়া প্লেলিস্ট

একটি মিডিয়া প্লেলিস্টে মিডিয়া সেগমেন্টগুলির একটি তালিকা রয়েছে যা একটি অবিচ্ছিন্ন, ডিকোডযোগ্য মাল্টিমিডিয়া স্ট্রিম উপস্থাপন করতে সংযুক্ত করা যেতে পারে। মিডিয়া প্লেলিস্ট সার্ভারকে বলে যে কোন মিডিয়া বিভাগগুলি আশা করবে এবং কীভাবে সেগুলিকে পুনরায় একত্রিত স্ট্রীমে সঠিকভাবে অর্ডার করতে হবে৷

প্রয়োজনীয়তা

  • মিডিয়া প্লেলিস্ট ফাইলের নাম অবশ্যই .m3u8 বা .m3u দিয়ে শেষ হতে হবে।

  • একটি স্ট্রিমের জন্য পাঠানো প্রথম মিডিয়া প্লেলিস্টটি অবশ্যই ক্রম নম্বর 0 থেকে শুরু হতে হবে এবং ক্রম সংখ্যাটি একঘেয়েভাবে বৃদ্ধি করতে হবে৷

  • EXT-X-MEDIA-SEQUENCE ট্যাগকে অবশ্যই প্লেলিস্টে তালিকাভুক্ত প্রথম মিডিয়া সেগমেন্টের ক্রম সংখ্যা চিহ্নিত করতে হবে৷

  • একটি মিডিয়া প্লেলিস্টে পাঁচটির বেশি অসামান্য সেগমেন্ট থাকা উচিত নয়৷ সার্ভার এটি গ্রহণ না করে বা এটির প্রাপ্তি স্বীকার না করলে একটি সেগমেন্ট অসামান্য।

    অসামান্য সেগমেন্ট ছাড়াও, প্রতিটি মিডিয়া প্লেলিস্টে কয়েকটি স্বীকৃত সেগমেন্টও অন্তর্ভুক্ত করুন। এই অনুশীলনটি সার্ভার সাইডে মিডিয়া প্লেলিস্ট হারিয়ে গেলে একটি সেগমেন্ট এড়িয়ে যাওয়ার সম্ভাবনা কম করে তোলে। উদাহরণস্বরূপ, আপনি প্রতিটি মিডিয়া প্লেলিস্টে দুটি পর্যন্ত স্বীকৃত বিভাগ এবং পাঁচটি পর্যন্ত অসামান্য সেগমেন্ট অন্তর্ভুক্ত করতে পারেন।

    নোট করুন যে সার্ভার সেই সেগমেন্টের আপলোডের উপর একটি 200 ( OK ) বা 202 ( Accepted ) প্রতিক্রিয়া ফিরিয়ে দিয়ে একটি মিডিয়া সেগমেন্টের প্রাপ্তি স্বীকার করে৷ একটি 202 প্রতিক্রিয়া নির্দেশ করে যে সার্ভারটি সেই বিভাগটিকে চিহ্নিতকারী একটি প্লেলিস্টের আগে সেগমেন্ট পেয়েছে।

  • প্রতিটি মিডিয়া সেগমেন্টের জন্য একটি আপডেট করা মিডিয়া প্লেলিস্ট পাঠান যাতে কোনো মিডিয়া প্লেলিস্ট হারিয়ে গেলে সার্ভার দ্রুত পুনরুদ্ধার করতে পারে।

  • যেহেতু সার্ভার মিডিয়া সেগমেন্টের প্রাপ্তি স্বীকার করে, আপনি মিডিয়া প্লেলিস্টটিকে খুব দীর্ঘ হওয়া থেকে রোধ করতে EXT-X-MEDIA-SEQUENCE ট্যাগ মান বৃদ্ধি করতে পারেন৷ উদাহরণস্বরূপ, যদি সার্ভার ইতিমধ্যেই প্রথম নয়টি মিডিয়া সেগমেন্টের প্রাপ্তি স্বীকার করে থাকে, তাহলে পরবর্তী মিডিয়া প্লেলিস্ট অষ্টম, নবম এবং দশম মিডিয়া সেগমেন্টের তালিকা করতে পারে।

  • EXT-X-KEY এবং EXT-X-SESSION-KEY ট্যাগ সমর্থিত নয়৷

উদাহরণ

নিম্নলিখিত তালিকাটি ফাইলগুলির একটি উদাহরণ দেখায় যা এনকোডারটি প্রেরণ করবে বলে আশা করা হচ্ছে:

Media Playlist file with seqnum #0
Media Segment file #0
Media Playlist file with seqnum #0-#1
Media Segment file #1
Media Playlist file with seqnum #0-#2
Media Segment file #2
Media Playlist file with seqnum #1-#3
Media Segment file #3
...

নিম্নলিখিত উদাহরণটি একটি লাইভ ভিডিও স্ট্রিমের মাঝখানে পাঠানো একটি মিডিয়া প্লেলিস্ট দেখায়৷ যেহেতু উদাহরণটি একটি স্ট্রিমের মাঝখানের, EXT-X-MEDIA-SEQUENCE ট্যাগের একটি অশূন্য মান রয়েছে৷

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:4
#EXT-X-MEDIA-SEQUENCE:2680

#EXTINF:3.975,
fileSequence2680.ts
#EXTINF:3.941,
fileSequence2681.ts
#EXTINF:3.975,
fileSequence2682.ts

মিডিয়া সেগমেন্ট

নিম্নলিখিত তালিকা মিডিয়া সেগমেন্টের জন্য প্রয়োজনীয়তা চিহ্নিত করে:

  • ফাইলের নাম
    • URL-এ মিডিয়া সেগমেন্ট ফাইলের নামগুলিতে .ts ফাইলের নাম এক্সটেনশন থাকতে হবে এবং প্লেলিস্টের ফাইলের নামগুলির সাথে অবশ্যই মিলতে হবে৷
    • এনকোডার রিবুট এবং স্ট্রিম রিস্টার্ট জুড়ে মিডিয়া সেগমেন্ট ফাইলের নাম অবশ্যই অনন্য হতে হবে।
  • বিন্যাস
    • মিডিয়া সেগমেন্টগুলি অবশ্যই M2TS ফর্ম্যাটে হতে হবে এবং স্ব-প্রবর্তিত হওয়া উচিত।
    • প্রতিটি M2TS সেগমেন্টে একটি একক MPEG-2 প্রোগ্রাম থাকতে হবে।
    • M2TS সেগমেন্টে একটি PAT এবং একটি PMT থাকতে হবে এবং একটি সেগমেন্টের প্রথম দুটি ট্রান্সপোর্ট স্ট্রিম প্যাকেট একটি PAT এবং একটি PMT হওয়া উচিত।
  • বিষয়বস্তু
    • ভিডিও এবং অডিও মিক্স করা আবশ্যক.
    • সমর্থিত ভিডিও কোডেক হল H.264 এবং HEVC।
    • HEVC সহ HDR সমর্থিত ( HDR প্রয়োজনীয়তা দেখুন)।
    • 60fps পর্যন্ত ফ্রেম রেট সমর্থিত।
    • শুধুমাত্র বন্ধ GOP সমর্থিত.
    • সমর্থিত অডিও কোডেক হল AAC, এবং শুধুমাত্র একক-ট্র্যাক অডিও সমর্থিত।
    • মিডিয়া সেগমেন্টগুলির একটি সময়কাল এক থেকে চার সেকেন্ডের মধ্যে থাকার সুপারিশ করা হয়, যেমনটি নিম্নলিখিত বিভাগে আলোচনা করা হয়েছে। মিডিয়া সেগমেন্টের সময়কাল 5 সেকেন্ডের বেশি হওয়া উচিত নয়।
    • মিডিয়া বিভাগগুলি শুধুমাত্র HTTPS-এর সাথে TLS/SSL স্তরে এনক্রিপ্ট করা আবশ্যক৷ অন্যান্য এনক্রিপশন প্রক্রিয়া সমর্থিত নয়।

মিডিয়া সেগমেন্টের সময়কাল

আমরা আশা করি যে উচ্চ মানের এবং উচ্চ রেজোলিউশনের প্রয়োজন এমন প্রিমিয়াম সামগ্রীর জন্য HLS ইনজেশন ব্যবহার করা হবে। HLS ইনজেশনের সাধারণত RTMP- এবং WebRTC-ভিত্তিক ইনজেশনের চেয়ে বেশি লেটেন্সি থাকে কারণ HLS ইনজেশন সেগমেন্ট-ভিত্তিক।

আমরা একটি মিডিয়া সেগমেন্টের সময়কাল এক থেকে চার সেকেন্ডের সুপারিশ করি কারণ ছোট মিডিয়া সেগমেন্টগুলি কম লেটেন্সি হতে পারে, যদিও একটি উচ্চ রিবাফার রেট এবং কম এনকোডিং দক্ষতার খরচে। পূর্ববর্তী বিভাগে উল্লিখিত হিসাবে, মিডিয়া সেগমেন্টগুলি 5 সেকেন্ডের বেশি হওয়া উচিত নয়।

বিট্রেটস

YouTube সহায়তা কেন্দ্র বিটরেট সেটিংসের জন্য নির্দেশিকা প্রদান করে।

মনে রাখবেন যে HEVC সাধারণত H.264 এর তুলনায় একই ভিডিও গুণমানে 25% থেকে 50% বেশি ডেটা কম্প্রেশন দেয়। যেমন, প্রস্তাবিত রেঞ্জের নীচের প্রান্তে বিটরেট মানগুলি ব্যান্ডউইথ সংরক্ষণ করতে HEVC-এর সাথে ব্যবহার করা যেতে পারে, যা বিশেষ করে 4K সামগ্রীর জন্য উপযোগী।

অন্যান্য প্রয়োজনীয়তা

  • এনকোডারগুলিকে নিম্নলিখিত সিনট্যাক্স ব্যবহার করে HTTP অনুরোধে User-Agent শিরোনাম সেট করা উচিত, যার মধ্যে প্রস্তুতকারকের নাম, মডেলের নাম এবং সংস্করণ রয়েছে:

    User-Agent: <manufacturer> / <model> / <version>
    

ক্লোজড ক্যাপশন

HLS ইনজেশন বন্ধ ক্যাপশন পাঠানোর জন্য দুটি বিকল্প সমর্থন করে:

  • আলাদা HTTP POST অনুরোধ ব্যবহার করে বন্ধ ক্যাপশন পাঠান। এটি সমস্ত HLS ইনজেশনের জন্য কাজ করে।
  • এমবেডেড 608/708 বন্ধ ক্যাপশনগুলি HLS ইনজেশনের সাথে কাজ করে যা H264 ভিডিও কোডেক ব্যবহার করে কিন্তু HEVC ভিডিও কোডেক ব্যবহার করে এমন ইনজেশনগুলির সাথে নয়। আরও বিশদ বিবরণের জন্য, YouTube সহায়তা কেন্দ্রে লাইভ ক্যাপশনের প্রয়োজনীয়তাগুলি দেখুন৷

HTTP প্রতিক্রিয়া কোড

নিম্নলিখিত বিভাগগুলি HLS ব্যবহার করে মিডিয়া সেগমেন্ট এবং মিডিয়া প্লেলিস্টগুলির প্রতিক্রিয়া হিসাবে YouTube ফেরত দেওয়া প্রতিক্রিয়া কোডগুলি ব্যাখ্যা করে৷

200 (ঠিক আছে)

একটি PUT বা POST অনুরোধের প্রতিক্রিয়া হিসাবে, একটি HTTP 200 (OK) প্রতিক্রিয়া নির্দেশ করে যে YouTube সার্ভার একটি প্রত্যাশিত অপারেশন পেয়েছে এবং এটি সফলভাবে পরিচালনা করেছে৷

একটি মুছে ফেলার অনুরোধের প্রতিক্রিয়া হিসাবে, একটি HTTP 200 (ওকে) প্রতিক্রিয়া নির্দেশ করে যে YouTube সার্ভার অনুরোধটি গ্রহণ করেছে এবং উপেক্ষা করেছে৷ YouTube সার্ভারের ক্লায়েন্টকে স্ট্রীমের কোনো সম্পদ মুছে ফেলার প্রয়োজন হয় না এবং এটি মুছে ফেলার অনুরোধ উপেক্ষা করে। পারফরম্যান্সের কারণে, YouTube ক্লায়েন্টদের ডিলিট না পাঠাতে পরামর্শ দেয়।

202 (স্বীকৃত)

একটি HTTP 202 (স্বীকৃত) প্রতিক্রিয়া নির্দেশ করে যে YouTube সার্ভার মিডিয়া সেগমেন্ট ধারণকারী একটি মিডিয়া প্লেলিস্ট পাওয়ার আগে মিডিয়া সেগমেন্ট পেয়েছে। এটি ক্লায়েন্টকে নির্দেশ করে যে সেগমেন্ট প্রক্রিয়াকরণে বিলম্ব রোধ করতে যত তাড়াতাড়ি সম্ভব মিডিয়া সেগমেন্ট ধারণকারী মিডিয়া প্লেলিস্ট পাঠাতে হবে। মনে রাখবেন যে এনকোডার প্রতিটি মিডিয়া সেগমেন্টের জন্য একটি আপডেট মিডিয়া প্লেলিস্ট পাঠালে এটি একটি সমস্যা হবে না।

400 (খারাপ অনুরোধ)

একটি HTTP 400 (খারাপ অনুরোধ) প্রতিক্রিয়া নিম্নলিখিত সমস্যাগুলির মধ্যে একটি নির্দেশ করে:

  • URLটি বিকৃত
  • প্লেলিস্ট পার্স করা যাবে না বা এতে অসমর্থিত ট্যাগ থাকবে না
401 (অননুমোদিত)

একটি HTTP 401 (অননুমোদিত) প্রতিক্রিয়া নির্দেশ করে যে YouTube HLS এন্ডপয়েন্টের জন্য বেস URL-এর cid প্যারামিটারটি দূষিত বা মেয়াদ শেষ হয়ে গেছে। এগিয়ে যাওয়ার জন্য ক্লায়েন্টকে cid প্যারামিটার আপডেট করতে হবে।

405 (পদ্ধতি অনুমোদিত নয়)

একটি HTTP 405 (পদ্ধতি অনুমোদিত নয়) প্রতিক্রিয়া নির্দেশ করে যে অনুরোধটি একটি POST, PUT, বা DELETE অনুরোধ ছিল না৷

500 (অভ্যন্তরীণ সার্ভার ত্রুটি)

একটি HTTP 500 (অভ্যন্তরীণ সার্ভার ত্রুটি) প্রতিক্রিয়া নির্দেশ করে যে সার্ভার অনুরোধটি প্রক্রিয়া করতে অক্ষম ছিল৷ এই ত্রুটির জন্য, আমরা সুপারিশ করছি যে আপনি সূচকীয় ব্যাকঅফের সাথে অনুরোধটি পুনরায় চেষ্টা করুন৷