GRUB_INIT_TUNE="1000 334 1 334 1 0 1 334 1 0 1 261 1 334 1 0 1 392 2 0 4 196 2"
Original guide with a standard build is here.
With this guide, I'm adding more instructions to enable support for NVIDIA CUVID and NVIDIA NPP for enhanced encode and decode performance.
Warning:
If all you require is NVENC's enablement, you do NOT need the CUDA SDK.
The nv-codec-headers (below) is ALL you require.
| This project has been moved to a GitHub repository to allow Pull Requests. | |
| See: https://github.com/Ewpratten/youtube_ad_blocklist |
| #include <FS.h> | |
| #include <ESP8266WiFi.h> | |
| #include <WiFiClientSecure.h> | |
| #include <PubSubClient.h> | |
| #include <time.h> | |
| // Insert your FQDN of your MQTT Broker | |
| #define MQTT_SERVER "mqtt.srvx1.local" | |
| const char* mqtt_server = MQTT_SERVER; |
| Notes to make IR shield (made by LinkSprite) work in Raspberry Pi 3 (bought from Amazon [1]). | |
| The vendor has some documentation [2] but that is not complete and sufficient for Raspbian Stretch. | |
| Following are the changes that I made to make it work. | |
| $ sudo apt-get update | |
| $ sudo apt-get install lirc | |
| # Add the following lines to /etc/modules file | |
| lirc_dev | |
| lirc_rpi gpio_in_pin=18 gpio_out_pin=17 |
| const id = '__JUNK__'; | |
| // Public key need to be in PKCS8 format | |
| // ssh-keygen -e -m PKCS8 -f id_rsa.pub > id_rsa.pkcs8 | |
| const publicKey = fs.readFileSync(path.join(__dirname, 'id_rsa.pkcs8'), { encoding : 'utf8' }); | |
| const privateKey = fs.readFileSync(path.join(__dirname, 'id_rsa'), { encoding : 'utf8' }); | |
| // Sign | |
| const signer = crypto.createSign('RSA-SHA512'); | |
| signer.update(id); | |
| const signature = signer.sign(privateKey, 'hex'); |
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.
| /* http://meyerweb.com/eric/tools/css/reset/ | |
| v2.0-modified | 20110126 | |
| License: none (public domain) | |
| */ | |
| html, body, div, span, applet, object, iframe, | |
| h1, h2, h3, h4, h5, h6, p, blockquote, pre, | |
| a, abbr, acronym, address, big, cite, code, | |
| del, dfn, em, img, ins, kbd, q, s, samp, | |
| small, strike, strong, sub, sup, tt, var, |
Each of these commands will run an ad hoc http static server in your current (or specified) directory, available at http://localhost:8000. Use this power wisely.
$ python -m SimpleHTTPServer 8000