Tag Archives: games

RTMP / RTSP / HLS Streaming video

UPDATE: 20220906 – Started testing with steaming VR/360 also

RTMP stands for Realtime Messaging Protocol
RTSP stands for Realtime Streaming Protocol
HLS is a HTTP Live Streaming method

I needed a way to stream semi-realtime video to a website.
There are multiple use cases.

  • Streaming a boardgame online
  • Showing my desktop, while i was working on projects.
  • Watched (streamed) Curse of Oak Island with some friends while being in a Jitsi meeting at the same time together.

In all cases i used OBS to stream to the website.

Prepare the stream server:

Install nginx, with the rtmp module

wget http://nginx.org/download/nginx-1.9.7.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
tar -xvf nginx-1.9.7.tar.gz
unzip master.zip
cd nginx-1.9.7
./configure --add-module=../nginx-rtmp-module-master/
make && make install
mkdir -p /HLS/live/test # live is the stream name, test is the pass key
chown -R {nginx user} /HLS

create a config file

worker_processes  1;
error_log  logs/error.log debug;
events {
worker_connections  1024;
}
rtmp {
server {
listen 1935;
allow play all;

application live {
allow play all;
live on;
record all;
record_path /video_recordings;
record_unique on;
hls on;
hls_nested on;
hls_path /HLS/live;
hls_fragment 10s;

}

application vod {
play /video_recordings;
}

http {
include       mime.types;
default_type  application/octet-stream;

server {
listen 80;
server_name www.fash.nu;
add_header Access-Control-Allow-Origin *;

location /live {
types {
application/vnd.apple.mpegurl m3u8;
}
alias /HLS/live;
add_header Cache-Control no-cache;
}

location /mobile {
types {
application/vnd.apple.mpegurl m3u8;
}
alias /HLS/mobile;
add_header Cache-Control no-cache;
}

location / {
root   html;
index  index.html index.htm;
}
}

You need a webpage containing the embedded player

<!-- HTML -->
<video id='hls-example'  class="video-js vjs-default-skin" width="400" height="300" controls>
<source type="application/x-mpegURL" src="http://www.fash.nu:8080/live/test/index.m3u8">
</video>


<!-- JS code -->
<!-- If you'd like to support IE8 (for Video.js versions prior to v7) -->
<script src="https://vjs.zencdn.net/ie8/ie8-version/videojs-ie8.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/videojs-contrib-hls/5.14.1/videojs-contrib-hls.js"></script>
<script src="https://vjs.zencdn.net/7.2.3/video.js"></script>

<script>
var player = videojs('hls-example');
player.play();
</script>

Run the server part:

/usr/local/nginx/sbin/nginx -c /root/stream.conf

Now you can connect OBS to the streaming server

Open the webpage and enjoy!

2nd webcam showed card details. Also text boxes appeared who’s turn it was.

UPDATE: 20220906 – Started testing with steaming VR/360 also

When attending the MCH2022 talk about streaming 360 video, i made a mental note to try this with my Vuze cam, using current setup and the one suggested in the talk : https://www.youtube.com/watch?v=460vo1O5pC4

To check : EGJS

Vuze Android App

Uboot Game

2019-06-08 I’ve bought myself Uboot the game.

It is one of my favourite board games.

Playing with a cardboard uboot is … okay. But when you have a 3D printer .. do i need to say more?

Parts printed

3D printed version assembled and completed in Jan 2021

All assembled and put Leds inside.

Led’s are controlled by a Arduino, Mqtt or a fysical button can be used.

Made a Crokinole game

Crokinole is played on a circular wooden board, with wooden circular disks as playing pieces.

Possible origin is Canada.

Players take turns shooting disks across the circular wooden board by flicking the disks with their fingers. Players try to land their disks in scoring regions on the board, with the highest scoring area the recessed hole in the very center of the board. Each round, each player/side alternately shoots a set number of disks (usually 12 or 8), shooting one disk each turn.

Players must position their disk on the start of each of their turns in their quadrant in front of them, touching the outer scoring ring boundary.

If there are no opponent’s disks on the board, they must aim for the center of the board.

If there is an opponent’s disk on the board, they must aim and hit an opponent’s piece first, either directly, or by a carrom shot.

The center recessed hole is worth 20 points, and disks are removed and scored at the end of the round if they land in the center hole.

Disks that are outside the outer scoring ring at the end of each shot, or are touching the outer scoring ring at the end of each shot, are removed from play for the round.

Sketchup drawing with measurements

Shogi game lasercut

I designed playing pieces for a DIY made Shogi board.

Shogi (将棋, shōgi, English: /ˈʃoʊɡi/, Japanese: [ɕoːɡi]), also known as Japanese chess, is a strategy board game for two players. It is one of the most popular board games in Japan and is in the same family of games as Western chess, chaturanga, Xiangqi, Indian chess, and janggi. Shōgi means general’s (shō 将) board game (gi 棋). Western chess is sometimes called (Seiyō Shōgi 西洋将棋 lit. ’Western Shogi’) in Japan.

Shogi was the earliest chess-related historical game to allow captured pieces to be returned to the board by the capturing player. This drop rule is speculated to have been invented in the 15th century and possibly connected to the practice of 15th century mercenaries switching loyalties when captured instead of being killed.

Pieces Lasercut and Laser-engraved

Final board

Left side the turned over pieces, right side displays normal faceup pieces

I’ve designed the pieces and the markings on them using Inkscape.
Instead of the Japanese characters the pieces show the allowed movements. The Circled signs are on the back of the pieces.

Board and traditional characterset

Changed 51 card game

I changed the rules of this game.

Fifty-one is a card game where the aim is to stay under 51 points.

Fifty-one only uses the so-called picket cards; the seven through the ace. The distribution of points is as follows;

Card Points

77 points
88 points
90 points
10+10 or -10 points
Jack2 points
Queen3 points
King4 points
Ace1 or 11 points


The ‘suit’ (hearts/diamonds/clubs/spades) is not important.

At the start of the game, the cards are shuffled, the dealer deals three cards at random to each player and places the remaining cards face down on the table. The person after the dealer now plays a (high) card face up on the table, announces the number of points and takes a new card from the face down pile. The following players now play another card and add the number of points played to the number on the table and take a new card, for example: the first player plays an 8 and says ‘8’, second player plays a 7 and says ’15 ‘, the next player plays a king and says ’19’, the next plays an ace and says ’30’ (or ’20’) etc.

As soon as the point total gets close to 51, players should start playing cards like 9 or (-)10 to prevent the point total from going over 50. The first player who can no longer do this loses the round. After this, the game starts again, the loser usually acts as the new dealer.

If a player manages to collect three identical cards in the course of a round, he can pass. He then places the cards face down on the table, says pass, and stops playing. He can then no longer lose that round. (*)

After playing a card, if a player forgets to take a new card from the stock before the next player has played a card, he must continue playing with the remaining (two) cards.

When the deck of face-down cards is exhausted, the face-up cards are shuffled, placed face-down again, and play continues.

The game is played with 3 or 4 players. With more players there is no opportunity to collect favorable cards. (**)

I’ve played this a lot while traveling with bands on the bus. So what did I change:

(*) I skipped this rule
(**) When changing to the rules below we could play with 6-7 or maybe 8?

I used two decks of cards. Same as above, but I added two sixes, one (or 2) 5 and a 4.

6 Change the direction of playing, so you could be facing another turn when you just played a card!

5 Change hands, in opposite direction of playing (all players)

4 Drop you cards and get 3 new ones OR exchange with another player

3 ? be experimental!

We sometimes just played around with these rules. Just get the rules you are playing with clear at the start of the game

A board game we made

I designed with my friend Richard, a spooky board game.
It was made of two large multiplex pieces, about 75xm by 50cm. With walls 25 cm height (guessing)

There was a ground floor (graveyard) and a dungeon below that. You had to use dice to move, but there were traps.

  • Hidden trapdoors
  • A ball which knocked you over
  • Closed doors
  • Monsters
  • Puzzles
Drawing i made in 2023 from what i can remember.

The ball (4-5cm) was made of scrunched paper with a gypsum layer.
It could take two paths and depending on where you stood with your playing piece, could knock you over.

A few years later my parents bought Ghost Castle/Spookslot. Which was very much alike we’ve made.

Looking at the models i’ve been making the last few years, i could re-make this again??