biump
This commit is contained in:
+32
-5
@@ -1,5 +1,13 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# ... (начало файла и функции action_* без изменений) ...
|
|
||||||
|
#==============================================================================
|
||||||
|
# Модуль действий: выполнение mkvmerge, создание симлинков и т.д.
|
||||||
|
#==============================================================================
|
||||||
|
|
||||||
|
# Функция для склейки видео и аудио
|
||||||
|
# $1: Исходный видеофайл
|
||||||
|
# $2: Исходный аудиофайл
|
||||||
|
# $3: Выходной файл
|
||||||
action_merge_mkv() {
|
action_merge_mkv() {
|
||||||
local video_file="$1"
|
local video_file="$1"
|
||||||
local audio_file="$2"
|
local audio_file="$2"
|
||||||
@@ -10,10 +18,26 @@ action_merge_mkv() {
|
|||||||
echo "ИСХОДНОЕ АУДИО : $audio_file"
|
echo "ИСХОДНОЕ АУДИО : $audio_file"
|
||||||
echo "РЕЗУЛЬТАТ : $output_file"
|
echo "РЕЗУЛЬТАТ : $output_file"
|
||||||
|
|
||||||
|
# --- ИЗМЕНЕННАЯ КОМАНДА MKVMERGE ---
|
||||||
|
# Порядок изменен для того, чтобы новая аудиодорожка была первой по счету.
|
||||||
|
#
|
||||||
|
# 1. Сначала в команду передается аудиофайл (он становится "файлом 0" для mkvmerge).
|
||||||
|
# 2. Затем передается видеофайл (он становится "файлом 1").
|
||||||
|
#
|
||||||
|
# 3. Опция --track-order 1:0,0:0 приказывает mkvmerge собрать итоговый файл в таком порядке:
|
||||||
|
# - Сначала взять дорожку 0 из файла 1 (предположительно, это видео).
|
||||||
|
# - Затем взять дорожку 0 из файла 0 (это наша новая звуковая дорожка).
|
||||||
|
# - Все остальные дорожки из видеофайла (оригинальный звук, субтитры) будут добавлены после.
|
||||||
|
#
|
||||||
|
# 4. --language 0:rus устанавливает русский язык для дорожки 0 из файла 0 (нашей новой дорожки).
|
||||||
|
#
|
||||||
|
# В результате итоговый файл будет иметь структуру: [Видео], [Новое Аудио], [Старое Аудио], ...
|
||||||
|
# Plex выберет [Новое Аудио] по умолчанию.
|
||||||
mkvmerge \
|
mkvmerge \
|
||||||
-o "$output_file" \
|
-o "$output_file" \
|
||||||
--language 0:und "$video_file" \
|
--track-order 1:0,0:0 \
|
||||||
--language 1:rus "$audio_file"
|
--language 0:rus "$audio_file" \
|
||||||
|
"$video_file"
|
||||||
|
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
echo "УСПЕХ: Файл создан."
|
echo "УСПЕХ: Файл создан."
|
||||||
@@ -23,6 +47,8 @@ action_merge_mkv() {
|
|||||||
echo
|
echo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Функция для создания символической ссылки
|
||||||
|
# (Эта функция остается без изменений)
|
||||||
action_create_symlink() {
|
action_create_symlink() {
|
||||||
local video_file="$1"
|
local video_file="$1"
|
||||||
local output_file="$2"
|
local output_file="$2"
|
||||||
@@ -40,7 +66,10 @@ action_create_symlink() {
|
|||||||
fi
|
fi
|
||||||
echo
|
echo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# Главная функция запуска обработки
|
# Главная функция запуска обработки
|
||||||
|
# (Эта функция остается без изменений)
|
||||||
run_processing() {
|
run_processing() {
|
||||||
if ! logic_prepare_file_lists; then return 1; fi
|
if ! logic_prepare_file_lists; then return 1; fi
|
||||||
if [ ${#FILE_TRIPLETS[@]} -eq 0 ]; then
|
if [ ${#FILE_TRIPLETS[@]} -eq 0 ]; then
|
||||||
@@ -64,7 +93,6 @@ run_processing() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Выполнение операции с прогресс-баром
|
|
||||||
local total_files=${#FILE_TRIPLETS[@]}
|
local total_files=${#FILE_TRIPLETS[@]}
|
||||||
local current_file=0
|
local current_file=0
|
||||||
|
|
||||||
@@ -73,7 +101,6 @@ run_processing() {
|
|||||||
progress=$(( 100 * current_file / total_files ))
|
progress=$(( 100 * current_file / total_files ))
|
||||||
echo "$progress"
|
echo "$progress"
|
||||||
|
|
||||||
# --- ИСПРАВЛЕНИЕ ЗДЕСЬ: БОЛЕЕ НАДЕЖНЫЙ СПОСОБ ПОЛУЧИТЬ ИМЯ ФАЙЛА ---
|
|
||||||
local video_for_display
|
local video_for_display
|
||||||
IFS=$'\t' read -r video_for_display _ _ <<< "$triplet"
|
IFS=$'\t' read -r video_for_display _ _ <<< "$triplet"
|
||||||
echo -e "XXX\n$((current_file + 1)) / $total_files\nОбработка: $(basename "$video_for_display")\nXXX"
|
echo -e "XXX\n$((current_file + 1)) / $total_files\nОбработка: $(basename "$video_for_display")\nXXX"
|
||||||
|
|||||||
Reference in New Issue
Block a user