Orodje za dostopnost
npm uninstall videojs-contrib-hls
If you are manually accessing the streaming tech object to check playlists or bandwidth, change your syntax: javascript
Since Video.js 7, the player uses a unified engine called (Video.js HTTP Streaming) to handle both HLS and DASH streams. This change ensures a more consistent API regardless of the streaming protocol being used. How to Fix the Deprecation Warning
is a streaming protocol developed by Apple. It’s widely used for delivering video content over the web, especially for live streams, VOD (Video on Demand), and adaptive bitrate streaming. HLS breaks video into small chunks (.ts or .m4s files) and uses a manifest file (.m3u8) to describe the available streams.
The deprecation happened for several important reasons: It’s widely used for delivering video content over
The warning shows player.tech--.hls because internally Video.js normalizes tech names (e.g., 'hls' becomes 'Hls' class). The double hyphen is just a naming convention. The key message is: stop using hls and start using vhs .
The warning player.tech--.hls is deprecated. use player.tech--.vhs instead tells you that the internal name or registration of the HLS tech has been marked as deprecated. The player.tech--.hls notation refers to the way Video.js internally references the tech for HLS playback. “Deprecated” means that while it still works in the current version, it will be removed in a future major release. The recommended replacement is – the new tech name for Video.js’s unified HTTP Streaming (VHS) engine.
If your JavaScript code manually accesses the HLS object to change quality levels, tracks, or metadata, change hls to vhs . javascript
This is not an error – your HLS stream might still play correctly. However, it's a strong indication that you should update your implementation. The warning is logged by Video.js's internal deprecation system, usually triggered by: The double hyphen is just a naming convention
var player = videojs('my-video', html5: vhs: iPad
<script src="https://vjs.zencdn.net/7.20.3/video.js"></script> <script src="https://cdn.jsdelivr.net/npm/videojs-contrib-hls@6.0.0/dist/videojs-contrib-hls.min.js"></script> <script> var player = videojs('my-video', techOrder: ['html5', 'hls'] ); player.src( src: 'https://example.com/stream.m3u8', type: 'application/x-mpegURL' ); </script>
: VHS is built into Video.js 7 by default, abstracting away browser-specific differences in streaming technology.
Video.js projects using the deprecated tech identifier player.tech--.hls must migrate to player.tech--.vhs to ensure compatibility with upstream maintenance and feature updates. This paper documents the history leading to the deprecation, compares the architectures of the two techs, provides step-by-step migration guidance with code examples, evaluates performance and compatibility implications, discusses testing strategies and rollout plans, and outlines future-proofing recommendations. Results show that migration is straightforward for most integrations, offers improved HLS feature support, and reduces maintenance risk. evaluates performance and compatibility implications
If your application calls methods like player.hls().qualityLevels() or accesses player.tech_.hls.playlists , you need to update to the VHS equivalent.
Search your codebase for any instances of the old property. Look specifically for: player.tech_.hls player.tech(['Hls'])
Try updating Video.js and http-streaming to the latest versions: