view mrjunejune/README.md @ 242:543df0fe7168

[tools] Add full HLS player support
author MrJuneJune <me@mrjunejune.com>
date Mon, 03 Aug 2026 13:14:41 -0700
parents 9c2eec61a152
children b8aa08503378
line wrap: on
line source

# Mrjunejune

My personal website where I post my blogs / about me and resume.

## WebP assets

Raster source images live under `mrjunejune/assets/png/` and `assets/png/`.
Bazel converts them to WebP before they enter the server runfiles or release
bundle:

```bash
bazel build //mrjunejune:generated_webp_assets
bazel build //mrjunejune:mrjunejune_server_bundle
```

The deployed site contains no PNG files. Add new PNG source assets to the
corresponding list in `mrjunejune/BUILD` or `assets/BUILD`, then reference the
generated `.webp` URL from the site.

## HLS player

`/tools/hls_player` is a dependency-free JavaScript HLS player. It uses native
HLS where available and a MediaSource fallback for unencrypted VOD playlists
with fragmented MP4 segments. A VP9/Opus HLS sample is bundled at:

```text
/public/hls-sample/master.m3u8
```

The sample is generated from `mrjunejune/assets/video/sample_hls.mp4` through
the restored FFmpeg CLI wrapper:

```bash
bazel run //mrjunejune:generate_hls_sample
```

```bash
bazel test //mrjunejune/test:hls_player_test
bazel test //mrjunejune/test:theme_and_webp_test
```

## TODO 

- Add caching layer
- Update talk to be part
- Update test to automatically tests all paths for blogs.