தலைப்பு: உங்கள் வீடியோ பிளேயரைச் சிதைக்காமல் கேஸ்டிங் (Casting) வசதியைச் சேர்க்கவும்
ஒரு பிரவுசரில் இருந்து டிவியிற்கு வீடியோவை கேஸ்ட் செய்வது எளிதாகத் தோன்றலாம், ஆனால் பெரும்பாலான தனிப்பயனாக்கப்பட்ட (custom) HTML5 பிளேயர்கள் அதைச் செய்ய முயலும்போதே செயலிழந்துவிடுகின்றன. சமீபத்திய டெவலப்பர் வழிகாட்டி நான்கு மறைமுகத் தோல்விப் புள்ளிகளைக் பட்டியலிடுகிறது—token expiry, CORS blocks, unreachable hosts, மற்றும் MSE-blob trap—மேலும் ஒவ்வொன்றையும் எவ்வாறு தவிர்ப்பது என்பதையும் துல்லியமாகக் காட்டுகிறது.
ஏன் கேஸ்டிங் தனிப்பயனாக்கப்பட்ட பிளேயர்களைத் தடுமாறச் செய்கிறது
நீங்கள் Cast என்பதைக் கிளிக் செய்யும்போது, டிவியானது உங்கள் JavaScript பிளேயரை இயக்காது. நீங்கள் வழங்கும் stream URL-ஐப் பெற்றுக்கொண்டு, அதன் சொந்த firmware மூலம் மீடியாவை இயக்கும். Overlays, analytics pings மற்றும் adaptive-bitrate லாஜிக் ஆகியவை பிரவுசரிலேயே இருக்கும். டிவியால் அதே சூழலில் அதே URL-ஐப் பெற முடியாவிட்டால், பிளேபேக் நின்றுவிடும்; பெரும்பாலும் கன்சோலில் (console) எந்தத் தெளிவான பிழையும் காட்டப்படாது.
நான்கு பொதுவான காரணிகள்
- Token expiry – குறுகிய காலப் பாதுகாப்பு டோக்கன் (security token) பிரவுசரில் வேலை செய்யும். ஆனால் ஒரு டிவியானது அந்த ஸ்ட்ரீமைத் தொண்ணூறு நிமிடங்கள் வரை வைத்திருக்கலாம். டோக்கன் காலாவதியாகும் போது, வீடியோ நின்றுவிடும். கேஸ்ட் செஷன்களுக்கு (cast sessions) நீண்ட கால டோக்கன்களை வழங்கவும்.
- CORS errors – எந்த டொமைன்கள் ஒரு ரிசோர்ஸைக் கோரலாம் என்பதை CORS தீர்மானிக்கிறது. டிவியானது ஒரு தனித் தொடக்கமாக (separate origin) கருதப்படுவதால், உங்கள் வீடியோ சர்வர் பக்கத்தின் டொமைனை மட்டும் அனுமதிப்பதாக (whitelist) இருந்தால், அதே URL பிரவுசரில் வேலை செய்தாலும் டிவியின் கோரிக்கை தடுக்கப்படும்.
- Unreachable hosts – டெவலப்மென்ட் அமைப்புகளில் பெரும்பாலும்
localhost, உள்முறை ஹோஸ்ட்நேம்கள் (internal hostnames) அல்லது தனிப்பட்ட IP வரம்புகள் பயன்படுத்தப்படுகின்றன. டிவியானது ஒரு வேறு நெட்வொர்க் பிரிவில் இருப்பதால், அந்த முகவரிகளைக் கண்டறியவோ அல்லது வழித்தடம் (route) அமைக்கவோ முடியாது, இது அமைதியான தோல்விகளுக்கு (silent failures) வழிவகுக்கிறது. - The MSE trap – Media Source Extensions (MSE) பிரவுசர்கள் வீடியோ துண்டுகளை (chunks) உடனுக்குடன் இணைக்க அனுமதிக்கின்றன, இது பெரும்பாலும் வீடியோவை
blob:URL ஆக வெளிப்படுத்தும். hls.js போன்ற லைப்ரரிகள் அடாப்டிவ் ஸ்ட்ரீமிங்கிற்காக இத்தகைய blobs-களை உருவாக்குகின்றன. டிவிகளால் ஒரு blob-ஐப் பெற முடியாது; அவற்றுக்கு உண்மையான manifest (எ.கா.,.m3u8அல்லது.mpd) URL தேவைப்படும். கேஸ்ட் டயலாக்கை அழைப்பதற்கு முன், மூலத்தை (source) உண்மையான manifest URL-க்கு மாற்றவும்.
படிப்படியான சரிபார்ப்புப் பட்டியல்
- கேஸ்ட் ஆதரவைக் கண்டறிதல் – Chrome-க்கான Remote Playback API அல்லது Safari-க்கான WebKit நிகழ்வுகளைப் பயன்படுத்தவும். இதன் மூலம் பிரவுசரால் பிளேபேக்கை மாற்ற முடியுமா என்பதைத் தெரிந்துகொள்ளலாம்.
- இணைப்பு நிலையைத் கண்காணிக்கவும் – ஒரு பட்டனை அழுத்துவது நிலையான இணைப்பை உறுதி செய்யும் என்று நினைக்க வேண்டாம். Remote Playback ஆப்ஜெக்ட்டிலிருந்து
connecting,connected, மற்றும்disconnectநிகழ்வுகளைப் பின்தொடரவும் (subscribe). டிவியையே உண்மையான ஆதாரமாகக் கருதுங்கள்;connectedநிகழ்வைப் பெற்ற பின்னரே UI-ஐப் புதுப்பிக்கவும். - நீண்ட காலம் செயல்படும் நேரடி URL-க்கு மாற்றவும் – நீங்கள்
remotePlayback.prompt()ஐ அழைப்பதற்கு முன், வீடியோ எலிமெண்ட்டின்src-ஐ டிவியால் பெறக்கூடிய manifest URL மூலம் மாற்றவும். உள்ளூர் பிளேபேக்கிற்கு (local playback) அசல் blob-அடிப்படையிலான மூலத்தை அப்படியே வைத்திருக்கவும், ஆனால் கேஸ்ட் செஷனுக்கு மட்டும் மாற்றவும். - அடிப்படைச் சோதனை மூலம் சரிபார்க்கவும் – எந்த ஜாவாஸ்கிரிப்ட்டும் இல்லாமல், manifest URL-ஐக் காட்டும் ஒரு தனி
<video>டேக் கொண்ட சாதாரண HTML பக்கத்தை உருவாக்கி, அதை ஒரு மணிநேரம் இயக்கிப் பார்க்கவும். வீடியோ நின்றால், அதன் அடிப்படையிலான ஸ்ட்ரீம் டிவியிலும் தோல்வியடையும். கேஸ்ட் பட்டனைச் சேர்ப்பதற்கு முன், token lifetimes, CORS headers அல்லது host அணுகல்தன்மை ஆகியவற்றைச் சரிசெய்யவும்.
டெவலப்பர்கள் எதைச் சாதிக்க முடியும்
பிளேயரின் மற்ற பகுதிகளைச் சிதைக்காமல் ஒரு நம்பகமான கேஸ்ட் பட்டனைச் சேர்க்கலாம்.
சுருக்கம்
தனிப்பயனாக்கப்பட்ட வீடியோ பிளேயர்களுக்கு கேஸ்டிங் என்பது எளிதாக இணைக்கக்கூடிய (plug-and-play) அம்சம் அல்ல; இது பிளேபேக்கை முற்றிலும் மாறுபட்ட ஒரு சூழலுக்கு மாற்றுகிறது. நீண்ட கால, CORS-அங்கீகரிக்கப்பட்ட URL-ஐ வழங்குவதன் மூலமும், blob குறிப்புகளைத் தவிர்ப்பதன் மூலமும், டிவியின் இணைப்பு நிகழ்வுகளைக் கவனிப்பதன் மூலமும், உங்கள் முழு பிளேயரையும் சிதைப்பதற்குப் பதிலாக, நம்பகமான முறையில் செயல்படும் ஒரு கேஸ்ட் பட்டனை நீங்கள் சேர்க்க முடியும்.
