ffmpeg/wip

This commit is contained in:
Marc Beninca 2025-01-13 04:49:31 +01:00
parent 22fa109aac
commit 149cc47894
Signed by: marc.beninca
GPG key ID: 9C7613450C80C24F

View file

@ -26,6 +26,18 @@ rwx_ffmpeg_device_formats() {
# │ ffmpeg │ input │
# ╰────────┴───────╯
rwx_ffmpeg_input_blue_yeti() {
local device="alsa_input.\
usb-Generic_Blue_Microphones_2051BAB04XY8-00.analog-stereo"
set -- \
-f "pulse" \
-i "${device}" \
-ac "2" \
-ar "48000"
local argument
for argument in "${@}"; do echo "${argument}"; done
}
rwx_ffmpeg_input_file() {
local file="${1}"
local from="${2}"
@ -59,23 +71,43 @@ rwx_ffmpeg_input_nearstream_ccd10() {
# │ ffmpeg │ output │
# ╰────────┴────────╯
rwx_ffmpeg_output_fast() {
rwx_ffmpeg_output_audio_fast() {
set -- \
-codec:a "flac" \
-compression_level "0"
local argument
for argument in "${@}"; do echo "${argument}"; done
}
rwx_ffmpeg_output_audio_slow() {
set -- \
-codec:a "libopus" \
-b:a "128k"
local argument
for argument in "${@}"; do echo "${argument}"; done
}
rwx_ffmpeg_output_file() {
local file="${1}"
[ -n "${file}" ] || return
set -- \
-codec:v "libx264" \
-preset "ultrafast" \
-crf "0" \
-y "${file}"
local argument
for argument in "${@}"; do echo "${argument}"; done
}
rwx_ffmpeg_output_slow() {
local file="${1}"
local crf="${2}"
local codec="${3}"
[ -n "${file}" ] || return
rwx_ffmpeg_output_video_fast() {
set -- \
-codec:v "libx264" \
-preset "ultrafast" \
-crf "0"
local argument
for argument in "${@}"; do echo "${argument}"; done
}
rwx_ffmpeg_output_video_slow() {
local crf="${1}"
local codec="${2}"
[ -n "${codec}" ] || codec="libx264"
if [ -z "${crm}" ]; then
case "${codec}" in
@ -89,8 +121,7 @@ rwx_ffmpeg_output_slow() {
-preset "veryslow" \
-crf "${crf}" \
-movflags "+faststart" \
-pix_fmt "yuv420p" \
-y "${file}"
-pix_fmt "yuv420p"
local argument
for argument in "${@}"; do echo "${argument}"; done
}
@ -99,13 +130,34 @@ rwx_ffmpeg_output_slow() {
# │ ffmpeg │ record │
# ╰────────┴────────╯
rwx_ffmpeg_record_ccd10() {
rwx_ffmpeg_record_ccd10_yeti() {
local file="${1}"
[ -n "${file}" ] || return
set -- \
$(rwx_ffmpeg_input_nearstream_ccd10) \
$(rwx_ffmpeg_output_fast "${file}")
local argument
$(rwx_ffmpeg_input_blue_yeti) \
$(rwx_ffmpeg_output_video_fast) \
$(rwx_ffmpeg_output_audio_fast) \
$(rwx_ffmpeg_output_file "${file}")
echo "${@}"
ffmpeg "${@}"
}
# ╭────────┬────────╮
# │ ffmpeg │ reduce │
# ╰────────┴────────╯
rwx_ffmpeg_reduce() {
local input="${1}"
local output="${2}"
local from="${3}"
local to="${4}"
[ -n "${output}" ] || return
set -- \
$(rwx_ffmpeg_input_file "${input}" "${from}" "${to}") \
$(rwx_ffmpeg_output_video_slow) \
$(rwx_ffmpeg_output_audio_slow) \
$(rwx_ffmpeg_output_file "${output}")
echo "${@}"
ffmpeg "${@}"
}