Skip to content

Instantly share code, notes, and snippets.

View docPhil99's full-sized avatar

Phil docPhil99

  • University of Sussex
View GitHub Profile
@docPhil99
docPhil99 / video_loop_back.md
Last active February 9, 2023 16:35
How to pass video to a dummy webcam.
  1. Start the v4l2loopback module:
sudo modprobe v4l2loopback \
      devices=1 exclusive_caps=1 video_nr=5 card_label="Dummy Camera"
  1. I have a short test video call Speed1.avi, this can be played streamed to /dev/video5 with ffmpeg -re -stream_loop -1 -i Speed1.avi -vcodec rawvideo -pix_fmt yuv420p -f v4l2 /dev/video5
@docPhil99
docPhil99 / mint_dual_monitor.md
Last active January 27, 2023 13:36
Dual Monitor fixes in Linux Mint

Dual Monitor Linux Mint Login Screen Fix

Linux mint has a few annoyances when using dual monitors. First fixing the log in screen. By default, it uses the same resolution as the primary monitor in the secondary screen. My secondary monitor is much larger so it doesn't display correctly. It's only cosmentic but it annoys me.

Create or append the file /etc/lightdm/lightdm.conf.d/70-linuxmint.conf so that it has the lines

[SeatDefaults]
user-session=cinnamon
display-setup-script=/usr/bin/lightdmxrandr.sh
@docPhil99
docPhil99 / batch_convert_HEIC.md
Last active September 22, 2022 10:42
Fish shell tips - a work in progress

Batch convert HEIC using a fish shell

for p in *.HEIC;
  heif-convert $p (path change-extension jpg $p)
end

Note the path command required fish 3.5

@docPhil99
docPhil99 / video_play_back.md
Last active March 31, 2022 13:34
playback of F-log video with LUT on linux

Apply a cube LUT to mpv playback mpv -vf=lut3d=XT4_FLog_FGamut_to_ETERNA_BT.709_33grid_V.1.01.cube FILE.MOV or celluloid --mpv--vf=lut3d=XT4_FLog_FGamut_to_ETERNA_BT.709_33grid_V.1.01.cube FILE.MOV

@docPhil99
docPhil99 / stop_bash_on_error.md
Created October 20, 2021 14:03
Stop bash background commands on error

I have simple bash script that starts lots of processes. If one fails I want to stop everything. There maybe a better way to do this but I came up with this.

First create two scripts to test our main script. good_sleep that sleeps for 10 seconds and exits with no error.

#!/bin/bash
echo " good sleeping"
sleep 10
echo "done"
@docPhil99
docPhil99 / heic_to_jp_fish.md
Last active July 31, 2021 11:27
Batch convert heic files to jpg in fish shell

Batch convert heic files to jpg in fish shell

  • First install sudo apt install libheif-examples
  • Then run in correct directory for p in *.heic; heif-convert $p (basename $p .heic)".jpg"; end
@docPhil99
docPhil99 / igtv_bars.md
Last active March 29, 2021 12:51
Add bars to video for IGTV

To convert a video to 16x9 or 9x16 by adding black bars use ffmpeg as follows ffmpeg -i film1.mp4 -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2,setsar=1" film1_bars.mp4

This add bars to the top and bottom, flip both of the 1920:1080 to 1080:1920 for horizontal bars (better for computer monitors, TV etc)

Note IGTV also requires h.264 and a max of 30fps.

Thanks to https://stackoverflow.com/a/46693766/3361398

@docPhil99
docPhil99 / Mulled_wine.md
Last active December 23, 2020 20:20
My mulled wine!
  1. Make the spice mix:
  • 1 Tbs ground allspice
  • 1 Tbs ground cinnamon
  • 1 Tbs ground nutmeg
  • 1 tsp ground cloves
  • 1 tsp ground coriander
  • 1 tsp ground ginger

You can keep the leftovers in a jar.

@docPhil99
docPhil99 / testing_tensorflow_keras.md
Created December 7, 2020 15:26
Code for testing a custom layer in tensorflow 2 Keras

A simple example of code for testing a custom tensorflow Keras layer

    def my_init(shape, dtype=None):
        """This function is a custom kernel initialiser. It loads the weights from a matlab file. Adapt as need"""
        matlab = io.loadmat('../matlab/weights.mat')
        wfilter = matlab['wfilter']
        if shape != wfilter.shape:
            raise Exception('Shaped do not match')
        return tf.constant(wfilter, dtype=dtype)

This is running on Linux Mint 20

  • Install docker.
    • sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common

    • curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

    • sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(. /etc/os-release; echo "$UBUNTU_CODENAME") stable"

    • sudo apt-get update

    • sudo apt install docker-ce docker-compose

    • sudo usermod -aG docker $USER

  • and test with docker --version