Upload files to "record"
parent
e4a773aa61
commit
19c7058306
|
@ -0,0 +1,167 @@
|
|||
#!/bin/sh
|
||||
|
||||
# dependencies= pulseaudio, ffmpeg
|
||||
# Check README for more details. (https://github.com/whoisYoges/record-with-ffmpeg/blob/master/README.md)
|
||||
|
||||
########################
|
||||
### Variables Starts ###
|
||||
########################
|
||||
|
||||
videodir="$HOME/Videos/ffmpeg/"
|
||||
audiodir="$HOME/Audio/ffmpeg/"
|
||||
recordingresolution="1920x1080"
|
||||
outputresolution="1920x1080"
|
||||
fps="23"
|
||||
crf="18"
|
||||
|
||||
monitoraudioinput="alsa_output.pci-0000_0b_00.6.analog-stereo.monitor"
|
||||
microphoneaudioinput="nui_mic_denoised_out.monitor"
|
||||
monitoraudiochannel="2"
|
||||
microphoneaudiochannel="2"
|
||||
monitoraudiofrequency="48000"
|
||||
microphoneaudiofrequency="48000"
|
||||
outputaudiofrequency="48000"
|
||||
|
||||
######################
|
||||
### Variables Ends ###
|
||||
######################
|
||||
|
||||
########################
|
||||
### Functions Starts ###
|
||||
########################
|
||||
|
||||
checkVideoDir(){
|
||||
if [ ! -d "$videodir" ]; then
|
||||
mkdir -p "$videodir"
|
||||
fi
|
||||
}
|
||||
|
||||
checkAudioDir(){
|
||||
if [ ! -d "$audiodir" ]; then
|
||||
mkdir -p "$audiodir"
|
||||
fi
|
||||
}
|
||||
|
||||
internalAudioOnly(){
|
||||
ffmpeg \
|
||||
-f pulse -ac "$monitoraudiochannel" -ar "$monitoraudiofrequency" -i "$monitoraudioinput" \
|
||||
-acodec libmp3lame -ar "$outputaudiofrequency" -q:a 1 \
|
||||
"$(date +ffmpeg-"%Y-%m-%d-%I-%M-%S-%p").wav"
|
||||
}
|
||||
|
||||
microphoneOnly(){
|
||||
ffmpeg \
|
||||
-f pulse -ac "$microphoneaudiochannel" -ar "$microphoneaudiofrequency" -i "$microphoneaudioinput" \
|
||||
-acodec libmp3lame -ar "$outputaudiofrequency" -q:a 1 \
|
||||
"$(date +ffmpeg-"%Y-%m-%d-%I-%M-%S-%p").wav"
|
||||
}
|
||||
|
||||
internalAudioAndMicrophone(){
|
||||
ffmpeg \
|
||||
-f pulse -ac "$monitoraudiochannel" -ar "$monitoraudiofrequency" -i "$monitoraudioinput" \
|
||||
-f pulse -ac "$microphoneaudiochannel" -ar "$microphoneaudiofrequency" -i "$microphoneaudioinput" \
|
||||
-filter_complex amix=inputs=2 \
|
||||
-acodec libmp3lame -ar "$outputaudiofrequency" -q:a 1 \
|
||||
"$(date +ffmpeg-"%Y-%m-%d-%I-%M-%S-%p").wav"
|
||||
}
|
||||
|
||||
videoWithoutAudio(){
|
||||
ffmpeg \
|
||||
-f x11grab -r "$fps" -s "$recordingresolution" -i :0.0+0,0 \
|
||||
-vcodec libx264 -preset veryfast -crf "$crf" \
|
||||
-pix_fmt yuv420p \
|
||||
-s "$outputresolution" "$(date +ffmpeg-"%Y-%m-%d-%I-%M-%S-%p").mkv"
|
||||
}
|
||||
|
||||
videoWithInternalAudio(){
|
||||
ffmpeg \
|
||||
-f pulse -ac "$monitoraudiochannel" -ar "$monitoraudiofrequency" -i "$monitoraudioinput" \
|
||||
-f x11grab -r "$fps" -s "$recordingresolution" -i :0.0+0,0 \
|
||||
-vcodec libx264 -preset veryfast -crf "$crf" \
|
||||
-acodec libmp3lame -ar "$outputaudiofrequency" -q:a 1 \
|
||||
-pix_fmt yuv420p \
|
||||
-s "$outputresolution" "$(date +ffmpeg-"%Y-%m-%d-%I-%M-%S-%p").mkv"
|
||||
}
|
||||
|
||||
videoWithMicrophone(){
|
||||
ffmpeg \
|
||||
-f pulse -ac "$microphoneaudiochannel" -ar "$microphoneaudiofrequency" -i "$microphoneaudioinput" \
|
||||
-f x11grab -r "$fps" -s "$recordingresolution" -i :0.0+0,0 \
|
||||
-vcodec libx264 -preset veryfast -crf "$crf" \
|
||||
-acodec libmp3lame -ar "$outputaudiofrequency" -q:a 1 \
|
||||
-pix_fmt yuv420p \
|
||||
-s "$outputresolution" "$(date +ffmpeg-"%Y-%m-%d-%I-%M-%S-%p").mkv"
|
||||
}
|
||||
|
||||
videoWithMicrophoneAndInternalAudio(){
|
||||
ffmpeg \
|
||||
-f pulse -ac "$monitoraudiochannel" -ar "$monitoraudiofrequency" -i "$monitoraudioinput" \
|
||||
-f pulse -ac "$microphoneaudiochannel" -ar "$microphoneaudiofrequency" -i "$microphoneaudioinput" \
|
||||
-filter_complex amix=inputs=2 \
|
||||
-f x11grab -r "$fps" -s "$recordingresolution" -i :0.0+0,0 \
|
||||
-vcodec libx264 -preset veryfast -crf "$crf" \
|
||||
-acodec libmp3lame -ar "$outputaudiofrequency" -q:a 1 \
|
||||
-pix_fmt yuv420p \
|
||||
-s "$outputresolution" "$(date +ffmpeg-"%Y-%m-%d-%I-%M-%S-%p").mkv"
|
||||
}
|
||||
|
||||
######################
|
||||
### Functions Ends ###
|
||||
######################
|
||||
|
||||
###################
|
||||
### Main Starts ###
|
||||
###################
|
||||
PS3="Choose your recording option [1-8]: "
|
||||
options=("InternalAudioOnly" "MicrophoneOnly" "InternalAudioAndMic" "VideoWithoutAudio" "VideoWithInternalAudio" "VideoWithMic" "VideoWithBothMicAndInternalAudio" "Quit")
|
||||
|
||||
select one in "${options[@]}"; do
|
||||
case $one in
|
||||
InternalAudioOnly)
|
||||
checkAudioDir
|
||||
cd "$audiodir"
|
||||
internalAudioOnly
|
||||
;;
|
||||
MicrophoneOnly)
|
||||
checkAudioDir
|
||||
cd "$audiodir"
|
||||
microphoneOnly
|
||||
;;
|
||||
InternalAudioAndMic)
|
||||
checkAudioDir
|
||||
cd "$audiodir"
|
||||
internalAudioAndMicrophone
|
||||
;;
|
||||
VideoWithoutAudio)
|
||||
checkVideoDir
|
||||
cd "$videodir"
|
||||
videoWithoutAudio
|
||||
;;
|
||||
VideoWithInternalAudio)
|
||||
checkVideoDir
|
||||
cd "$videodir"
|
||||
videoWithInternalAudio
|
||||
;;
|
||||
VideoWithMic)
|
||||
checkVideoDir
|
||||
cd "$videodir"
|
||||
videoWithMicrophone
|
||||
;;
|
||||
VideoWithBothMicAndInternalAudio)
|
||||
checkVideoDir
|
||||
cd "$videodir"
|
||||
videoWithMicrophoneAndInternalAudio
|
||||
;;
|
||||
Quit)
|
||||
printf "Exitting...."
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
printf "Invalid Choice."
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
#################
|
||||
### Main Ends ###
|
||||
#################
|
Loading…
Reference in New Issue