Skip to content

Instantly share code, notes, and snippets.


Jan Koppe JanKoppe

View GitHub Profile
View gist:140642d3d0e290d78416c83548a65fef
$ LIBVA_DRIVER_NAME=i965 ffmpeg -y -init_hw_device qsv=hw -filter_hw_device hw -f decklink -i 'DeckLink Quad HDMI Recorder (1)' -vf hwupload=extra_hw_frames=64,format=qsv -c:v h264_qsv -b:v 5M output.mp4
ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 10.2.0 (GCC)
configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librav1e --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --e
JanKoppe / DesktopVideoUpdateTool
Last active Oct 19, 2020
View DesktopVideoUpdateTool
# DesktopVideoUpdateTool -la
Available Devices:
* DeckLink Quad HDMI Recorder (Gc0272b0)
Firmware is up to date
JanKoppe / gist:96dc92564f223e86e21e28a66523518b
Last active Apr 15, 2020
ugly POC to get billable seconds per project for a gitlab runner from the api
View gist:96dc92564f223e86e21e28a66523518b
import gitlab
from datetime import datetime, timedelta
import dateutil.parser
import pytz
import pprint
import os
JanKoppe /
Last active Dec 9, 2019
36C3: Pretalx XML filter out track
JanKoppe / 1001.conf
Created Jul 2, 2019 — forked from blha303/1001.conf
Asterisk context
View 1001.conf
exten => _X.,1,Set(CALLERID(name)=
exten => _X.,n,Answer
exten => _X.,n,Wait(1)
exten => _X.,n,Playback(1001-recordtype) ; "Enter record type on your phone keypad, followed by the hash key. Press 1 to go to next character"
exten => _X.,n,Read(recordtype,,,si,)
exten => _X.,n,Playback(1001-domain) ; "Enter domain name to retrieve record, followed by the hash key"
exten => _X.,n,Read(domain,,,si,)
exten => _X.,n,Set(RECORD="${SHELL(/usr/bin/ "${recordtype}")}")
exten => _X.,n,Set(ADDR="${SHELL(/usr/bin/ "${domain}")}")
JanKoppe / group_vars_all.ayml
Created May 27, 2019
Ansible Templating issue
View group_vars_all.ayml
multiline: |
JanKoppe / .gitignore
Created May 2, 2019 — forked from smoser/.gitignore
cloud-init ubuntu nocloud example with network config
View .gitignore
JanKoppe /
Created May 2, 2019 — forked from goodjob1114/
how to modify .ova file on linux/Mac using terminal....export vm (OVF 1.0) from virtualbox, then modify some tag and hash value for import vm to ESXi

extract ova files from an archive

$ tar -xvf vmName.ova

modify ovf for some invalid tag

$ vi vmName.ovf

Better SSH Authorized Keys Management

A seemingly common problem that people encounter is how to handle all of your users authorized_keys file.

People struggle over management, ensuring that users only have specific keys in the authorized_keys file or even a method for expiring keys. A centralized key management system could help provide all of this functionality with a little scripting.

One piece of functionality overlooked in OpenSSH is the AuthorizedKeysCommand configuration keyword. This configuration allows you to specify a command that will run during login to retrieve a users public key file from a remote source and perform validation just as if the authorized_keys file was local.

Here is an example directory structure for a set of users with SSH public keys that can be shared out via a web server:

JanKoppe /
Last active Dec 28, 2018
Chaos-West Fahrplan quick overview/clock
import requests
import time
import icalendar
import datetime
import pytz
from colored import fg, bg, attr
def loopme():
r = requests.get('')
You can’t perform that action at this time.