matanui159 / ReplaySorcery

An open-source, instant-replay solution for Linux
GNU General Public License v3.0
855 stars 27 forks source link

Add Microphone to the Capture #87

Open Gladox114 opened 3 years ago

Gladox114 commented 3 years ago

Is your feature request related to a problem? Please describe. Im always frustrated when I don't hear myself screaming in a funny clip

Describe the solution you'd like Is it possible to also record the Microphone in ReplaySorcery? Would be awesome if they would get (as optional feature) it's own channel. (Multi channel like in Nvidia Shadow play)

Describe alternatives you've considered I don't have alternatives.

Additional context Capturing funny moments are mostly funny when you can hear yourself. Or get more context for a clip you saved.

matanui159 commented 3 years ago

This is probably similar to #32

FabioSedia commented 3 years ago

yes, i want this too!

Calinou commented 3 years ago

@FabioSedia Please don't bump issues without contributing significant new information. Use the :+1: reaction button on the first post instead.

Kirottu commented 3 years ago

For anyone that still has this as an issue, I have made a simple shell script for switching between capture modes and stopping ReplaySorcery. This requires the audio setting in replay-sorcery.conf to be "system" to work correctly and you should change the INPUT_MIC and INPUT_DESKTOP to the correct values for your system. You can find these values with pactl list short sources and pactl list short sinks

#!/bin/bash

INPUT_MIC="echo-cancelled-mic"
INPUT_DESKTOP="alsa_output.pci-0000_0a_00.4.analog-stereo.monitor"
SINK="Virtual2"

function disable() {
    pkill replay-sorcery

    pactl unload-module $(cat /tmp/rs-mic_sink)
    pactl unload-module $(cat /tmp/rs-mic_lo1)
    pactl unload-module $(cat /tmp/rs-mic_lo2)

    rm /tmp/rs-mic_*

    PULSE_SOURCE=$INPUT_DESKTOP replay-sorcery &
    notify-send -u normal "ReplaySorcery started" "ReplaySorcery started with desktop capture"
}

function enable() {
    pkill replay-sorcery
    echo $(pactl load-module module-null-sink sink_name=$SINK) > /tmp/rs-mic_sink
    echo $(pactl load-module module-loopback source=$INPUT_MIC sink=$SINK) > /tmp/rs-mic_lo1
    echo $(pactl load-module module-loopback source=$INPUT_DESKTOP sink=$SINK) > /tmp/rs-mic_lo2

    PULSE_SOURCE="$SINK".monitor replay-sorcery &
    notify-send -u normal "ReplaySorcery started" "ReplaySorcery started with mic and desktop capture"
}

if [ $1 == "-e" ] && [ ! -e /tmp/rs-mic_sink ]
then 
    enable
elif [ $1 == "-d" ]
then
    disable
elif [ $1 == "-k" ]
then
    pkill replay-sorcery

    pactl unload-module $(cat /tmp/rs-mic_sink)
    pactl unload-module $(cat /tmp/rs-mic_lo1)
    pactl unload-module $(cat /tmp/rs-mic_lo2)

    rm /tmp/rs-mic_*

    notify-send -u normal "ReplaySorcery stopped"
elif [ $1 == "-t" ]
then
    if [ -e /tmp/rs-mic_sink ]; then
        disable
    else
        enable
    fi
fi
Rmdhn1 commented 3 years ago

this would allow reaction clip and upload it on youtube to get a viral vid in 5 years