Skip to content

v0.5.1

Latest

Choose a tag to compare

@github-actions github-actions released this 04 Nov 19:17
· 2 commits to main since this release

⚠️ Breaking — read before updating

Files encrypted with v0.4.2 or v0.4.3-beta cannot be opened by this release. The encryption header moved out of the audio channel into the video strip, and the old path that read it was removed. Decrypt anything you want to keep using the older build first. This is the only change here that can cost you data, and it is why this is 0.5.x rather than 0.4.3.

Encryption — much faster, much smaller

The audio channel carried the header at ten bytes a second and set a floor under every carrier, so a 16 KB file became forty-four seconds of video however little it carried. The header now rides in the video strip, so the payload sets the length — and it is repeated once a second instead of twice in total, making it both cheaper and far better protected.

before after
encrypt a 16 KB file 4.30s 0.65s
its carrier 1.03 MB, 44s 0.21 MB, 2.4s
decrypt 256 KB 7.96s 1.25s

Encrypted carriers also play in place: press play, enter the password, and the file inside plays — no decrypting to disk and adding it back. The dialog shows how long is left rather than a bare percentage.

Playback

  • A source that can never be read fails instead of loading forever
  • A decoder that stalls on a seek no longer takes the player with it, and the picture comes back on its own instead of waiting for another seek
  • A live stream that stops sending video is given up on after a few spaced-out retries — a dead IPTV channel could previously lock up the tab
  • A video the browser cannot decode now plays its sound and says why, instead of refusing the file
  • Thumbnails fall back when the browser refuses software decoding
  • Share links are no longer misread as HLS, which had been forcing 30 fps onto 23.976 fps files
  • Dolby TrueHD audio decodes, so Blu-ray rips that played as video with permanent silence now have sound

Shared libraries

Reading a file's details no longer downloads the file. Selecting an item, opening Video Information, and opening Encrypt/Decrypt each pulled the whole thing just to read its header — on a 992 MB episode that was 992 MB three times over, competing with the stream being played.

before after
select an item 992 MB 2.61 MB
Video Information 992 MB 6.26 MB
Encrypt/Decrypt dialog 992 MB 9.34 MB

The tailnet mapping is also re-checked every minute and republished if it disappears, so a link that used to die after a few hours no longer needs the app restarted.

When a browser blocks a page on the public internet from reaching a library on your own network, the app now says so and tells you to allow local network access for the site — rather than reporting that it could not reach the server, which is also what a host that is switched off looks like.

Also

  • MediaBunny 1.61.1 → 1.64.0
  • ?debug=1 turns logging on anywhere, including the deployed site and a library reached over Tailscale