SCTE मार्कर मुख्य रूप से वीडियो आउटपुट में विज्ञापन डालने के लिए रिसीवर (जैसे स्ट्रीमिंग सर्वर) को यह संकेत देने के लिए उपयोग किए जाते हैं कि विज्ञापन कब और कितनी अवधि के लिए डाले जाएँ। इससे तीसरे पक्ष के सिस्टम को डेटाबेस से विज्ञापनों को गतिशील रूप से चुनने की अनुमति मिलती है। आप सामान्य रूप से SCTE-35 के बारे में और अधिक पढ़ सकते हैं। इस वेबसाइट पर.
इस लेख में:
→ परिचय
→ SCTE-35 मार्कर उदाहरण
→ स्थानीय रूप से SCTE-35 मार्कर का परीक्षण करें
→ निम्बल स्ट्रीमर में SCTE-35 मार्कर का परीक्षण
→ अतिरिक्त जानकारी
परिचय
हम यह भी अनुशंसा करते हैं SCTE पर हमारा सामान्य लेख.
आप PLAYDECK में SCTE मार्कर को 4 विभिन्न ऑब्जेक्ट्स से संलग्न कर सकते हैं:
– क्लिप्स (कोई भी स्थिति)
– ब्लॉक (शुरुआत और अंत)
– ओवरले (दिखाएँ और छिपाएँ)
– क्रियाएँ बटन
आपको पूर्वनिर्धारित SCTE मार्कर प्रदान करने के बजाय, हमने एक अलग दृष्टिकोण अपनाया: आपको अपना खुद का SCTE मार्कर लिखना होगा। यह थोड़ी सी सीखने की प्रक्रिया हो सकती है, लेकिन अंत में यह कहीं अधिक लचीला है। इसका फायदा यह है कि आप हमेशा सभी रिसीवरों के साथ संगत रहेंगे। क्लिप की अवधि और अन्य “चर” इकट्ठा करने के लिए हम कुछ “प्लेसहोल्डर” प्रदान करते हैं।.
कृपया ध्यान दें कि आपके स्ट्रीम विकल्पों में SCTE सक्षम होना चाहिए:

SCTE-35 मार्कर उदाहरण
आइए कुछ SCTE-35 के नमूने देखें। यह SCTE-35 का सबसे अधिक उपयोग किया जाने वाला रूप है जिसे “स्प्लाइसिंग” कहा जाता है।.
नोट: यहाँ प्रस्तुत SCTE-35 प्रारूप Nimble Streamer के साथ सबसे अच्छा काम करता है (नीचे देखें)। आपके स्ट्रीम सर्वर के आधार पर, यह प्रारूप अलग हो सकता है। अपने प्रदाता से पूछें।.
यह एक विज्ञापन डालकर दिए गए समय के बाद स्वचालित रूप से आपके प्रोग्राम में वापस लौट जाएगा। आपके वर्तमान चल रहे क्लिप के लिए प्लेडेक द्वारा यह अवधि स्वचालित रूप से सेट की जाएगी। इसे {blockduration} या किसी मैनुअल मान से बदला जा सकता है। यदि आप अवधि के लिए मैनुअल मान चुनते हैं, तो सूत्र है: CLIP DURATION को 90000 से गुणा करके पूर्णांकित करना। इसके पीछे का कारण यह है कि 90000 वह डिफ़ॉल्ट टाइमस्केल है जिसका उपयोग अधिकांश SCTE सिस्टम करते हैं। उदाहरण: क्लिप 12.4 सेकंड की है, तो SCTE अवधि 1116000 होगी।.
अवधि भेजने के बजाय, आप विज्ञापन की शुरुआत और अंत के लिए दो अलग-अलग SCTE मार्कर भी भेज सकते हैं। इन्हें CUE-OUT (विज्ञापन के लिए अपने प्रोग्राम से बाहर जाना) और CUE-IN (अपने प्रोग्राम में वापस आना) कहा जाता है।.
जैसा कि आपने शायद पहले ही देखा होगा, एकमात्र अंतर “outOfNetworkIndicator” का 1 (CUE-OUT) और 0 (CUE-IN) होना है। SCTE सिस्टम स्वयं “spliceEventId” के आधार पर दोनों मार्करों को जोड़ेगा।.
नोट: समर्थित प्लेसहोल्डर हैं: {timestamp} {timestampunix} {airtimenext} {airtimenextunix} {plannednext} {plannednextunix} {clipid} {blockid} {blockduration} {clipduration}
स्थानीय रूप से SCTE-35 मार्कर का परीक्षण करें
PLAYDECK खोलें। अभी आपको कोई क्लिप लोड करने की आवश्यकता नहीं है। किसी भी ACTION बटन पर राइट-क्लिक करें, एक नया Action बनाएँ और COMMANDS/SCTE चुनें:

SCTE-35 पर क्लिक करके SCTE-35 सैंपल टैग डालें। पॉपअप को OK (दो बार) पर क्लिक करके बंद करें।

अब हम किसी भी संगत स्ट्रीम (UDP, DVB, SRT) पर SCTE-35 टैग भेज सकते हैं। यदि आप अभी एक्शन पर क्लिक करेंगे, तो कुछ नहीं होगा, क्योंकि हमारे पास अभी कोई स्ट्रीम नहीं है।.
आइए एक टेस्ट UDP स्ट्रीम बनाएँ, जहाँ हम बस आउटपुट को एक फ़ाइल में भेजते हैं, ताकि हमें सर्वर से जुड़ी झंझट (अभी) न झेलनी पड़े। निम्नलिखित सेटिंग्स कॉपी करें और START NOW से स्ट्रीम शुरू करें। “Parameter” के साथ SCTE-35 को सक्षम करना न भूलें:

हम अपना Sample SCTE-35 टैग अब स्ट्रीम पर भेजना चाहते हैं। इसलिए सेटिंग्स बंद करें और अपने एक्शन बटन को कई बार क्लिक करें, फिर सेटिंग्स में वापस जाएँ और STOP NOW से अपनी स्ट्रीम रोकें।.
आपके SCTE-35 टैग्स PLAYDECK द्वारा लॉग किए गए हैं। आप लॉग्स देख सकते हैं, यदि आप Action Button पर अपने SCTE-35 कोड पर वापस जाते हैं और OPEN EVENT LOGS पर क्लिक करते हैं:

आप अपनी रिकॉर्ड की गई स्ट्रीम में मौजूद SCTE-35 टैग्स को भी दिखाई देने योग्य बना सकते हैं। इसके लिए हमें “DVBInspector” नामक एक अलग टूल की आवश्यकता है। इस टूल को चलाने के लिए JAVA रनटाइम भी चाहिए, इसलिए दोनों डाउनलोड करें:
इस टूल के लिए JAVA रनटाइम आवश्यक है। यदि यह पहले से स्थापित नहीं है, तो आप इसे यहाँ डाउनलोड कर सकते हैं:
https://www.oracle.com/java/technologies/downloads/
अब अपने “DVBinspector-1.18.0-dist.zip” (या इसी तरह का) को अनज़िप करें और “DVBinspector-1.18.0.jar” को चलाएँ। फिर अपनी TS फ़ाइल को एप्लिकेशन पर ड्रैग और ड्रॉप करें। अपना SCTE मार्कर देखने के लिए निम्नलिखित क्रम में ट्री खोलें।.

निम्बल स्ट्रीमर में SCTE-35 मार्कर का परीक्षण
Nimble Streamer हमारी पसंदीदा स्ट्रीमिंग सेवा है। यह लागत-कुशल है, सेटअप और रखरखाव में आसान है, लेकिन उन्नत उपयोग मामलों के लिए इसमें गहराई से जटिलताएँ भी मौजूद हैं:
PLAYDECK जिस मशीन पर चल रहा है, उसी पर Nimble का 14-दिन का ट्रायल संस्करण इंस्टॉल करें। यह अनिवार्य नहीं है, लेकिन इससे चीजें सरल हो जाती हैं, क्योंकि आपको नेटवर्क सेटअप की झंझट नहीं उठानी पड़ती। आपसे Nimble द्वारा WMSPanel पर एक खाता बनाने के लिए भी कहा जाएगा, जो Nimble के लिए एक वेब-आधारित सेटअप टूल है, क्योंकि Nimble Streamer स्वयं बिना यूज़र इंटरफ़ेस के इंस्टॉल होता है।.
जानकारी: इस SCTE-35 नमूने को चलाने के लिए, यदि आप इसे लाइव इंस्टॉलेशन पर परीक्षण करते हैं, तो आपको “Nimble Live Transcoder” या “Nimble Advertizer” प्लगइन्स की आवश्यकता नहीं है। ये ट्रायल इंस्टॉलेशन में डिफ़ॉल्ट रूप से अक्षम होते हैं।.
एक बार जब आप Nimble को चला लेते हैं, तो एक और कॉन्फ़िगरेशन है जिसे आपको मैन्युअल रूप से करना होगा। यहाँ Nimble सर्वर कॉन्फ़िगरेशन फ़ाइल खोलें:
सी:\प्रोग्राम फाइल्स\निम्बल स्ट्रिमर\कॉन्फ\निम्बल.कॉन्फ
इस फ़ाइल के अंत में निम्नलिखित पंक्तियाँ जोड़ें और फ़ाइल सहेजें।.
scte35_processing_enabled = true
scte35_forwarding_enabled = true
hls_ad_scte35_forwarding_enabled = true
hls_ad_marker_format = cue
hls_ad_splice_out_cont_marker_enabled = true
महत्वपूर्ण: आपको अब Nimble को पुनः आरंभ करना होगा, इसके लिए या तो अपना पीसी पुनः आरंभ करें या Windows सेवा “Nimble Streamer” को मैन्युअल रूप से पुनः आरंभ करें।.
यहाँ फिर से लाइनें हैं, लेकिन आपके लिए टिप्पणियों के साथ (इनका उपयोग न करें):
scte35_processing_enabled = true // सामान्य रूप से SCTE मॉड्यूल को सक्षम करता है। अन्य सभी विकल्पों के लिए आवश्यक है
scte35_forwarding_enabled = true // लाइव ट्रांसकोडर के माध्यम से SCTE-35 मार्करों को पास करने की अनुमति देता है
hls_ad_scte35_forwarding_enabled = true // HLS स्ट्रीम में SCTE-35 मार्करों को फॉरवर्ड करना सक्षम करता है
hls_ad_marker_format = cue // Nimble को CUE-OUT और CUE-IN मार्करों का उपयोग करने के लिए सेट करता है
hls_ad_splice_out_cont_marker_enabled = true // EXT-X-CUE-OUT-CONT के स्वचालित सम्मिलन को सक्षम करता है
अब आइए WMSPanel में आपके Streams सेटअप करें:
सबसे पहले हम अपनी इनकमिंग स्ट्रीम को परिभाषित करेंगे। मेनू में “Nimble Streamer” पर जाएँ, “MPEGTS In” चुनें और “Add UDP stream” बटन पर क्लिक करें, फिर इस तरह इनकमिंग स्ट्रीम जोड़ें। यदि पोर्ट 5001 पहले से उपयोग में हो तो आप कोई अन्य पोर्ट उपयोग कर सकते हैं।.

अगले हम आउटगोइंग स्ट्रीम प्रारूप सेटअप करने जा रहे हैं। हम यहाँ SCTE मार्कर का UDP से HLS में रूपांतरण दिखाने के लिए HLS का उपयोग करना चाहते हैं। उसी पेज पर “MPEGTS Out” पर जाएँ और “Add outgoing stream” बटन पर क्लिक करें, फिर इस तरह जोड़ें। सुनिश्चित करें कि आपने अपनी इनपुट स्ट्रीम को वीडियो और ऑडियो स्रोत के रूप में चुना है।.

अगला हम PLAYDECK में अपनी सेटअप जारी रखते हैं। Stream Output Settings में जाएँ और Stream URL को “udp://127.0.0.1:5001” में बदलें।.
जानकारी: आप अपनी पसंद का कोई भी वीडियो कोडेक चुन सकते हैं। इस मामले में मैंने एनकोडिंग के लिए NVIDIA GPU का उपयोग करने हेतु H.264 चुना, जिससे मेरा CPU उपयोग कम हो जाएगा। साथ ही “Parameter” के साथ SCTE-35 को भी सक्षम करें।.

जानकारी: कृपया ध्यान दें कि PLAYDECK सीधे HLS स्ट्रीम करने में सक्षम नहीं है। यदि आप “Apple HTTP Live Streaming” को स्ट्रीमिंग फॉर्मेट के रूप में चुनते हैं, तो आउटपुट एक फ़ाइल में लिखा जाएगा। इसलिए आपको “Stream URL” के रूप में एक फ़ाइल लक्ष्य निर्दिष्ट करना होगा, उदाहरण के लिए “c:\Users\Public\Documents\stream.m3u8”। फिर किसी भी स्ट्रीमिंग सर्वर का उपयोग करके स्ट्रीम करने के लिए उस फ़ाइल का उपयोग करें। PLAYDECK HLS मैनिफेस्ट फ़ाइल (*.3u8 फ़ाइल) में HLS SCTE टैग नहीं लिख पाता है।.
अगला हम चाहते हैं कि PLAYDECK स्वचालित रूप से SCTE भेजे, सिर्फ बटन के माध्यम से नहीं बल्कि क्लिप से संबंधित। तो हम कोई भी क्लिप डालते हैं और टूलबार में COMMANDS आइकन पर क्लिक करते हैं, फिर एक नया कमांड जोड़ते हैं, PLAY TIME 0 चुनते हैं, फिर SCTE-35 नमूना डालते हैं:

जानकारी: आप ब्लॉक्स, ओवरले और एक्शन बटनों में SCTE मार्कर भी जोड़ सकते हैं।.
अब चलिए काम शुरू करते हैं: प्लेडेक सेटिंग्स में क्लिप को CUE और PLAY करें तथा स्ट्रीम शुरू करें। WMSPanel पर जाएँ और मेनू से “Nimble Streamer” विकल्प “Live Streams” खोलें। अब आप एक चल रही लाइव स्ट्रीम देखेंगे। उस पर क्लिक करें और दाईं ओर सबसे अंत में मौजूद प्रश्नचिह्न पर क्लिक करें, जैसे यहाँ दिखाया गया है।.

“URLs to play” की सूची से उस URL को चुनें जिसका अंत “playlist.m3u8” हो और “Copy” पर क्लिक करें। अब इस URL को किसी भी ब्राउज़र में पेस्ट करें जिसमें HLS प्लेयर एकीकृत या इंस्टॉल हो। इस उदाहरण के लिए हम निम्नलिखित HSL प्लेयर एक्सटेंशन के साथ Chrome ब्राउज़र का उपयोग कर रहे हैं:
https://chromewebstore.google.com/detail/hls-player-m3u8-streaming/eakdijdofmnclopcffkkgmndadhbjgka
एक बार जब आप उस URL को CHROME में पोस्ट करेंगे, तो आप तुरंत अपनी PLAYDECK स्ट्रीम को चलता हुआ देखेंगे। अब मैं आपको दिखाता हूँ कि आप अपने SCTE मार्कर की निगरानी कैसे करें। Chrome में Developer Tools खोलने के लिए F12 दबाएँ। ऊपर “Network” टैब पर क्लिक करें। अब आप कई “chunks.m3u8” देखेंगे, जो आपकी स्ट्रीम का हिस्सा हैं। Chunk फ़ाइलों में से किसी एक पर क्लिक करें (जिसे HLS मैनिफ़ेस्ट भी कहा जाता है) और उसके बगल में “Preview” चुनें। अब आप HLS SCTE टैग देखेंगे। यदि यह वहां नहीं है, तो किसी अन्य चंक पर क्लिक करें, क्योंकि हम SCTE केवल क्लिप शुरू होने पर भेजते हैं।.

बस! हमने अपने परीक्षण लक्ष्य पूरे कर लिए हैं। आगे और जानकारी है जो गहराई से जानने के लिए प्रासंगिक हो सकती है।.
अतिरिक्त जानकारी
PLAYDECK में लॉग इन
हम सभी इनकमिंग और आउटगोइंग SCTE टैग्स को लॉग करते हैं। इससे आपको अपने आउटगोइंग SCTE का परीक्षण करने का भी अवसर मिलता है: बस अपने आउटपुट को इनपुट (SDI और स्ट्रीम्स दोनों) में लूप करके PLAYDECK को आपका SCTE डिटेक्ट करने दें। आप “Logs” मेन मेन्यू के माध्यम से लॉग फाइल्स खोल सकते हैं:

निम्बल स्ट्रिमर में लॉग इन
यदि कुछ भी गलत हो जाए या उम्मीद के मुताबिक न हो, तो Nimble लॉग फ़ाइलों की समीक्षा करना एक अच्छा आरंभिक कदम है। Windows पर लॉग यहाँ पाया जा सकता है:
सी:\प्रोग्राम फाइल्स\निम्बल स्ट्रीमर\लॉग
Nimble Trial एड-ऑन में लॉगिंग डिफ़ॉल्ट रूप से सक्षम है, लेकिन यदि आपको इसे सक्रिय करने की आवश्यकता हो, तो यहाँ “nimble.conf” के लिए फ़्लैग दिए गए हैं।.
log_access = file
logging = debug
अब लॉग फ़ाइल खोलें और “SCTE” के लिए स्कैन करें। आपको कुछ ऐसा दिख सकता है, जो यह दर्शाता है कि PLAYDECK में आपके SCTE मार्कर में टाइपो है:
[SCTE35] [mynewapp/mynewstream] के लिए प्रकार=6 का असमर्थित स्प्लाइस कमांड
यदि आपका SCTE मार्कर Nimble में सफलतापूर्वक पार्स हो जाता है, तो यह इस प्रकार दिखेगा:
[SCTE35] splice_insert: event_id=4157 oon=1 immediate=1 pts_adjustment=0 pts=0 actual_pts=202593600 duration=2707200 data=0xfc....
उपकरण: टीएसडक
यह MPEG ट्रांसपोर्ट स्ट्रीम को संसाधित करने के लिए उपकरणों और प्लगइन्स का एक संग्रह है, जिसमें एक बड़ी लाइब्रेरी है। इसके साथ आप PLAYDECK के बाहर किसी एल्गोरिदम या अन्य जटिल लॉजिक के आधार पर SCTE मार्कर डाल सकेंगे।.
उपकरण: x9k3
यह उपकरण UDP स्ट्रीम्स या MPEG-TS फ़ाइलों में मौजूद SCTE-35 मार्कर को HLS SCTE टैग्स में भी परिवर्तित कर सकता है। इससे आप ऐसे स्ट्रीमिंग सर्वर को इंस्टॉल कर सकते हैं जिसमें स्वचालित SCTE-35 से HLS रूपांतरण की सुविधा नहीं होती।.