mirror of
https://github.com/levogevo/ffmpeg-builder.git
synced 2026-03-16 11:10:10 +00:00
fix broken PGS by using mkvmerge
This commit is contained in:
@@ -299,11 +299,13 @@ set_encode_opts() {
|
|||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo
|
if [[ ${PRINT_OUT} == false ]]; then
|
||||||
echo_info "INPUT: ${INPUT}"
|
echo
|
||||||
echo_info "GRAIN: ${GRAIN}"
|
echo_info "INPUT: ${INPUT}"
|
||||||
echo_info "OUTPUT: ${OUTPUT}"
|
echo_info "GRAIN: ${GRAIN}"
|
||||||
echo
|
echo_info "OUTPUT: ${OUTPUT}"
|
||||||
|
echo
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# shellcheck disable=SC2034
|
# shellcheck disable=SC2034
|
||||||
@@ -449,11 +451,24 @@ gen_encode_script() {
|
|||||||
echo 'ffmpeg "${ffmpegParams[@]}" -dolbyvision 0 "${OUTPUT}" || exit 1'
|
echo 'ffmpeg "${ffmpegParams[@]}" -dolbyvision 0 "${OUTPUT}" || exit 1'
|
||||||
|
|
||||||
# track-stats and clear title
|
# track-stats and clear title
|
||||||
if [[ ${FILE_EXT} == 'mkv' ]] && has_cmd mkvpropedit; then
|
if [[ ${FILE_EXT} == 'mkv' ]] && has_cmd mkvmerge && has_cmd mkvpropedit; then
|
||||||
{
|
{
|
||||||
|
# ffmpeg does not reliably copy PGS subtitles without breaking
|
||||||
|
# them when cropped, so just use mkvmerge to make sure they get
|
||||||
|
# copied correctly
|
||||||
|
local muxxed='"${OUTPUT}.muxxed"'
|
||||||
|
local mergeCmd=(
|
||||||
|
mkvmerge
|
||||||
|
-o "${muxxed}"
|
||||||
|
--no-subtitles '"${OUTPUT}"'
|
||||||
|
--no-video --no-audio --no-chapters
|
||||||
|
--no-global-tags --subtitle-tracks eng '"${INPUT}"'
|
||||||
|
)
|
||||||
echo
|
echo
|
||||||
echo 'mkvpropedit "${OUTPUT}" --add-track-statistics-tags'
|
echo "${mergeCmd[*]} || exit 1"
|
||||||
echo 'mkvpropedit "${OUTPUT}" --edit info --set "title="'
|
echo "mv ${muxxed}" '"${OUTPUT}" || exit 1'
|
||||||
|
echo 'mkvpropedit "${OUTPUT}" --add-track-statistics-tags || exit 1'
|
||||||
|
echo 'mkvpropedit "${OUTPUT}" --edit info --set "title=" || exit 1'
|
||||||
}
|
}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -461,7 +476,7 @@ gen_encode_script() {
|
|||||||
} >"${genScript}"
|
} >"${genScript}"
|
||||||
|
|
||||||
if [[ ${PRINT_OUT} == true ]]; then
|
if [[ ${PRINT_OUT} == true ]]; then
|
||||||
echo_info "${genScript} contents:"
|
echo_info "${genScript} contents:" 1>&2
|
||||||
echo "$(<"${genScript}")"
|
echo "$(<"${genScript}")"
|
||||||
else
|
else
|
||||||
bash -x "${genScript}" || return 1
|
bash -x "${genScript}" || return 1
|
||||||
|
|||||||
Reference in New Issue
Block a user