// Shinobi (http://shinobi.video) - FFMPEG H.264 over HTTP Test | |
// How to Use | |
// 1. Start with `node ffmpegToWeb.js` | |
// 2. Get the IP address of the computer where you did step 1. Example : 127.0.0.1 | |
// 3. Open VLC and "Open Network Stream". | |
// 4. Input the following without quotes : `http://127.0.0.1:8001` and start. | |
var child = require('child_process'); | |
var events = require('events'); | |
var spawn = child.spawn; |
Markdown files allow embedding images in it. However it requires the image to be hosted at some location and we can add the url of the image to embed it.
Example:

We can use services like imgur or other services to host the images and use the hosted URL.
#!/bin/bash | |
# | |
# Prints the compute capability of the first CUDA device installed | |
# on the system, or alternatively the device whose index is the | |
# first command-line argument | |
device_index=${1:-0} | |
timestamp=$(date +%s.%N) | |
gcc_binary=${CMAKE_CXX_COMPILER:-$(which c++)} | |
cuda_root=${CUDA_DIR:-/usr/local/cuda} |
Tuning Intel Skylake and beyond for optimal performance and feature level support on Linux:
Note that on Skylake, Kabylake (and the now cancelled "Broxton") SKUs, functionality such as power saving, GPU scheduling and HDMI audio have been moved onto binary-only firmware, and as such, the GuC and the HuC blobs must be loaded at run-time to access this functionality.
Enabling GuC and HuC on Skylake and above requires a few extra parameters be passed to the kernel before boot.
Instructions provided for both Fedora and Ubuntu (including Debian):
Note that the firmware for these GPUs is often packaged by your distributor, and as such, you can confirm the firmware blob's availability by running:
Shell scripts can now query netdata easily!
eval "$(curl -s 'http://localhost:19999/api/v1/allmetrics')"
After this command, all the netdata metrics are exposed to shell. Check:
Dump your DMI information on Linux :
for i in `ls /sys/class/dmi/id | grep -v -E 'serial|uuid|power'`; do echo $i; cat /sys/class/dmi/id/$i; done
Applies to:
- Laptops and desktop systems that may need quirks to boot up properly with Linux.
NetworkManager supports WiFi powersaving but the function is rather undocumented.
From the source code: wifi.powersave can have the following value:
- NM_SETTING_WIRELESS_POWERSAVE_DEFAULT (0): use the default value
- NM_SETTING_WIRELESS_POWERSAVE_IGNORE (1): don't touch existing setting
- NM_SETTING_WIRELESS_POWERSAVE_DISABLE (2): disable powersave
#!/bin/bash | |
cd | |
wget https://01.org/sites/default/files/downloads/intelr-graphics-linux/sklgucver61.tar.bz2 && \ | |
tar xvjf sklgucver61.tar.bz2 && cd skl_guc_ver6_1/ && sudo ./install.sh | |
cd | |
wget https://01.org/sites/default/files/downloads/intelr-graphics-linux/kbldmcver101.tar.bz2 && \ |
Preamble:
In this post I will explore how to stream a video and audio capture from one computer to another using ffmpeg and netcat, with a latency below 100ms, which is good enough for presentations and general purpose remote display tasks on a local network.
The problem:
Streaming low-latency live content is quite hard, because most software-based video codecs are designed to achieve the best compression and not best latency. This makes sense, because most movies are encoded once and decoded often, so it is a good trade-off to use more time for the encoding than the decoding.