mirror of
https://github.com/levogevo/ffmpeg-builder.git
synced 2026-01-15 19:06:17 +00:00
add -P to efg and some improvements
This commit is contained in:
27
lib/efg.sh
27
lib/efg.sh
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
efg_usage() {
|
efg_usage() {
|
||||||
echo "efg -i input [options]"
|
echo "efg -i input [options]"
|
||||||
|
echo -e "\t[-P NUM] set preset (default: ${PRESET})"
|
||||||
echo -e "\t[-l NUM] low value (default: ${LOW})"
|
echo -e "\t[-l NUM] low value (default: ${LOW})"
|
||||||
echo -e "\t[-s NUM] step value (default: ${STEP})"
|
echo -e "\t[-s NUM] step value (default: ${STEP})"
|
||||||
echo -e "\t[-h NUM] high value (default: ${HIGH})"
|
echo -e "\t[-h NUM] high value (default: ${HIGH})"
|
||||||
@@ -12,10 +13,11 @@ efg_usage() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
set_efg_opts() {
|
set_efg_opts() {
|
||||||
local opts='pl:s:h:i:IU'
|
local opts='P:pl:s:h:i:IU'
|
||||||
local numOpts=${#opts}
|
local numOpts=${#opts}
|
||||||
# default values
|
# default values
|
||||||
unset INPUT
|
unset INPUT
|
||||||
|
PRESET=10
|
||||||
LOW=0
|
LOW=0
|
||||||
STEP=1
|
STEP=1
|
||||||
HIGH=30
|
HIGH=30
|
||||||
@@ -30,6 +32,13 @@ set_efg_opts() {
|
|||||||
local OPTARG OPTIND
|
local OPTARG OPTIND
|
||||||
while getopts "${opts}" flag; do
|
while getopts "${opts}" flag; do
|
||||||
case "${flag}" in
|
case "${flag}" in
|
||||||
|
P)
|
||||||
|
if ! is_positive_integer "${OPTARG}"; then
|
||||||
|
efg_usage
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
PRESET="${OPTARG}"
|
||||||
|
;;
|
||||||
I)
|
I)
|
||||||
echo_warn "attempting install"
|
echo_warn "attempting install"
|
||||||
sudo ln -sf "${SCRIPT_DIR}/efg.sh" \
|
sudo ln -sf "${SCRIPT_DIR}/efg.sh" \
|
||||||
@@ -169,19 +178,25 @@ efg_segment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
efg_encode() {
|
efg_encode() {
|
||||||
echo -n >"${GRAIN_LOG}"
|
local grainLogWIP="${GRAIN_LOG}.wip"
|
||||||
|
echo -n >"${grainLogWIP}"
|
||||||
for vid in "${EFG_DIR}/"*.mkv; do
|
for vid in "${EFG_DIR}/"*.mkv; do
|
||||||
echo "file: ${vid}" >>"${GRAIN_LOG}"
|
echo "file: ${vid}" >>"${grainLogWIP}"
|
||||||
for ((grain = LOW; grain <= HIGH; grain += STEP)); do
|
for ((grain = LOW; grain <= HIGH; grain += STEP)); do
|
||||||
local file="$(bash_basename "${vid}")"
|
local file="$(bash_basename "${vid}")"
|
||||||
local out="${EFG_DIR}/grain-${grain}-${file}"
|
local out="${EFG_DIR}/grain-${grain}-${file}"
|
||||||
echo_info "encoding ${file} with grain ${grain}"
|
echo_info "encoding ${file} with grain ${grain}"
|
||||||
echo_if_fail encode -P 10 -g ${grain} -i "${vid}" "${out}"
|
echo_if_fail encode -P "${PRESET}" -g ${grain} -i "${vid}" "${out}" || return 1
|
||||||
echo -e "\tgrain: ${grain}, bitrate: $(get_avg_bitrate "${out}")" >>"${GRAIN_LOG}"
|
echo -e "\tgrain: ${grain}, bitrate: $(get_avg_bitrate "${out}")" >>"${grainLogWIP}"
|
||||||
rm "${out}"
|
rm "${out}" || return 1
|
||||||
done
|
done
|
||||||
|
# remove segment once complete
|
||||||
|
rm "${vid}" || return 1
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# atomic move of grain log
|
||||||
|
mv "${grainLogWIP}" "${GRAIN_LOG}" || return 1
|
||||||
|
|
||||||
echo "$(<"${GRAIN_LOG}")"
|
echo "$(<"${GRAIN_LOG}")"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user