Driveway Cam

bash script to convert bvr files

to Mp4

I was looking for a method to convert .bvr files to mp4 without using up my Blue Iris camera servers processor. Currently I’m running an 4th gen i5 processor.  So it is not a workhorse compared to some other machines on my network. 

Note: This is a work in progress. 

If there is a better way, shoot me an email: james @ strickstuff [dot] com

 

 

#!/bin/bash
#
# Script to convert .bvr files to mp4 using ffmpeg
# NOTE: this is still a work in progress
# I am still working on the ffmpeg switches
# to make this work better. But it works fine
# as is.
#
#
# First pass & remove files as you convert them. 
##!/bin/bash
for vid in *.bvr; 
do ffmpeg -probesize 42M -framerate 30 -i $vid -vcodec copy -an -bsf:v h264_mp4toannexb "${vid%.*}.h264" && rm $vid;
done
#
# Second pass, 
#
for h264 in *.h264;
do ffmpeg -i $h264 "${h264%.*}.mp4" && rm $h264;
done
#
# This just merges all mp4s in the directory into a single file
# remove (or comment out) if not needed.
#
[ -e list.txt ] && rm list.txt
for f in *.mp4
do
echo "file $f" >> list.txt
done
ffmpeg -f concat -i list.txt -c copy joined-out.mp4 && rm list.txt

Edited an old conky script with updated colors to match my theme and added Spotify & BTC.


conky.config = { 
-- set to yes if you want Conky to be forked in the background
background = false,

cpu_avg_samples = 2,
net_avg_samples = 2,

out_to_console = false,

-- X font when Xft is disabled, you can pick one with program xfontsel
--font 7x12
--font 6x10
--font 7x13
--font 8x13
--font 7x12
--font *mintsmild.se*
--font -*-*-*-*-*-*-34-*-*-*-*-*-*-*
--font -artwiz-snap-normal-r-normal-*-*-100-*-*-p-*-iso8859-1

-- Use Xft?
use_xft = true,

-- Xft font when Xft is enabled
font = 'Bitstream Vera Sans Mono:size=8',

own_window_transparent = false,

--own_window_colour hotpink
-- Text alpha when using Xft
xftalpha = 0.8,

-- Update interval in seconds
update_interval = 1,
-- Create own window instead of using desktop (required in nautilus)
own_window = true,
own_window_transparent = true,
own_window_hints = 'undecorated,below,skip_taskbar',
own_window_type = 'desktop',

-- Use double buffering (reduces flicker, may not work for everyone)
double_buffer = true,

-- Minimum size of text area
minimum_width = 260, minimum_height = 5,
maximum_width = 260,

-- Draw shades?
draw_shades = false,

-- Draw outlines?
draw_outline = false,

-- Draw borders around text
draw_borders = false,

-- Stippled borders?
stippled_borders = no,

-- border width
border_width = 1,

-- Default colors and also border colors
default_color = 'white',
default_shade_color = 'white',
default_outline_color = 'white',

-- Text alignment, other possible values are commented
--alignment top_left
--minimum_size 10 10
gap_x = 15,
gap_y = 70,
alignment = 'top_right',
--alignment bottom_left
--alignment bottom_right

-- Gap between borders of screen and text

-- Add spaces to keep things from moving about? This only affects certain objects.
use_spacer = 'none',

-- Subtract file system buffers from used memory?
no_buffers = true,

-- set to yes if you want all text to be in uppercase
uppercase = false,

-- boinc (seti) dir
-- seti_dir /opt/seti

-- Possible variables to be used:

-- Variable Arguments Description 
-- acpiacadapter ACPI ac adapter state. 
-- acpifan ACPI fan state 
-- acpitemp ACPI temperature. 
-- adt746xcpu CPU temperature from therm_adt746x 
-- adt746xfan Fan speed from therm_adt746x 
-- battery (num) Remaining capasity in ACPI or APM 
-- battery. ACPI battery number can be 
-- given as argument (default is BAT0). 
-- buffers Amount of memory buffered 
-- cached Amount of memory cached 
-- color (color) Change drawing color to color 
-- cpu CPU usage in percents 
-- cpubar (height) Bar that shows CPU usage, height is 
-- bar's height in pixels 
-- downspeed net Download speed in kilobytes 
-- downspeedf net Download speed in kilobytes with one 
-- decimal 
-- exec shell command Executes a shell command and displays 
-- the output in torsmo. warning: this 
-- takes a lot more resources than other 
-- variables. I'd recommend coding wanted 
-- behaviour in C and posting a patch :-). 
-- execi interval, shell Same as exec but with specific interval. 
-- command Interval can't be less than 
-- update_interval in configuration. 
-- fs_bar (height), (fs) Bar that shows how much space is used on 
-- a file system. height is the height in 
-- pixels. fs is any file on that file 
-- system. 
-- fs_free (fs) Free space on a file system available 
-- for users. 
-- fs_free_perc (fs) Free percentage of space on a file 
-- system available for users. 
-- fs_size (fs) File system size 
-- fs_used (fs) File system used space 
-- hr (height) Horizontal line, height is the height in 
-- pixels 
-- i2c (dev), type, n I2C sensor from sysfs (Linux 2.6). dev 
-- may be omitted if you have only one I2C 
-- device. type is either in (or vol) 
-- meaning voltage, fan meaning fan or temp 
-- meaning temperature. n is number of the 
-- sensor. See /sys/bus/i2c/devices/ on 
-- your local computer. 
-- kernel Kernel version 
-- loadavg (1), (2), (3) System load average, 1 is for past 1 
-- minute, 2 for past 5 minutes and 3 for 
-- past 15 minutes. 
-- machine Machine, i686 for example 
-- mails Mail count in mail spool. You can use 
-- program like fetchmail to get mails from 
-- some server using your favourite 
-- protocol. See also new_mails. 
-- mem Amount of memory in use 
-- membar (height) Bar that shows amount of memory in use 
-- memmax Total amount of memory 
-- memperc Percentage of memory in use 
-- new_mails Unread mail count in mail spool. 
-- nodename Hostname 
-- outlinecolor (color) Change outline color 
-- pre_exec shell command Executes a shell command one time before 
-- torsmo displays anything and puts output 
-- as text. 
-- processes Total processes (sleeping and running) 
-- running_processes Running processes (not sleeping), 
-- requires Linux 2.6 
-- shadecolor (color) Change shading color 
-- stippled_hr (space), Stippled (dashed) horizontal line 
-- (height) 
-- swapbar (height) Bar that shows amount of swap in use 
-- swap Amount of swap in use 
-- swapmax Total amount of swap 
-- swapperc Percentage of swap in use 
-- sysname System name, Linux for example 
-- time (format) Local time, see man strftime to get more 
-- information about format 
-- totaldown net Total download, overflows at 4 GB on 
-- Linux with 32-bit arch and there doesn't 
-- seem to be a way to know how many times 
-- it has already done that before torsmo 
-- has started. 
-- totalup net Total upload, this one too, may overflow 
-- updates Number of updates (for debugging) 
-- upspeed net Upload speed in kilobytes 
-- upspeedf net Upload speed in kilobytes with one 
-- decimal 
-- uptime Uptime 
-- uptime_short Uptime in a shorter format

-- seti_prog Seti@home current progress
-- seti_progbar (height) Seti@home current progress bar
-- seti_credit Seti@hoome total user credit


-- variable is given either in format $variable or in ${variable}. Latter
-- allows characters right after the variable and must be used in network
-- stuff because of an argument
--${font Dungeon:style=Bold:pixelsize=10}I can change the font as well
--${font Verdana:size=10}as many times as I choose
--${font Perry:size=10}Including UTF-8,
-- stuff after 'TEXT' will be formatted on screen
--${font Grunge:size=12}${time %a %b %d}${alignr -25}${time %k:%M}

};

conky.text = [[
${color #2EB7FF}$sysname $kernel - $nodename 
#${font TlwgMono:size=9}
${color #2EB7FF}Uptime:${color lightgrey} $uptime ${color #2EB7FF} Load:${color lightgrey} $loadavg

#${color #2EB7FF}${execi 1000 cat /proc/cpuinfo | grep 'model name' | sed -e 's/model name.*: //'}
${color #2EB7FF}Usage:${color #2EB7FF} ${color lightgrey}${cpu}% ${color #2EB7FF}${cpubar}
${color #2EB7FF}${cpugraph 000000 2EB7FF}
${color #2EB7FF}Proces:${color lightgrey} $processes ${color #2EB7FF}Run:${color lightgrey} $running_processes ${color #2EB7FF}T1:${color lightgrey}${execi 30 sensors | grep 'Core 0' | cut -c15-18}°C ${color}${color #2EB7FF}T2:${color lightgrey}${execi 30 sensors | grep 'Core 1' | cut -c15-18}°C${color}${font}

${color #2EB7FF}RAM:${color lightgrey} $mem/$memmax - $memperc% ${alignr}${color #2EB7FF}${membar 5,110}
${color #2EB7FF}SWP:${color lightgrey} $swap/$swapmax - $swapperc% ${alignr}${color #2EB7FF}${swapbar 5,110}

${color #2EB7FF}HD IO: ${color lightgrey}${diskio}
${color #2EB7FF}${diskiograph 000000 2EB7FF}

${color #2EB7FF}Disc Mounts:
${color #2EB7FF} Root ${color lightgrey}${fs_used /}/${fs_size /}${alignr}${color #2EB7FF}${fs_bar 5,120 /}
${if_mounted /home/james/mounts/backup}${color #2EB7FF} Backup ${color lightgrey}${fs_used /home/james/mounts/backup}/${fs_size /home/james/mounts/backup}${alignr}${color #2EB7FF}${fs_bar 5,120 /home/james/mounts/backup}${endif}
${if_mounted /home/james/mounts/shares}${color #2EB7FF} Shares ${color lightgrey}${fs_used /home/james/mounts/shares}/${fs_size /home/james/mounts/shares}${alignr}${color #2EB7FF}${fs_bar 5,120 /home/james/mounts/shares}${endif}

${color #2EB7FF}Network: 
${color #2EB7FF}WLAN IP: ${color lightgrey}${addr wlo1} ${color #2EB7FF}LAN IP: ${color lightgrey}${addr eno2}
${color #2EB7FF}SSID: ${color lightgrey}${wireless_essid} ${color #2EB7FF}Bitrate: ${color lightgrey}${wireless_bitrate wlo1}
${color #2EB7FF}Qual: ${color lightgrey} ${wireless_link_qual_perc wlo1}% ${alignr}${color #2EB7FF}${wireless_link_bar 5,135 wlo1}
${color #2EB7FF}Down:${color lightgrey} ${downspeed wlo1} $alignr${color #2EB7FF} Up:${color lightgrey} ${upspeed wlo1}
${color #2EB7FF}${downspeedgraph wlo1 27,120 000000 2EB7FF 180} $alignr${color #2EB7FF}${upspeedgraph wlo1 27,120 000000 2EB7FF 25}
${color lightgrey}${totaldown wlo1} $alignr${color lightgrey}${totalup wlo1}

${color #2EB7FF}Battery:
${color #2EB7FF}Status ${color lightgrey}${battery} ${alignr}${color #2EB7FF}${battery_bar 5,120}
${color #2EB7FF}Time Remaining ${color lightgrey}${battery_time}
${if_running spotify}
${color #2EB7FF}Spotify: ${color lightgrey}${exec ~/.conky/conky-spotify/scripts/status.sh}
${color #2EB7FF}Title: ${color lightgrey}${exec ~/.conky/conky-spotify/scripts/title.sh}
${color #2EB7FF}Artist: ${color lightgrey}${exec ~/.conky/conky-spotify/scripts/artist.sh}
${color #2EB7FF}Album: ${color lightgrey}${exec ~/.conky/conky-spotify/scripts/album.sh}
#${exec ~/.conky/conky-spotify/scripts/cover.sh}${image ~/.conky/conky-spotify/current/current.jpg -p 200,465 -s 60x60}
${endif}
${color #2EB7FF}Bitcoin:
${color #2EB7FF}${font TlwgMono:size=14}BTC: ${color lightgrey}${font TlwgMono:size=14}${color lightgrey}$$${texeci 300 curl https://api.kraken.com/0/public/Ticker?pair=XXBTZUSD | jq ".result.XXBTZUSD.c[0]" | grep -oE "[0-9]*\..."}
]];

 

Basic Vanilla Ice Cream

Basic Vanilla Ice Cream Recipe
Prep Time15 mins
Cook Time30 mins
Course: Dessert
Cuisine: American
Servings: 6 Servings

Equipment

  • Ice Cream Maker

Ingredients

  • 1 ½ cups Whole Milk
  • 1 ⅛ cups Granulated Sugar
  • 3 cups Heavy Cream
  • 1 ½ tbsp Pure Vanilla Extract

Instructions

  • In a medium mixing bowl, use a hand mixer on low speed to combine the milk and granulated sugar until the sugar is dissolved, about 1 to 2 minutes.
  • Stir in the heavy cream and vanilla and mix.
  • Pour the mixture into freezer bowl, and let mix until thickened, about 20 to 25 minutes.
  • The ice cream will have a soft, creamy texture. If a firmer consistency is desired, transfer the ice cream to an airtight container and place in the freezer for about 2 hours. Remove from the freezer about 15 minutes before serving.

Merry Christmas 2019.

Merry Christmas everyone.

So very thankful for everything that I have right. As I sit here and sip on a martini and listen to some instrumental Christmas music, I find myself reflecting back on the many amazing Christmases I have had. 

Although, I must admit that Christmas does not seem the same without all of my 4 kids here at home. With the boys gone, it just does not seem the same. But, such is life. I cannot keep them here forever. 


2020 is going to be an amazing year! Many new things to come! 

I’m truly looking forward to the new year!  So much to come on the horizon! 2020 is going to be an amazing year! Very thankful to be in this position! 

Merry Christmas everyone! 

Websites went down.

It appears that several of my domains ended up with infected pages. I do not know how that happened and neither does Dreamhost. This is currently my second fresh install. What a pain in the buttocks this was. 

Hopefully, this will be the last time!  I changed my password for the second time, plus I added an additional FTP user to separate the most important sites in an effort to contain any future infections. 

EDIT: On a positive note, I updated WordPress and it appears to be working well. 


Infected websites suck!

 

The website was badly in need of an update. The photo section was antiquated and relied on PHP5.6 to work properly. Since Dreamhost hosts my website, I have limited control over PHP versions. After contacting Dreamhost support, both of us agreed that I need to replace Gallery3.

Initially, I started out using WordPress, but decided, in the end, to go with PiWigo instead. I just didn’t want to recreate the wheel since I already had photos separated in albums and had an already established directory structure.

End Product turned out pretty good. I’m still working on updating uploading more photos. Since I’ve been out of the Military, I have not done much updating to this website or photo albums.

Here’s the assignment for Lab3. The next class session will show us .

Public Class frmCompare

    '----JDS-----------------------
    'CREATED:    10/15/2014
    'CREATED BY: James Strickland
    'CLASS:      COP2010 - 090898
    'PURPOSE:    Write a Windows Application
    '            program that inputs
    '            three different integers
    '            and displays results
    '            in a listbox
    '----JDS-----------------------

    ' Declare variables
    ' inum=InputNumber
    Dim inum1, inum2, inum3 As Integer

    ' onum=OutputNumber
    Dim onum1, onum2, onum3, max, min As Integer

    Private Sub frmCompare_Load(sender As Object, _
                                e As EventArgs) _
                            Handles MyBase.Load

        ' Hide the "About" label at form load
        lblAbout.Visible = False

    End Sub


    Private Sub btnGo_Click(sender As Object, _
                        e As EventArgs) _
                        Handles btnExe.Click

        ' The following code is executed 
        ' when the EXECUTE button is pressed

        ' Get the users 3 numbers and load
        ' them into the 3 input variables
        inum1 = txtInput1.Text
        inum2 = txtInput2.Text
        inum3 = txtInput3.Text

        ' Clear list box encase user wants to 
        ' repeat program without scrolling 
        ' down listbox.
        LstBoxResults.Items.Clear()

        ' Display numbers as user entered them
        ' seperated by comma
        LstBoxResults.Items.Add("Numbers in User Order:")
        LstBoxResults.Items.Add(inum1 & ", " & inum2 & ", " & inum3)
        LstBoxResults.Items.Add("") ' simply creates a space between answers

        ' Display Sum of users entered numbers
        LstBoxResults.Items.Add("Sum of numbers:") ' Displays to user
        LstBoxResults.Items.Add(inum1 + inum2 + inum3) ' does the math
        LstBoxResults.Items.Add("") ' simply creates a space between answers

        ' Display Average of numbers
        LstBoxResults.Items.Add("Average of Numbers:") ' Displays to user
        LstBoxResults.Items.Add((inum1 + inum2 + inum3) \ 3) ' does the math
        LstBoxResults.Items.Add("") ' simply creates a space between answers

        ' Display Product of numbers
        LstBoxResults.Items.Add("Product of numbers:") ' Displays to user
        LstBoxResults.Items.Add(inum1 * inum2 * inum3) ' Does the math
        LstBoxResults.Items.Add("") ' simply creates a space between answers

        ' Display Largest of the 3 numbers
        LstBoxResults.Items.Add("Largest of the 3:")
        max = inum1 ' Init variable mas a first number entered, the compare below...

        If inum2 > max Then
            max = inum2 ' inum2 greater than max, init max as inum2 (inum2 is smaller)
        End If

        If inum3 > max Then
            max = inum3 ' inum3 greater than max, init max as inum3 (inum3 is smaller)
        End If

        LstBoxResults.Items.Add(max)
        LstBoxResults.Items.Add("") ' simply creates a space between answers

        ' Display Smallest of the 3 numbers
        LstBoxResults.Items.Add("Smallest of the 3:")
        min = inum1 ' init min as inum1

        If inum2 < min Then
            min = inum2 ' inum2 less than min, init min as inum2 (inum2 is bigger)
        End If

        If inum3 < min Then
            min = inum3 ' inum3 less than min, init min as inum3 (inum3 is bigger)
        End If

        LstBoxResults.Items.Add(min) ' Display results of min
        LstBoxResults.Items.Add("") ' simply creates a space between answers

    End Sub

    ' Close/Exit the program
    Private Sub btnExit_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) _
                              Handles btnExit.Click
        Close()

    End Sub



    Private Sub btnAbout_Click(sender As Object, _
                               e As EventArgs) _
                               Handles btnAbout.Click
        ' The below code hides the form content and 
        ' displays information about the programmer
        ' (when the user presses the "about" button)
        ' which happens to be me. For those who does
        ' not know me, I am a big deal around here..
        ' I mean, I didn't want to say nuthin.......

        ' Clear Form
        btnExe.Visible = False
        lblEnterNumbers.Visible = False
        lblInstruction.Visible = False
        txtInput1.Visible = False
        txtInput2.Visible = False
        txtInput3.Visible = False
        LstBoxResults.Visible = False

        ' About Programmer
        lblAbout.Visible = True

    End Sub

End Class