Skip to content

About

https://h265web.com 🔥 作者:常炎隆(Author: ChangYanlong):HEVC/H.265 网页直播/点播播放器 支持硬解! 支持H.265的HttpFLV/HLS/MP4/TS/FLV/M3U8/Websocket/WebRTC/VR360播放。 🔥 A HEVC/H.265 Web Player, Support hard-decoding! for LIVE/VOD stream. Support H.265 Codec with HttpFLV/HLS/MP4/TS/FLV/M3U8/Websocket/WebRTC/VR360.

Topics

Resources

Stars

2.4k stars

Watchers

42 watching

Forks

Latest commit

 

History

334 Commits

Folders and files

Repository files navigation

h265web.js - Browser HEVC/H.265 Playback SDK

中文 · English

h265web.js logo     h265web.js demo preview

Website Public Demo GitHub Docs Docs Local

Built and refined continuously since 2017, h265web.js PRO delivers mature browser playback with broad feature coverage and strong performance.

It covers HEVC/H.265, AVC/H.264, AV1, WebRTC, live streaming, VOD, WebCodec, WASM decoding, MediaInfo, snapshot, fullscreen, seek and multi-instance playback.

Recommended media server: ZLMediaKit - a strong streaming server/framework for live and VOD delivery.

If h265web.js helps your project, giving it a GitHub star is a simple way to support the work and help more developers discover it.

New: Picture Enhancement, Stable Volume and AI Integration

New capability What you can do Start here
Stable volume / audio leveling Balance quiet and loud passages; switch during playback while preserving user volume and mute. Off by default, with observable processing state Open player · Enhancement guide
Experimental SDR super resolution Enhance eligible SDR pictures within display and GPU limits. Demos start one available step up, allow Automatic, and show actual output or bypass reasons. Off by default Try SR · Models and licenses
AI integration and troubleshooting skills Build or integrate players with plain JS, React, Vue, Svelte, Angular, Next and Nuxt; handle lifecycle, audio, SR and playback diagnosis Install and use the skills

New here? Start with a skill

  1. Follow the skill installation and usage guide to install the complete skill folders in your coding assistant. Codex users can also use the guide's $skill-installer prompt.
  2. Choose h265web-bootstrap to build/integrate a player, or h265web-troubleshoot for playback errors, black pictures, missing audio or inactive SR.
  3. Send this to your assistant and provide your framework, media URL and SDK location:
Use $h265web-bootstrap to integrate h265web.js into my React project.
Add play/pause, stable-volume and experimental SDR super-resolution switches.
SR should start one available step up. Handle unmount/rebuild and verify actual playback.
Read the project's configuration for the media URL and SDK location first.

See all Features · Read the latest Update Log

Quick Links

Contact

Demo Entry

Loading static/h265web.js prints [h265web.js] SDK script loaded: https://github.com/numberwolf/h265web.js with console.info. This message appears without starting WASM; WASM startup output appears only when playback initializes the WASM runtime.

Good Fit For

  • Browser playback of HEVC/H.265, AVC/H.264 and AV1
  • VOD and live playback in one SDK
  • Protocol validation for MP4 / MOV / MKV / FLV / MPEG-TS / M3U8 / HLS / HTTP-FLV / WS-FLV / HTTP-TS / WS-TS / WebRTC / HEVC ES
  • Browser-side player projects that need seek, playbackRate, fullscreen, snapshot, MediaInfo, multi-instance playback and multi-thread decode

Integration Cases (Partial)

Temu Kwai iQiYi Baidu Baidu Cloud Beijing Shutong Mofang Hangzhou Chengzhi Tianyang Nanjing Yiyi
Temu Kwai iQiYi Baidu Baidu Cloud Beijing Shutong Mofang Hangzhou Chengzhi Tianyang Nanjing Yiyi








Shandong World Shanghai Unicom Xi'an Sihua




Shandong World Shanghai Unicom Xi'an Sihua




Feature Matrix

Feature Feature Feature Feature
HLS(LIVE) M3u8(VOD) MP4(VOD) FLV(VOD)




HTTP-FLV(LIVE) HTTP-TS(LIVE) WS-FLV(LIVE) WS-TS(LIVE)




MPEG-TS(VOD) MPEG-PS(VOD) AV1(Chrome) MOV(H.265)





HTTP-HEVC WS-HEVC MKV(HEVC) AAC(MAIN/LC)




Multi-Thread
(only:
https+nginx conf)
Single-Thread G711A(HTTP-FLV) G711U(HTTP-FLV)




MediaInfo HEVC/H.265 AVC/H.264 Hardware decoder
(FLV/HTTP-FLV/MP4)




VR360 video playback Stable volume SDR super resolution
WebRTC(LIVE) VR360(VOD/LIVE) Stable volume / audio leveling
Runtime switch · off by default
Experimental SDR super resolution
Starts one step up · conditional




Player integration skill Playback troubleshooting skill

AI player integration skill
Seven frontend templates
AI playback troubleshooting skill
Media / network / audio / SR


h265web.js mpeg.js (ts demuxer) h265web.js's H.265 decoder LICENSE
h265web.js MPEG-Demuxer.js h265web.js-wasm-decoder CYL_Free-1.0 LICENSE-Free_CN.MD

Feature Support

Supported

  • Protocol box
protocol model support desc
mp4 Video on demand Y ----
mov Video on demand Y HEVC/H.265
mkv Video on demand Y HEVC/H.265
av1 Video on demand Y Chrome
mpeg-ts Video on demand Y ----
mpeg-ps Video on demand Y ----
m3u8 Video on demand Y ----
hls Live Y ----
flv Video on demand Y ----
http-flv Live Y CodecID=12
http-ts Live Y ----
http-hevc Live Y ----
http-hevc Video on demand Y ----
websocket-hevc Live Y ----
websocket-flv Live Y ----
websocket-ts Live Y ----
WebRTC / WHEP Live Y Standard HTTP signaling endpoint; recommended for playback
webrtc:// Live Y SDK-compatible URL converted to WHEP signaling
ZLM WebRTC API Live Y ZLMediaKit private signaling endpoint
HEVC/H.265 Video on demand Y ----
HEVC/H.265 Live Y ----
AVC/H.264 Video on demand Y ----
AVC/H.264 Live Y ----
  • Codec
Codec Support Desc
AVC/H.264 Y ----
HEVC/H.265 Y ----
AAC Y ----
G711A Y HTTP-FLV
G711U Y HTTP-FLV
AV1 Y Chrome
  • Features
Feature Support Desc
Hardware-Decode Y For Chrome/Safari etc...
WebCodec Y Browser-supported hardware path
SIMD Y WASM + SIMD acceleration path
MSE Y Browser MSE playback path
Native WebRTC Y WHEP, webrtc:// compatibility URL and ZLM private signaling
WebRTC Auto Routing Y URL recognition in the SDK; core: 'webrtc' can force the route
WebRTC Partial A/V Y Supports AV, video-only and audio-only negotiated results
VR360 video playback (ERP source) Y Drag to look around a 360° VOD/live source; use an SDK build with the VR APIs
AI integration and troubleshooting skills Y Install and use; seven frontend templates, resources/lifecycle integration and evidence-based diagnosis
Stable volume Optional Runtime switch; off by default, preserves user volume/mute and reports actual processing
Experimental SDR super resolution Optional Runtime requests; demos start one step up with Automatic available; reports actual output and availability
Video on demand Y ----
Live Y ----
Seek Y ----
AccurateSeek Y ----
Cover Image Y ----
Playing with download Y ----
Volume Y ----
Play Y ----
Pause Y ----
ReStart Y ----
PauseWithCoverImage Y ----
1080P Y ----
720P Y ----
Create multi players Y ----
Play without Audio Y ----
Cache process Y ----
Open Fullscreen Y ----
Exit Fullscreen Y ----
Play frame by frame Y ----
Snapshot Y ----
Autoplay Y HTTP-FLV 265+264
HTTP-TS 265+264
HLS 264
Cache Length Y MP4 265
Multi-thread decoder Y (HTTPS+ Conf NGINX)
Single-thread decoder Y compatible
Get MediaInfo Y ----
Get Codec Param Y Video&Audio
Get Media Duration Y Video&Audio
Get Video Size Y ----
Get Video FPS Y ----
Get Audio SampleRate Y ----
Chase Frame Y HTTP-FLV(no audio)
PlayBackRate Y H.264/H.265/AV1
Resize Y ----
Get SEI Data Y ----

WebRTC Publish and Playback

WHIP is the standard WebRTC HTTP ingestion protocol, and WHEP is the standard WebRTC HTTP egress protocol. h265web.js is a player, so WHEP is the recommended playback input. The HTTP(S) endpoint carries SDP signaling; negotiated media still uses WebRTC ICE/DTLS/SRTP.

For ZLMediaKit RTMP-to-WebRTC conversion, set the timestamp policy before testing:

[protocol]
modify_stamp=1
paced_sender_ms=0

modify_stamp=1 uses the ZLMediaKit receive clock with smoothing. With modify_stamp=2, some H.264 + AAC RTMP inputs can continue decoding at the expected frame rate while Chrome drops late frames during native WebRTC playout.

The following command publishes the tested H.264 + AAC source to ZLMediaKit. ZLMediaKit then exposes it through WHEP:

ffmpeg -hide_banner -stream_loop -1 -re \
  -i /path/to/input.flv \
  -vf scale=640:360,format=yuv420p \
  -c:v libx264 -preset veryfast -tune zerolatency \
  -profile:v baseline -level 3.1 -bf 0 \
  -g 25 -keyint_min 25 -sc_threshold 0 \
  -c:a aac -profile:a aac_low -ar 44100 -ac 2 -b:a 128k \
  -f flv rtmp://127.0.0.1/live/test

Supported playback inputs for that stream:

http://127.0.0.1/index/api/whep?app=live&stream=test
webrtc://127.0.0.1/live/test
http://127.0.0.1/index/api/webrtc?app=live&stream=test&type=play

The first URL is standard WHEP and is recommended. webrtc:// is an SDK compatibility URL converted to WHEP. The third URL is specific to ZLMediaKit.

const player = H265webjsPlayer();

player.on_ready_show_done_callback = function () {
  console.log('WebRTC first frame ready');
};

player.on_play_time = function (seconds) {
  console.log('WebRTC play time', seconds);
};

player.on_error_callback = function (error) {
  console.error('WebRTC playback error', error);
};

player.build({
  player_id: 'canvas111',
  base_url: './static/',
  wasm_js_uri: 'h265web_wasm.js',
  wasm_wasm_uri: 'h265web_wasm.wasm',
  width: 640,
  height: 360,
  auto_play: false,
  ignore_audio: false,
  core: 'webrtc'
});

player.load_media('http://127.0.0.1/index/api/whep?app=live&stream=test');

Omit core to let the SDK recognize the three WebRTC URL forms automatically. WebRTC uses the existing player lifecycle and callback names; no separate public API is required. Native WebRTC live playback stays at 1x and does not support seek. Standard WebRTC can only receive codecs negotiated by the browser. WebCodecs/WASM fallback for a non-negotiated codec requires the server to implement the optional h265web-rtc-encoded/v1 encoded-media transport.

ZLMediaKit / PyMKUI Playback

The PyMKUI integration replaces its Jessibuca playback path for RTMP and TS stream rows with h265web.js. A browser cannot play an rtmp:// URL directly: PyMKUI maps RTMP rows to ZLMediaKit HTTP-FLV (/{app}/{stream}.live.flv) and TS rows to HTTP-TS (/{app}/{stream}.live.ts). It requests the current stream's on_play URL parameters for each attempt and obtains fresh parameters when retrying; one-time authorization tokens must not be reused. Playback starts muted with set_voice(0) while keeping the audio pipeline enabled.

The PyMKUI player defaults to a flat picture. For a real ERP 360° live stream, its 360° mode button calls the SDK's set_projection('erp360') and enables mouse/touch view controls; Reset view calls reset_vr_view(). This is a display choice, not automatic ERP detection or a new codec. The recording manager also uses the SDK for single MP4/WebM files, including manual ERP view switching, pause, seek, playback rate, screenshot and fullscreen. WebM uses the browser's native decoder; it does not fall back to VP8/VP9 software decoding.

HEVC MPEG-TS HLS rows use the SDK. AVC HLS keeps its native path when playback succeeds; native decode/source errors (3/4) trigger one SDK MSE attempt with fresh authorization. HLS-fMP4 HEVC remains unsupported. HTTP-fMP4 and WHEP retain their existing native paths.

Video-only FLV streams use the FLV header's audio flag rather than waiting for a nonexistent audio track. For HTTP-FLV/WebCodec with AAC, startup waits for the first displayed frame and a running AudioContext before aligning the queued audio. This does not change WS-FLV, TS/HLS, VOD or WASM startup.

On HTTP media handled by the demux Worker, on_error_callback now receives an http-transport error with a numeric status when the response is visible. HTTP 401/403/404 are reported without retry, while transient failures have bounded retries; browser CORS failures may only expose status: 0. Releasing or replacing a player aborts its old HTTP request, so a late response cannot revive the previous session. See the English API contract and Chinese API contract.

Stable Volume, Experimental SR and Integration Skills

The SDK includes stable volume, experimental SDR super resolution and two integration/troubleshooting skills. Both playback effects default to off. Independent switches work during playback, with actual state and next actions shown in the panel. Check API availability when integrating an older SDK.

The demo’s stable-volume switch only changes the leveling request; it does not call play or notify a user gesture. If audio remains pending for activation, Play & activate audio is a separate, explicit action that starts or resumes playback through the entry’s play handler. It preserves the user’s volume/mute setting and keeps the playback button state in sync.

Feature Integration and scope
Stable volume audio_leveling: 'None' / 'StableVolume'; runtime set_audio_leveling(); inspect get_audio_leveling_state() for actual processing
Experimental SDR super resolution Fixed tiny AN CNN in the same WebGL2 context; super_resolution, set_super_resolution(), get_super_resolution_state(); requires the complete static/models/sr/ directory and license notices
Integration skill h265web-bootstrap: vanilla JS, React, Vue, Svelte, Angular, Next and Nuxt templates and lifecycle handling
Troubleshooting skill h265web-troubleshoot: media/HTTP/browser evidence, actual core selection, feature bypass and redacted reports
Setting Runtime support When it takes effect
set_audio_leveling('StableVolume' / 'None') Supported without waiting for video ready or reloading When an accessible track and audio graph process audio; inspect status/active
set_super_resolution({enabled, level, targetKey}) Enable/disable and output requests are supported When frames, SDR, display demand and GPU conditions qualify; an existing C++ renderer may request recreation
super_resolution.input_color Build option Apply a change through explicit recreation

Demos initially enable {enabled:true, level:'light', targetKey:null} for the smallest currently available enhanced option. Selecting Automatic sends {enabled:true, level:'standard', targetKey:null}. The SDK’s omitted level default remains standard.

Stable volume measures/processes audio before the user's set_voice(0–1) control. Toggling it does not move the slider or unmute output. Native source security, AudioWorklet, user activation and audio-track availability determine whether it can become active; unavailable paths retain playback and return a reason.

SR defaults to input_color: 'unknown'; declare sdr only for confirmed compatible SDR. At most two aspect-preserving 1.25/1.5/2× candidates require input short side ≤720, output long side ≤1920, short side ≤1080 and ≤2,073,600 pixels, subject to display and GPU budget. A 720p source may offer experimental 900p/1080p candidates; bitrate does not unlock 1440p/4K. Normal high-resolution playback is unaffected by SR limits. HDR/wide gamut, ERP, old WASM without a trustworthy descriptor and unsupported devices bypass. Enabling SR on an existing C++ renderer returns renderer-recreate-required; the user explicitly rebuilds, with no automatic media reload. The engineering model has no production quality, mobile or long-term power approval. Research-only ORT/WebGPU SR backends are not shipped SDK options.

Place <div id="player"></div> in the page. Call notify_user_gesture() and play() from a user click after loading.

const player = H265webjsPlayer();
// Bind business callbacks before build; keep both features opt-in.
const config = { player_id: 'player', width: 960, height: 540,
  base_url: './static/', wasm_js_uri: 'h265web_wasm.js',
  wasm_wasm_uri: 'h265web_wasm.wasm', ignore_audio: false, auto_play: false };
if (typeof player.set_audio_leveling === 'function' &&
    typeof player.get_audio_leveling_state === 'function') config.audio_leveling = 'None';
if (typeof player.set_super_resolution === 'function' &&
    typeof player.get_super_resolution_state === 'function')
  config.super_resolution = { enabled: false, input_color: 'unknown' };
if (!player.build(config)) throw new Error('build failed');
player.set_voice(0);
player.load_media('./hevc_test_moov_set_head_16s_hvc1.mp4');

A true setter return accepts intent only. Inspect leveling status/reason and SR status/reason/output/options rather than equating an enabled switch with actual processing. Copy matching JS/WASM runtime files; SR also needs the complete model directory. See the Playback Enhancements & Skills guide and API docs. On unmount, wait for release(callback) before reusing the container and invalidate late asynchronous work.

Playback environment and hosting

The website home and player demos load the website’s current SDK and WASM from the same origin by default. Use ?sdk=cdn only to diagnose the pinned CDN release; remove it to return to the website build. The home demo uses a same-origin SDR sample and an isolated page. Both effects still start off.

The full player and SDK demos accept arbitrary URLs and start in Compatibility mode. Choose Enable software decoding when a path needs WASM/shared memory. This reloads the page with ?isolation=1; Return to compatibility mode removes it. The tab restores URLs, core choices, volume/mute, enhancement switches and requested SR output. The temporary sessionStorage record expires after 10 minutes and is removed after the restore attempt. Playback reconnects; this does not preserve a running decoder or VOD position.

?isolation=1 is a demo hosting contract, not an SDK API or a way to create response headers. The host must send Cross-Origin-Opener-Policy: same-origin and Cross-Origin-Embedder-Policy: require-corp on the isolated document in a secure context; a direct pthread Worker script also needs COEP. The panel checks the real browser environment and reports missing support without repeatedly reloading. Keep SDK/glue/WASM files from the same build, serve WASM as application/wasm, and allow required cross-origin resources through CORS/CORP. In isolated mode, ordinary cross-origin no-CORS video needs CORP; an Access-Control-Allow-Origin header alone does not change its request mode. Compatibility mode retains native playback’s existing request behavior.

SR on a compatible native video does not require the software-decoding switch. Its frame access, SDR declaration, model, output-size and GPU requirements still apply. These page controls do not change the SDK’s core-selection or enhancement algorithms. See the hosting and demo guide.

VR360 Video Playback

Use a real monoscopic 360° video (normally a 2:1 equirectangular/ERP source); an ordinary video does not become 360° when you turn on VR. Set projection: 'erp360' to watch it in VR360, or flat for ordinary playback. VR360 keeps the existing decoder and clock; view controls are set_projection(), set_vr_view(), rotate_vr_view(), reset_vr_view() and set_vr_controls(). The current public SDK includes these APIs; when using a cached older bundle, check that they exist. See API Docs and QA WIKI for source, CORS and first-frame checks.

In the local English demo or Chinese demo, type your own URL in Source, or click its arrow to see the local MP4 samples. The list includes H.264 and HEVC VR360 samples; VR360 samples select the ERP view automatically. Use View to switch between ordinary flat and VR360 display while the same video is playing.

Documentation

Partner Projects

About


Donate

Wechat Alipay PayPal
-

FFmpegSupportH265LiveEncode


TranscodeAndGet265CodecFileByFFmpeg

  • mp4
ffmpeg -i input.mp4 \
-vcodec libx265 -pix_fmt \
-acodec aac -ac 2 -ar 44100 \
-preset medium -maxrate 1000k -bufsize 1000k \
-vtag hvc1 \
-movflags faststart \
-y video.mp4
  • hls/m3u8 capture
ffmpeg -f avfoundation -i 1:0 \
-q 4 -r 10 \
-filter_complex "scale=1280:720" \
-pix_fmt yuv420p \
-vcodec libx265 \
-ar 22050 -ab 64k -ac 1 -acodec aac \
-threads 4 \
-preset veryfast \
-f segment \
-segment_list test.m3u8 \
-segment_time 5 \
-y /Users/numberwolf/Documents/webroot/VideoMissile/VideoMissilePlayer/res/hls1/v-%03d.ts
  • mpeg-ts
ffmpeg -ss 20 -t 10 -i ./res/xinxiaomen.mp4 \
-vcodec libx265 -x265-params "bframes=0:keyint=10" -r 24 -filter_complex "scale=720:1280" -preset fast -maxrate 800k -bufsize 800k \
-acodec aac -ar 22050 -ac 1 \
-pix_fmt yuv420p \
-f mpegts -y ./res/veilside2.ts

UpdateLog

Update Content
Time 2026/10/28
- Added StableVolume audio leveling: runtime controls and observable state; preserves user volume, mute and pause
- Added experimental SDR super resolution: matching models/licenses, one-step-up demo default, Automatic option, actual output/bypass state and explicit recreation when needed
- Added two AI skills: player integration and playback troubleshooting, seven frontend templates, installation steps and ready-to-use prompts
- Unified demo controls: English/Chinese single/multi-instance, WHEP, website home and full-player enhancement switches and status feedback
- Extended PyMKUI integration: live/recording enhancement controls, authorization retries and lifecycle handling; see PR #25
- Updated delivery guidance: README feature graphics/list, bilingual usage guides and prominent website skill entry; Next template pinned to 16.4.1
Time 2026/10/14
- Removed the legacy HLS route and extension runtime files; SDK initialization now needs only the main JS/WASM assets
Time 2026/10/13
- 0.Fixed MSE FLV startup for video-only streams and aligned HTTP-FLV/WebCodec AAC startup with the first displayed frame and the running audio clock
- 1.Added native WebM VOD routing with explicit capability errors; WebM does not use software fallback
- 2.Extended PyMKUI recording playback with ERP 360° controls and added bounded AVC native-HLS error fallback with fresh authorization
Time 2026/10/11
- 0.Fixed HTTP demux Worker request cancellation and forwarded visible HTTP status to the existing player error callback, with bounded transient retries
- 1.Integrated ZLMediaKit PyMKUI RTMP/TS rows through HTTP-FLV/HTTP-TS, fresh on_play authorization, muted playback and manual ERP 360° view controls
Time 2026/08/25
- 0.Added native WebRTC live playback with standard WHEP signaling, webrtc:// compatibility URLs and the ZLMediaKit private WebRTC API
- 1.Added automatic WebRTC URL routing and explicit core: 'webrtc' selection without changing the existing build() and load_media() API
- 2.Added AV, video-only and audio-only negotiated playback, existing lifecycle/error callbacks, release/rebuild and multi-instance isolation
- 3.Added WHIP publish and WHEP playback demos, plus real Chrome regression coverage for WHEP, MP4, HTTP-FLV and HTTP-TS
- 4.Documented the ZLMediaKit modify_stamp=1 requirement for stable RTMP-to-WebRTC A/V timestamps
Time 2026/08/10
- 0.Added callback-aware HLS mainline routing across Native HLS, MSE, WebCodec and WASM; auto/mainline never enter past-core/ext*, while legacy must be selected explicitly
- 1.Aligned callback contracts across HLS, MP4, FLV and MPEG-TS, including SEI, NAL/frame/render, cache, seek, lifecycle, GPU and A/V-sync callbacks
- 2.Improved HLS master/media playlists, redirects, live sliding windows, discontinuities, codec detection, HEVC samples, keyframes and timestamp handling
- 3.Strengthened seek completion, release/rebuild, worker cleanup, bounded release timeout and multi-instance isolation
- 4.Clarified audio controls: ignore_audio skips the audio pipeline and is not mute; set_voice(0) can be restored with a positive volume
- 5.Updated English/Chinese integration documentation and expanded automated and browser regression coverage
Time 2026/08/03
- 0.Optimized Auto core selection to prefer native/MSE, then WebCodec, then WASM/SIMD, with controlled fallback
- 1.Improved H.264/H.265 playback with AAC, PCM, G.711A and G.711U audio; unsupported audio no longer downgrades a playable video core
- 2.Fixed repeated backward jumps and frame skipping in HEVC B-frame HTTP-TS and WebSocket-TS live streams by normalizing only the detected abnormal live-TS DTS cadence while preserving CTS reorder information
- 3.Improved player lifecycle cleanup, error fallback and multi-instance stability
Time 2026/03/28
- 0.Update more powerful version
Time 2022/11/06
- 0.Update
Time 2022/11/02
- 0.Update WASM
Time 2022/10/22
- 0.Support: Hard-Decode for FLV/HTTP-FLV/MP4
- 1.Support: AVC with Mpeg-TS
Time 2022/09/13
- 0.Fixed: AVC stream loop buffer error without autoplay
Time 2022/09/12
- 0.Fixed: hevc url cannot play without text of "http"
Time 2022/08/24
- 0.Feature: Safari with native player(version>13)
Time 2022/08/23
- 0.Fixed: Buffer Progress with AVC
Time 2022/08/13
- 0.Support: Resize
Time 2022/07/27
- 0.Support: PlayBackRate
Time 2022/07/12
- 0.Fixed some problem
Time 2022/07/06-10
- 0.Support g711u (http-flv)
- 1.Fixed: HTTP-FLV(AVC) without Audio
Time 2022/07/01
- 0.Feature: HTTP-FLV(Without audio) Stream Performance optimizing
Time 2022/06/27
- 0.Fixed: problem with hls parser
Time 2022/06/26
- 0.Support g711a (http-flv)
- 1.Fixed 264(avc) flv error with mediainfo
- 2.Support Multi/Single Thread
Time 2022/05/18
- 0.Support multi-thread decode
- 1.Support mp4's cache length config
- 2.Performance optimizing
- 3.This version is for Beta
Time 2022/05/09
- 0.Suport play with Websocket 265 raw stream
Time 2022/05/07
- 0.Fixed:MP4(VOD) retry error
- 1.Support:HEVC raw stream(VOD), create with url
- 2.Support:MKV format
Time 2022/04/21
- 0.Performance optimizing
Time 2022/04/17
- New Opensource Free Protocol CYL_Free-1.0 LICENSE-Free_CN.MD
Time 2022/04/14
- 0.Support Mov File
- 1.Support HTTP-FLV/HTTP-TS/HLS Autoplay
- 2.Performance optimizing of 1080P MP4(VOD)
- 3.Retry of mp4 sniff action
- 4.Support AV1
- 5.Support Play frame by frame
- 6.Support Video Frame Snapshot
Time 2022/03/28
- 0.Support MPEG-PS(MPEG1) stream
Time 2022/03/02
- 0.Fixed h264 FLV(LIVE) can not get resolution info with retry
Time 2022/01/17
- 0.Fixed ISSUE of HLS 265 OOM Case #108
- 1.Fixed ISSUE of HLS Split Rules #105
- 2.Add New Demo index-debug.html
- 3.Fixed 10+playes of 264 play failed, stack overflow
Time 2021/12/31
- 0.Add H.264 HTTP-FLV Retry after error
Time 2021/12/24
- 0.Fixed H.264 HTTP-FLV Some Badcase with callback
Time 2021/12/19
- 0.Fixed H.264 HLS Callback's problem
Time 2021/12/08
- 0.Fixed Problem of H.264 MP4 onReadyShowDone Event
Time 2021/12/04 - In the small hours
- 0.Fixed http-flv 265 Render With crash
- 1.Fixed hls problem of fullscreen
- 2.Fixed some bugs
Time 2021/11/29 - Night
- 0.Fixed http-flv retry case and some bugs
Time 2021/11/25 - Night
- 0.Fixed httpflv/ws LIVE ignoreAudio problem
Time 2021/11/23 - Night
- 0.Fixed #90
Time 2021/11/21 - In the small hours
- 0.Support Websocket-FLV (HEVC/H.265)
- 1.Support Websocket-TS (HEVC/H.265)
- 2.Support HTTP-TS (HEVC/H.265)
Time 2021/11/16 - Evening
- 0.First request, if no response and timeout, then retry 5 times
Time 2021/11/15 - Evening
- 0.HTTP-FLV auto retry when timeout with out packet.(7s)
Time 2021/11/14 - Evening
- 0.Add wasm file of 265mb version(can memory auto grow)
- 1.Add wasm file of 512mb version(can memory auto grow)
Time 2021/11/04 - Evening
- 0.Fixed: release many times with crash
Time 2021/10/26 - Evening
- 0.Fixed some bugs
Time 2021/10/24 - Evening
- 0.Support Codec of AVC/H.264's MP4/HLS/M3u8/FLV/HTTP-FLV play
Time 2021/10/18 - Evening
- 0.Add new example
Time 2021/10/16 - Evening
- 0.Fixed: HTTP-FLV: Mediainfo's codec fault value
- 1.Update example
Time 2021/10/14 - Evening
- 0.Fixed: Mediainfo's codec fault value
Time 2021/10/13 - Evening
- 0.The player compatible with WebIDE develop, split wasm(js) and h265web.js, need include wasm(js) as single
Time 2021/10/12 - Evening
- 0.Fixed: Support HTTP-FLV(HEVC) without fps param
Time 2021/10/09 - In the small hours
- 0.Support HTTP-FLV(HEVC) LIVE, CodecID=12
- 0.MP4/FLV(VOD) performance optimizing of Seek operation(out of cache area)
Time 2021/09/27 - Evening
- 0.M3u8/MpegTS performance optimizing of Seek operation(out of cache area)
Time 2021/09/25 - In the small hours
- 0.HLS Live Fixed: Crash by OOM
- 1.HLS Live Fixed: MPEG-TS full path
- 2.HLS Live Fixed: Stop by lost stream a moment
- 3.HLS Live Fixed: Stop by unstable network
Time 2021/09/08 - Evening
- 0.Fixed: M3U8 Seek with Decode Failed
- 1.Fixed: Some MP4 Case
- 2.Config update, remove some options, make it auto set
Time 2021/09/07 - Evening
- 0.M3U8 Fixed: some error with parse mpegts file
Time 2021/09/07 - In the small hours
- 0.Bak Player Core - Fixed:MP4/FLV(VOD) Seek BUG can not seek to 0; And performance optimizing for play
Time 2021/08/15
- 0.H265/HEVC Upgrade Raw Data Player for VOD/LIVE
Time 2021/07/18
- 0.Upgrade: Player UI Style
- 1.Support: fullscreen & close fullscreen
- 2.Add Event: open/close fullscreen
Time 2021/07/11
- 0.Fixed: The player compatible with ZLMediaKit + HUAWEI HoloSens Camera LIVE Stream
Time 2021/07/04
- 0.Fixed: ISSUE#58 (When default player-core's status is caching-frames, can not pause video)
Time 2021/07/01
- 0.Add example and package.json file
Time 2021/06/27
- 0.Open Source!
- 1.Support Seek in FLV
- 2.Fixed: Seek problems with bak player core mode
- 3.Add FLV type ,and do not need set player-core
Time 2021/05/30
- 1.Fixed: Some problem with seek and play(Important)
- 2.Feature: Event/Callback of Video's cover image load finished
Time 2021/05/24
- 1.FLV VOD Play(In the bak player core mode)
Time 2021/05/21
- 1.HLS(LIVE:No audio)performance optimizing
Time 2021/05/18
- 1.HLS(LIVE) performance optimizing and add Audio
Time 2021/05/16
- 1.MP4(VOD) Fixed:BD265 Mp4 box badcase
Time 2021/05/15
- 1.Fixed: HLS Play(LIVE)
Time 2021/04/27
- 1.Fixed: Some video playing with gray block(mosic)
- 2.Fixed: Some video when playing first gop with gray block(mosic)
Time 2021/04/22
- 1.Bak player core mode(test) support: seek
- 2.Bak player core mode(test) support: yuvj420p
- 3.Others
Time 2021/04/12
- 1.Fixed bug: Some video(encode hev) play failed
- 2.Fixed bug: Some video(nalu unstandard) play failed
- 3.Fixed bug: Some video play error with mosic
Time 2021/04/07
- 1.Fixed duration error
Time 2021/03/28
- 1.Add cache process event
- 2.Fixed some bugs
- 3.Remove HLS Log
- 4.Play without audio optio(New Core)
Time 2021/03/14
- 1.Bak player core mode: Fixed: render of bytes align
Time 2021/03/12
- 1.Sorry my friends, I was too tired to make a mistake with hls feature... Now I have fixed it. _!
Time 2021/03/06
- 1.Bak player core mode, Fixed: multi-stream play badcase
Time 2021/02/28
- 1.Add function to feed 265 nalu-frame append265NaluFrame(nalBuf);
- 2.Add new library to parse 265 stream raw-parser.js
Time 2021/02/21
- 1.New SDK Project for H.265/HEVC decoder - https://github.com/numberwolf/h265web.js-wasm-decoder
Time 2021/02/18
- 1.Bak player core mode support play with audio
Time 2021/02/08
- 1.Bak player core mode (beta version , do not support play audio and seek. Make your mp4's moov box front of the mdat)
Time 2021/01/04
- 1.Player Support Hevc file
- 2.Player Support Hevc stream
- 3.Remove Play/Pause Mask
- 4.Add Event:onPlayFinish, called when play video finished

Demo controls

English demo and 中文 Demo include the same playback-enhancements panel. The development repository’s dynamic index.html, fixed index-multi.html, website home and full player use consistent switches, output choices and state descriptions. Each instance keeps its own preferences.

Control How to use it
Stable volume Preset before creation or switch during playback without rebuilding. Status shows waiting for audio, processing or an unavailable reason; volume and mute stay unchanged
SR switch First enable selects “One step up”, with no second selection required. It can be operated during playback; the actual output appears once usable frames and the model are ready
SR output “One step up” uses the smallest currently available enhanced option; “Automatic” uses the SDK standard policy; offered sizes can also be selected directly
SDR confirmation and reload Confirm only compatible SDR media. Apply and reload explicitly after changing the declaration or when a renderer requires recreation. VOD starts again; live playback reconnects

Both effects default to off. The switch records intent; actual output and state describe the result. When no enhanced size is available, the original picture remains with a reason. input_color is a build option and cannot be changed by the runtime setter. Requests can be made before ready; enabling a model for the first time while paused may need playback to resume.

Website home · Full player · Runtime behavior and integration examples

About

https://h265web.com 🔥 作者:常炎隆(Author: ChangYanlong):HEVC/H.265 网页直播/点播播放器 支持硬解! 支持H.265的HttpFLV/HLS/MP4/TS/FLV/M3U8/Websocket/WebRTC/VR360播放。 🔥 A HEVC/H.265 Web Player, Support hard-decoding! for LIVE/VOD stream. Support H.265 Codec with HttpFLV/HLS/MP4/TS/FLV/M3U8/Websocket/WebRTC/VR360.

Topics

Resources

Stars

2.4k stars

Watchers

42 watching

Forks

Releases

Packages

Contributors

Languages