Releases: qnkhuat/tstream
v1.3.3
v1.3.2
v1.3.1
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
Changelog
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
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
TUI chat
- Start with command
tstream -chat
. It'll auto-detect streaming session to open chat
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
- Streamer connecting flow:
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
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
First release
- Basic tstream package for streamer
- Webapp for Viewers
- Center server for broadcasting
Features:
- 1 Streamer multiple viewers
- Chatting