I use a bunch of different tools to create video’s or stream stuff. Below is some info about those tools.
Software:
Kdenlive – Linear video editor (Adding text, transitions, etc)
VLC media player – For example to embed video in OBS
OBS – Opensource Broadcast software, i use this also to record my screen – You can use this as a virtual webcam, so you can fool around with the image.
Audacity – For editing audio
QPrompt – Teleprompter
For OBS i made a shortcut/macro keyboard thingy. Based on an arduino pro mini. (Which can connect to a computer acting like a HID, for example a keyboard or mouse) I use this one to emulate keystrokes which i’ve configured in OBS to do:
Switch to scene 1
Switch to scene 2
Transition from scene to scene
Start streaming
Start recording
Mute
[empty] – sometimes used as “start virtual webcam”
Slow transition
Blank screen
Display overlay text
(Originally i planned to do this with a Nextion Display)
Mobile Phone holder, like a third hand
Sometimes a Nikon on a tripod is better.
Chromakey / Green screenPortable versionGreen screens .. loads of funVideo grabbers
I don’t have a dedicated webcam for my battlestation. So i mainly use a Actioncam (4k) which can be connected via USB. Or i use a Nikon together with the Camlink.
So i record using my mobile, webcam, screen record Edit using Audacity and Kdenlive.
When recording with OBS i use MP4 as a container, this is a no-brainer to embed in websites. Use mkv when recording long shots, or when connections can break. (A mp4 will be corrupted)
First test to make a personalised logo for myself to use embedded on movies or in OBS streams.
Created a simple animation in Blender.
We need to export in RGBA (A for aplha), One of the supported video codex you can use is : Quicktime – QT rle. Select this one, and make sure it’s RGBA and not RGB
Now i can use the exported video file in OBS for streaming. I made the animation i a way that it can be looped. (Don’t forget to set this option in OBS.)
While you can use screencapture to record virtual machines, to real machines it is a different story.
Virtual machines running locally or remote can be accessed with spice/vnc or rdesktop. So you have a window displaying the remote screen, which you can capture using window capture.
There are also emulators which you can window-capture. But i want the real thing when available. Emulators give a too crisp screen output. And you want to have the real SID chip sound.
Hardware capturing:
Recording Virtual machines
I’ve got two capturing usb sticks:
Camlink 4K for hdmi capturing (Which i use mainly for my nikon)
Basetech BR116 RCA and S-Video capture (NTSC 720 x 480 , 30 FPS/PAL 720 x 576 , 25 FPS)
Devices and recording:
C64 – Use Basetech, and the DIN to RCA cable
Vic-20 – same as above
Raspberry – Use a HDMI and Camlink
Amiga – I use the basetech and grab the composite signal from the Scart connector, another solution is to use a A520 Modulator, which has Composite out. (There are schematics on the internet to connect hdmi to your amiga)
C64 DIN RCA cableC64 connectedAdd video capture deviceRaspberry HDMIRaspberry bootingC64 settings
Amiga A520 Modulator
The 520 Modulator connects to the amiga using a DB23 connector, and a Y cable for the 2 rca audio jacks. It outputs a composite video signal, and RF modulated signal to connect to a old Tube/Crt monitor
How i connected my amigaSubD23 to Scart plus audio
When recording video from those screens, i configure my OBS file format to MP4. This makes it easier to embed into websites. Only downside on writing to MP4 instead of mkv is the fact that the file probably isn’t recoverable when something crashes.
Audio capturing :
When capturing your movie don’t forget to add a audio source to your OBS sources. Use Audio input capture, or you can use Audio output capture when sound is playing by your system.
Demo a friend made using a demomaker (Music starts half way)
Flightsim on a Amiga (See more on flightsims)C64 Hellraiser (part 1) no de-comb/de-interlace filter
Note: check your output/cables https://www.youtube.com/watch?v=entQosOLjEI
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