running:
bash create-vod-hls.sh beach.mkv
will produce:
beach/
|- playlist.m3u8
|- 360p.m3u8
| #!/usr/bin/python | |
| from Foundation import NSZeroRect, NSMakeRect, NSMakeSize | |
| from AppKit import NSPNGFileType, NSCompositeCopy, NSGraphicsContext, NSCalibratedRGBColorSpace, NSBitmapImageRep, NSImage, NSImageNameComputer | |
| dimension = 512 | |
| size = NSMakeSize(dimension, dimension) | |
| rect = NSMakeRect(0, 0, dimension, dimension) | |
| image = NSImage.imageNamed_(NSImageNameComputer) | |
| image.setSize_(size) |
| package main | |
| import ( | |
| "fmt" | |
| "log" | |
| "os" | |
| "github.com/groob/plist" | |
| ) |
running:
bash create-vod-hls.sh beach.mkv
will produce:
beach/
|- playlist.m3u8
|- 360p.m3u8
Build VAAPI with support for VP8/9 decode and encode hardware acceleration on a Skylake validation testbed:
Build platform: Ubuntu 16.04LTS.
First things first:
Install baseline dependencies first
sudo apt-get -y install autoconf automake build-essential libass-dev libtool pkg-config texinfo zlib1g-dev libva-dev cmake mercurial libdrm-dev libvorbis-dev libogg-dev git libx11-dev libperl-dev libpciaccess-dev libpciaccess0 xorg-dev intel-gpu-tools
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:
| import objc | |
| from Foundation import NSBundle | |
| IOKit = NSBundle.bundleWithIdentifier_('com.apple.framework.IOKit') | |
| functions = [("IOServiceGetMatchingService", b"II@"), | |
| ("IOServiceMatching", b"@*"), | |
| ("IORegistryEntryCreateCFProperties", b"IIo^@@I"), | |
| ("IOPSCopyPowerSourcesByType", b"@I"), | |
| ("IOPSCopyPowerSourcesInfo", b"@"), |
| # Tested on 10.11 | |
| # Assumes your network is in a state to actually do the discovery and that you have | |
| # automatic timezone discovery enabled in Date & Time and Location services enabled | |
| # (Generally this means wifi enabled on your device and network stack is up) | |
| # For enabling location services and auto, check Allister's work here: | |
| # https://gist.github.com/arubdesu/b72585771a9f606ad800 | |
| from Foundation import NSBundle | |
| TZPP = NSBundle.bundleWithPath_("/System/Library/PreferencePanes/DateAndTime.prefPane/Contents/Resources/TimeZone.prefPane") |
| <?xml version="1.0" encoding="utf-8"?> | |
| <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" | |
| "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |
| <plist version="1.0"> | |
| <dict> | |
| <key>PayloadIdentifier</key> | |
| <string> | |
| com.apple.mdm.server1.local.%first_uuid%.alacarte</string> | |
| <key>PayloadRemovalDisallowed</key> | |
| <false /> |
# pull container for https://github.com/rcrowley/certified
docker pull groob/certified:latest
# create CA and intermediary CA; will prompty you for a password
docker run --rm -it --name certified -v $(pwd)/certs:/certified/etc -e GIT_USER=groob -e [email protected] groob/certified certified-ca C="US" ST="NY" L="New York" O="Example" CN="groob-ca"
# create server cert
docker run --rm -it --name certified -v $(pwd)/certs:/certified/etc -e GIT_USER=groob -e [email protected] groob/certified certified CN="servq.groob.io"
# create cert chain as server.crt
cat certs/ssl/certs/servq.groob.io.crt certs/ssl/certs/ca.crt certs/ssl/certs/root-ca.crt > server.crt
A curated list of AWS resources to prepare for the AWS Certifications
A curated list of awesome AWS resources you need to prepare for the all 5 AWS Certifications. This gist will include: open source repos, blogs & blogposts, ebooks, PDF, whitepapers, video courses, free lecture, slides, sample test and many other resources.