Skip to content

Releases: qnkhuat/tstream

v1.3.3

01 Jul 04:42
Compare
Choose a tag to compare

Changelog

0c472b3 Merge pull request #54 from qnkhuat/move-to-xyz
337698b add an overlay to terminal in room to prevent input mode when touch on terminal
cf9238a moving from tstream.club to tstream.xyz

v1.3.2

30 Aug 14:14
6142334
Compare
Choose a tag to compare

Changelog

Added private session with tstream -private

PR: #52

v1.3.1

08 Aug 14:55
Compare
Choose a tag to compare

Changelog

This is a patch for the last version to fix a bug relating to terminal resizing.

In the last version because we sent data by block, but those data don't contain winsize messages => there will be a mismatch in timing.

In this version we include those winsize messages and also saving a cached winsize message on the server.

v1.3.0

08 Aug 12:25
Compare
Choose a tag to compare

Changelog

PR

TL;DR:

  • we stream data in block( contains many write requests in one block )
  • Now users watching the stream will be delayed with the actual stream
  • Much smoother and less lagging for both streamer and viewer

Technical note

In the previous version, any single change on the streamer's terminal is sent to the viewer. There are some problems with this approach:

  • Many changes are very small ( I.e: newline ) => inefficient use of request
  • In a short period of time we have many changes => too many requests
    With this version, we send messages by block. Each block is all messages generated in a period. This block is also being gzipped before being sent. This way we have some advantages:
  • fewer requests since we send a block of data every x (3) seconds.
  • By gzipped we reduced the message's size by around 7 folds. also, gzip is very fast so it's not a problem.

But this prevents users from watching the stream in super near real-time.

But I think 3 seconds lag is fine, it's how youtube and twitch works anw.

2f4c2bf client now read from blcok of data and schedule message according to offset
794dddb fix bug timing in message offset time
8dfa944 home page auto refresh every 15 seconds
b03f53d increase streampreview load time
38477bb smaller chat text on mobile
e780eb5 terminal are now exchanging block of message

v1.2.0

25 Jul 04:35
Compare
Choose a tag to compare

Important

All tstream client has to upgrade to v1.2.0 to be able to stream

Server

  • Add an SFU voice server. Currently only allow one producer for one room ( still has some bug with syncPeers )
  • Changed all the messages to using JSON (used text on the previous version) => this affects all components

TStream client

  • Add voice command /unmute and /mute
  • Allow 3 chars roomname

Viewer UI

  • Add simple search for live stream in home page
  • Add volume control in room
  • Responsive for mobile

Doc

  • Add discord server in README

Changelog

8c95aa6 Add CGO build
de5198a Add noti when failed to start voice service instead of turn off chat
2d05f25 Add peer connection to chat
62e2691 Add toggle voicce server
0c408d6 add chat response to client ping
3824649 add client activity check
637fe91 add search for UI and improve responsiveness in room
18e2641 added mute button and testsed all feature. seems to work well
0397674 all messages going through websocket now are in JSON format. our life are much easier now
ef0c013 fix bug failed to adjust volume on viewer side
489430c fix bug failed to start chat rightat first session
5b121a2 got an ugly version of sfu that's runnign though
c5fb68e hot fix sfu sync peers and add document for tstream chat
8d4f125 stream audio using ffmpeg + rtp
abcca67 useable voice streaming. client can change volume level and reconnection with audio whever streamer turn audio on. Need a bit fine tune to make it totatlly smooth
f72a065 we have our own mediadevices build for darwin arm64 now

v1.1.0

14 Jul 07:49
74f1003
Compare
Choose a tag to compare

TUI chat

  • Start with command tstream -chat. It'll auto-detect streaming session to open chat

Screen Shot 2021-07-14 at 12 48 04

CHAT

  • UI refactor a bit. but still needs a lot more work
  • UI add /name command so viewers can change their name
  • server => refactor message packaging

Improves and secures streamer - server connectivity

  • Add authorization for streamer connection.
    • Streamer connecting flow:
      • Send a POST API to the server to request create room. this request contains a secret that'll be used as the room's secret
      • Initialize a WebSocket connection
        • Send a secret
        • server verifies. if match with room secret => authorize connection

Changelog

d017818 Add route for streamer chat
a491c21 Increase version and add how to use TUI Chat
fb96ade add change name commnad for chat
eccc230 add config command for chat TUI
00ee692 base layout for chat
f4ee862 fix chat msg flow
25614bc server add mechanism to verify websocket connection from streamer

v1.0.0

12 Jul 14:37
Compare
Choose a tag to compare

Server

  • add boltDB : Currently, it only stores room info.
  • There is a coroutine to periodically sync state from RAM to DB
  • added a new api: POST /api/room : streamer must call this to request create room before connecting via WebSocket. This API performs some checks:
    • version checking of TStream. if the version is not compatible => return 426 to streamer
    • In case streamer requests to add a room already existed => user wants to reconnect, or maybe the room is taken by someone else. The server then checks the secret of the request with the room's Secret => if match then allows users to proceed

TStream

  • Add check if the user starts TStream inside a TStream session: using TSTREAM_SESSION env
  • When TStream is started it will generate a config at ~/.tstream.conf. Currently store: secret, and username
  • Version checking, display message require the user to upgrade if fails

Viewer

  • Add show recent streams on home page
  • Improve room state checking to display the right status
  • Improve responsiveness

v0.1.0

08 Jul 03:39
Compare
Choose a tag to compare

First release

  • Basic tstream package for streamer
  • Webapp for Viewers
  • Center server for broadcasting

Features:

  • 1 Streamer multiple viewers
  • Chatting