2025-01-06

image

 

imagemagick

  convert in.image -unique-colors -depth 8 out.txt


exiftool -G1 -a -s -Preview:all /path/to/files/

raw/dng

dcraw

  raw-identify

  dcraw -e 

  dcraw -i -v 

  dcarw -D

  dcraw -d

  dcraw -s 0 -q 0 -T -o 0 -6 -g 1 1 -W -w 

libraw

  unprocessed_raw


gimp

krita - dng

darktable - dng

rawtherapee - dng

digikam

Multi-pointer_X

 https://wiki.archlinux.org/title/Multi-pointer_X



xinput create-master [name]


xinput list


xinput reattach [slave device name or id] [master device name or id]


mouse to <new>


keyboard to <new>

alsa both hdmi & internal/3.5mm

 ~/.asoundrc



# /proc/asound/cards


# default - plug

#   asymed - asym

#     all - route - multi

#       intdmix - dmix

#         int - hw

#       hdmidmix3 - dmix

#         hdmi3 - hw

#     capture




pcm.int {

type hw

card PCH

# device 0

}

ctl.int {

type hw

card PCH

# device 0

}



pcm.hdmi3 {

type hw

card HDMI

device 3

}

ctl.hdmi3 {

type hw

card HDMI

device 3

}


pcm.hdmi7 {

type hw

card HDMI

device 7

}

ctl.hdmi7 {

type hw

card HDMI

device 7

}




pcm.intdmix {

type dmix

ipc_key 1024

slave {

pcm "int"

channels 2


period_time 0

period_size 1024

buffer_size 4096

rate 44100

}

bindings {

0 0

1 1

}


}



pcm.hdmidmix3 {

type dmix

ipc_key 4096

slave {

pcm "hdmi3"

channels 2


period_time 0

period_size 1024

buffer_size 4096

rate 44100

}

bindings {

0 0

1 1

}


}


pcm.hdmidmix7 {

type dmix

ipc_key 8192

slave {

pcm "hdmi7"

channels 2


period_time 0

period_size 1024

buffer_size 4096

rate 44100

}

bindings {

0 0

1 1

}


}


pcm.all {

type route

slave.pcm {

type multi


slaves.a.pcm "intdmix"

slaves.a.channels 2

bindings.0.slave a

bindings.0.channel 0

bindings.1.slave a

bindings.1.channel 1



slaves.b.pcm "hdmidmix3"

slaves.b.channels 2

bindings.2.slave b

bindings.2.channel 0

bindings.3.slave b

bindings.3.channel 1


slaves.c.pcm "hdmidmix7"

slaves.c.channels 2

bindings.4.slave c

bindings.4.channel 0

bindings.5.slave c

bindings.5.channel 1

}


ttable.0.0 1

ttable.1.1 1


ttable.0.2 1

ttable.1.3 1


ttable.0.4 1

ttable.1.5 1


}


ctl.all {

type hw

card PCH

}



pcm.!default {

type plug

# slave.pcm "dmixer"

slave.pcm "asymed"

  # slave.pcm "all"

    # slave.pcm "hdmidmix"

    # slave.pcm "hdmidmix3"

    # slave.pcm "hdmidmix7"

# slave.pcm "intdmix"

}





pcm.dmixer  {

  type dmix

  ipc_key 1024

  slave {


# HDMI

# pcm "hw:0,0"

# Analog

pcm "hw:0,3"



period_time 0

period_size 1024

buffer_size 4096

rate 44100

}

bindings {

0 0

1 1

}

}


pcm.asymed { 

        type asym 

        # playback.pcm "dmixer" 

        playback.pcm "all" 


        capture.pcm "hw:PCH" 

        # capture.pcm "hw:0,2" 


pcm.dsp0 { 

    type plug 

    slave.pcm "asymed" 



ctl.mixer0 {

type hw

card 0

}



Apache reverse proxy HTTPS to HTTP

 Listen a.b.c.d:443

<VirtualHost a.b.c.d:443>

    ServerName example.org

    # …SSL configuration…

    ProxyRequests off

    ProxyPass / http://localhost:3000/

    ProxyPassReverse / http://localhost:3000/

    RequestHeader set X-Forwarded-Protocol "https"

    Header edit Location ^http://(.*)$ https://$1

</VirtualHost>

ffmpeg

 

jpg -> mp4

ffmpeg -framerate 1 -pattern_type glob -i '*.jpg' -c:v libx264 video.mp4


ffmpeg -framerate 0.3 -pattern_type glob -i '*.jpg' -vf "scale=-1:3072,pad=4096:ih:(ow-iw)/2" -c:v libx264 video.mp4


video -> png

ffmpeg -skip_frame nokey -i file.avi -vf 'scale=128:72,tile=8x8' -an -vsync 0 keyframes%03d.png


change framerate

ffmpeg -i in.mp4 -filter:v "setpts=PTS*8" -an -vcodec copy -r 30 out.mp4

ffmpeg -i  in.mp4 -filter:v "setpts=0.1*PTS" -an  -r 60 out.mp4

ffmpeg -i  in.mp4 -vf "select='not(mod(n\,60))',setpts=N/FRAME_RATE/TB" -an -r 60  out.mp4

ffmpeg -i  in.mp4 -vf framestep=90,setpts=N/FRAME_RATE/TB -an -r 60 out.mp4

ffmpeg -i in.mp4 -c copy -f h264 - | ffmpeg -r 120 -i - -c copy out.mp4



ffmpeg -i i.mp4 -i 1.jpg -filter_complex "[1:v] fade=out:125:25:alpha=1 [intro]; [0:v][intro] overlay [v]" -map "[v]" -map 0:a -acodec copy  o5.mp4


ffmpeg -y -i i.mp4 -i 1.jpg -filter_complex "[1:v] fade=out [intro]; [0:v][intro] overlay=x=100:y=800 [v]" -map "[v]" -map 0:a -acodec copy  o9.mp4


ffmpeg -i i.mp4 -i 1.jpg -i a.svg -filter_complex "[0:v][1:v]overlay=100:600[v0];  [v0][2:v]overlay=W-200:30" -c:a copy -y o6.mp4


ffmpeg -i i.mp4 -i 1.jpg -i a.svg -filter_complex "[0:v][1:v]overlay=100:H-300[VV];  [VV][2:v]overlay=W-200:30" -c:a copy -y o6.mp4


ffmpeg -i i.mp4 -i s.svg -i l.svg -filter_complex "[0:v][1:v]overlay=100:H-150:enable='between(t,3,4)' [VV];  [VV][2:v]overlay=W-200:30:enable='between(t,1,2)'" -c:a copy -y o6.mp4



ffmpeg -ss $a -to $b -i $I -i $Logo -i ba0.svg -i ba2.svg -filter_complex

  "[0:v][1:v]overlay=W-160:30 [VV]; [VV][2:v]overlay=100:H-150 [VVV]; [VVV][3:v]overlay=100:H-150:enable='between(t,$T2,30)'" -y $OPT $N

ffmpeg cam

 

ffmpeg /dev/video0


ffmpeg -f v4l2 -list_formats all -i /dev/video0

ffplay -f v4l2 -list_formats all /dev/video0


arecord -l

cat /proc/asound/cards

hw:1,0

lsusb -v | grep 'tSamFreq'


arecord -f S16_LE -c 2  -D "hw:1,0" a-001

ffplay -f alsa -i hw:1,0


ffplay -f v4l2 -video_size 1920x1080 -framerate 30 /dev/video0

ffplay -f v4l2 -video_size 1280x720 -framerate 30 /dev/video0

ffplay -f v4l2 -video_size 1366x768 -framerate 30 /dev/video0


ffmpeg -f v4l2 -framerate 30 -video_size 1920x1080 -c:v mjpeg -i /dev/video0 -c:v copy output.mov


ffmpeg -f v4l2 -framerate 30 -c:v mjpeg -i /dev/video0 -c:v copy output.mkv

ffmpeg -f v4l2 -framerate 30 -c:v mjpeg -i /dev/video0 -f alsa -i hw:1,0 -c:v copy -c:a copy  output.mkv

ffmpeg -f v4l2 -framerate 30 -c:v mjpeg -i /dev/video0 -f alsa -i hw:1,0 -c copy  output.mkv

ffmpeg -f v4l2 -framerate 30 -c:v mjpeg -i /dev/video0 -f alsa -i hw:1,0 -c copy -f rawvideo  - | ffplay -

ffmpeg -f v4l2 -framerate 30 -c:v mjpeg -i /dev/video0 -f alsa -i hw:1,0 -c copy -f avi  - | ffplay -

ffplay -f v4l2 -framerate 30   /dev/video0 

vlc v4l2:///dev/video0 --input-slave=alsa://hw1,0 --alsa-samplerate=96000




bluetooth

 

/usr/local/etc/init.d/bluez status


pulseaudio

bluetoothctl power on
bluetoothctl agent on

bluetoothctl
  scan on
  scan off

bluetoothctl devices
bluetoothctl info

bluetoothctl remove xx:xx:xx:xx:xx:xx
bluetoothctl trust      xx:xx:xx:xx:xx:xx
bluetoothctl pair        xx:xx:xx:xx:xx:xx
bluetoothctl connect xx:xx:xx:xx:xx:xx
bluetoothctl info        xx:xx:xx:xx:xx:xx

pactl list sinks | grep Name:
pactl set-default-sink bluez_sink.xx_xx_xx_xx_xx_xx.a2dp_sink

pactl -- set-sink-volume 1 -10%
pactl -- set-sink-volume 1 +10%

pactl -- set-sink-volume 1 10%
pactl -- set-sink-volume 1 50%