v2.8.0

m1k1o/nekov2.8.0Apr 1, 2023by m1k1o

AI Summary

Feature-rich release adding AV1 support, VirtualGL 3.1 with Chromium Nvidia GPU acceleration, NVENC hardware encoding, and mobile touch event support along with various bug fixes.

Key Highlights

  • VirtualGL 3.1 with Chromium Nvidia GPU acceleration support
  • NVENC hardware h264 encoding for Nvidia GPUs
  • AV1 pipeline support (experimental, performance issues)
  • Mobile touch events support
  • Adaptive framerate streaming

New Features

  • AV1 tag, metadata and pipeline
  • VirtualGL 3.1 with Chromium browser GPU support
  • KDE desktop environment tag
  • Embed parameter (?embed=1) for hiding UI
  • Volume parameter (?volume=0-1)
  • Mobile touch events support
  • NVENC hardware encoding support
  • Fixed SPS/PPS NAL units for nvh264enc
  • TCP mux write buffer fix
  • Stereo audio fix for Chromium browsers
  • Keysym mapping fix for unknown keycodes
  • max_fps=0 fix
  • Client-side WebRTC ICE gathering fix
  • Play state synchronization fix
  • Go 1.19 and Node 18 update
  • Adaptive framerate feature
  • Chinese and Korean character support
  • KDE autolock disabled
  • Pulseaudio sink renamed to audio_output
  • Pulseaudio configuration via environment variables

Full Release Notes

### New Features
- Added AV1 tag, metadata and pipeline. Unfortunately does not work yet, since the encoding is way too slow (by @mbattista).
- Added `m1k1o/neko:kde` tag as an alternative to `m1k1o/neko:xfce`.
- New VirtualGL version 3.1 was released, adding support for Chromium browsers to use Nvidia GPU acceleration!
- Added `?embed=1` parameter to the URL, which will hide the sidebar and the top bar, so that it can be embedded in other websites.
- Added `?volume=<0-1>` parameter to the URL, which will set the inital volume of the player (by @urbanekpj).
- Touch events are now supported on mobile devices (by @urbanekpj).
- Added NVENC support, hardware h264 encoding for Nvidia GPUs!
- Fixed an issue where `nvh264enc` did not send SPS and PPS NAL units (by @mbattista).

### Bugs
- Fixed TCP mux occasional freeze by adding write buffer to it.
- Fixed stereo problem in chromium-based browsers, where it was only as mono by adding `stereo=1` to opus SDP to clients answer.
- Fixed keysym mapping for unknown keycodes, which was causing some key combinations to not work on some keyboards.
- Fixed a bug where `max_fps=0` would lead to an invalid pipeline.
- Fixed client side webrtc ICE gathering, so that neko can be used without exposed ports, only with STUN and TURN servers.
- Fixed play state synchronization, when autoplay is disabled.

### Misc
- Updated to go 1.19 and Node 18, removed go-events as dependency (by @mbattista).
- Added adaptive framerate which now streams in the framerate you selected from the dropdown.
- Improved chinese and korean characters support.
- Disabled autolock for kde, so that it does not lock the screen when you are not using it.
- Refactored autoplay, so that it will start playing audio, if it's allowed by the browser (by @urbanekpj).
- Renamed pulseaudio sink from `auto_null` to `audio_output`, because it was ignored by KDE.
- Pulseaudio is now configured using environment variables, so that users can mount `/home/neko` without losing audio configuration.