Update 2024-02-14 07:51 OpenBSD/amd64-x13
This commit is contained in:
100
.bin/OLD/screenrecord
Executable file
100
.bin/OLD/screenrecord
Executable file
@@ -0,0 +1,100 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
_vidfile="/home/sdk/rec-screen.mkv"
|
||||
_outfile="/home/sdk/rec-encoded-$(date "+%Y%m%d_%H%M%S").mp4"
|
||||
|
||||
while getopts 'ame' arg
|
||||
do
|
||||
case ${arg} in
|
||||
a) MIC=1; ;;
|
||||
m) MON=1; ;;
|
||||
e) EONLY=1; ;;
|
||||
esac
|
||||
done
|
||||
|
||||
_head_param="\
|
||||
-y \
|
||||
-loglevel error \
|
||||
-hide_banner"
|
||||
|
||||
_mon_in="\
|
||||
-thread_queue_size 16 \
|
||||
-use_wallclock_as_timestamps 1 \
|
||||
-f sndio \
|
||||
-i snd/mon"
|
||||
|
||||
_mon_proc="\
|
||||
-c:a pcm_s16le"
|
||||
|
||||
_mic_in="\
|
||||
-thread_queue_size 16 \
|
||||
-use_wallclock_as_timestamps 1 \
|
||||
-f sndio \
|
||||
-i snd/default"
|
||||
|
||||
_mic_proc="\
|
||||
-af pan='stereo|c0=FL|c1=FL' \
|
||||
-c:a pcm_s16le"
|
||||
|
||||
_vid_in="\
|
||||
-probesize 10000000 \
|
||||
-f x11grab \
|
||||
-i :0.0"
|
||||
|
||||
_vid_proc="\
|
||||
-framerate 30 \
|
||||
-c:v libx264rgb \
|
||||
-crf 0 \
|
||||
-qp 0 \
|
||||
-framerate 30 \
|
||||
-sws_flags neighbor \
|
||||
-preset ultrafast \
|
||||
-tune zerolatency"
|
||||
|
||||
_map=0;
|
||||
|
||||
_ffmpeg_map=0
|
||||
_ffmpeg_param_input="${_vid_in}"
|
||||
_ffmpeg_param_procs="-map ${_ffmpeg_map}:v ${_vid_proc}"
|
||||
|
||||
if [ "${MIC}" ]; then
|
||||
_ffmpeg_map=$(( _ffmpeg_map + 1 ))
|
||||
_ffmpeg_param_input="${_ffmpeg_param_input} ${_mic_in}"
|
||||
_ffmpeg_param_procs="${_ffmpeg_param_procs} -map ${_ffmpeg_map}:a ${_mic_proc}"
|
||||
fi
|
||||
|
||||
if [ "${MON}" ]; then
|
||||
_ffmpeg_map=$(( _ffmpeg_map + 1 ))
|
||||
_ffmpeg_param_input="${_ffmpeg_param_input} ${_mon_in}"
|
||||
_ffmpeg_param_procs="${_ffmpeg_param_procs} -map ${_ffmpeg_map}:a ${_mon_proc}"
|
||||
fi
|
||||
|
||||
_ffmpeg_param="${_ffmpeg_param_input} ${_ffmpeg_param_procs}"
|
||||
|
||||
if [ -z "$EONLY" ]; then
|
||||
printf 'Press q to stop.\n'
|
||||
set -x
|
||||
ffmpeg ${_head_param} ${_ffmpeg_param} "${_vidfile}"
|
||||
set +x
|
||||
fi
|
||||
|
||||
if [ ${MON} ] || [ ${MIC} ]; then
|
||||
_audio_encode_param="-filter_complex amix=inputs=${_ffmpeg_map},stereotools=phase=5,compand=attacks=0:points=-80/-115|-35.1/-80|-35/-35|20/20 -c:a aac -b:a 160k"
|
||||
fi
|
||||
|
||||
printf 'Encoding...\n'
|
||||
set -x
|
||||
ffmpeg -hide_banner -y \
|
||||
-i "${_vidfile}" \
|
||||
-c:v libx264 \
|
||||
-crf 28 \
|
||||
-s 1920x1080 \
|
||||
-preset veryfast \
|
||||
-movflags faststart \
|
||||
-threads 8 \
|
||||
${_audio_encode_param} \
|
||||
"${_outfile}"
|
||||
set +x
|
||||
printf '%s\n' "${_outfile}"
|
||||
Reference in New Issue
Block a user