37 lines
1.1 KiB
Bash
Executable file
37 lines
1.1 KiB
Bash
Executable file
#!/bin/sh
|
|
# This took me far too long to figure out how to do but
|
|
# I think I've learned a lot from it. What a great exercise!
|
|
# These comments are for my future-self and whomever else.
|
|
# -- Siina, 2020.11.09
|
|
#
|
|
# Requirements:
|
|
# - libv4l (brought in by USE=v4l)
|
|
# - mpv
|
|
# - pulseaudio
|
|
|
|
## 0 - Find input and output sources with pactl
|
|
input="alsa_input.usb-AVerMedia_AVerMedia_USB_Device_52030300003520-02.iec958-stereo"
|
|
output="alsa_output.pci-0000_0b_00.4.analog-stereo"
|
|
|
|
## 1 - Configure video
|
|
# Set our device to 1080p otherwise it defaults to 480p
|
|
v4l2-ctl --set-fmt-video=width=1920,height=1080
|
|
|
|
## 2 - Launch viewer
|
|
# Connect to capture card and display captured images immediately
|
|
# Send to background so we can initiate the loop below
|
|
mpv --title="Capture Card" av://v4l2:/dev/video0 --profile=low-latency --untimed &
|
|
|
|
## 3 - Connect audio, send to background for loop
|
|
pacat -r --latency-msec=1 -d $input | pacat -p --latency-msec=1 -d $output &
|
|
|
|
## 4 - Cleanup
|
|
# Watch for mpv to exit
|
|
while pgrep -f mpv >/dev/null; do
|
|
sleep 3
|
|
continue
|
|
done
|
|
|
|
# Kill pacat since it's not needed
|
|
kill -9 $(pgrep -f pacat)
|
|
exit
|