I use Namecheap.com as a registrar, and they resale SSL Certs from a number of other companies, including Comodo.
These are the steps I went through to set up an SSL cert.
Frame-type options: | |
• --keyint <integer> (x264) | |
• -g <integer> (FFmpeg) | |
• Keyframe interval, also known as GOP length. This determines the maximum distance between I-frames. Very high GOP lengths will result in slightly more efficient compression, but will make seeking in the video somewhat more difficult. Recommended default: 250 | |
• --min-keyint <integer> (x264) | |
• -keyint_min <integer> (FFmpeg) | |
• Minimum GOP length, the minimum distance between I-frames. Recommended default: 25 | |
• --scenecut <integer> (x264) |
var BASE64_MARKER = ';base64,'; | |
function convertDataURIToBinary(dataURI) { | |
var base64Index = dataURI.indexOf(BASE64_MARKER) + BASE64_MARKER.length; | |
var base64 = dataURI.substring(base64Index); | |
var raw = window.atob(base64); | |
var rawLength = raw.length; | |
var array = new Uint8Array(new ArrayBuffer(rawLength)); | |
for(i = 0; i < rawLength; i++) { |
#! /usr/bin/python2 | |
import gtk.gdk | |
w = gtk.gdk.window_foreign_new( gtk.gdk.get_default_root_window().property_get("_NET_ACTIVE_WINDOW")[2][0] ) | |
w.set_decorations( (w.get_decorations()+1)%2 ) # toggle between 0 and 1 | |
gtk.gdk.window_process_all_updates() | |
gtk.gdk.flush() | |
# now bind this to super-r or something |
#!/bin/bash | |
ADB="/home/mrenouf/bin/adb" | |
# We need root on the host to mess with networking | |
if [[ $(whoami) != "root" ]]; then | |
echo "You must be root to run this script!" | |
exit 1 | |
fi; |
I use Namecheap.com as a registrar, and they resale SSL Certs from a number of other companies, including Comodo.
These are the steps I went through to set up an SSL cert.
See my DASH-IF presentation from October, 2014: | |
https://s3.amazonaws.com/misc.meltymedia/dash-if-reveal/index.html#/ | |
1. encode multiple bitrates with keyframe alignment: | |
ffmpeg -i ~/Movies/5D2_Portrait.MOV -s 1280x720 -c:v libx264 -b:v 1450k -bf 2 \ | |
-g 90 -sc_threshold 0 -c:a aac -strict experimental -b:a 96k -ar 32000 out.mp4 | |
My input was 30 fps = 3000 ms. If it were 29.97, then a GOP size of 90 frames will yield a base segment | |
size of 3003 milliseconds. You can make the segment size some multiple of this, e.g.: 6006, 9009, 12012. |
user web; | |
# One worker process per CPU core. | |
worker_processes 8; | |
# Also set | |
# /etc/security/limits.conf | |
# web soft nofile 65535 | |
# web hard nofile 65535 | |
# /etc/default/nginx |
# Vncserver service file for Debian or Ubuntu with systemd | |
# | |
# Install vncserver and tools | |
# e.g. apt-get install tightvncserver autocutsel gksu | |
# | |
# 1. Copy this file to /etc/systemd/system/vncserver@:1.service | |
# 2. Edit User= | |
# e.g "User=paul" | |
# 3. Edit the vncserver parameters appropriately in the ExecStart= line! | |
# e.g. the -localhost option only allows connections from localhost (or via ssh tunnels) |
var ctx = null, usingWebAudio = true; | |
try { | |
if (typeof AudioContext !== 'undefined') { | |
ctx = new AudioContext(); | |
} else if (typeof webkitAudioContext !== 'undefined') { | |
ctx = new webkitAudioContext(); | |
} else { | |
usingWebAudio = false; | |
} |
Streaming your Linux desktop to Youtube and Twitch via Nvidia's NVENC and VAAPI:
Considerations to take when live streaming:
The following best practice observations apply when using a hardware-based encoder for live streaming to any platform:
Set the buffer size (-bufsize:v
) equal to the target bitrate (-b:v
). You want to ensure that you're encoding in CBR mode.
Set up the encoders as shown: