Автоматизированная работа с большим кол-вом контейнеров и аудио дорожек при помощи .bat скриптов [Инструкция]

Страницы :   Пред.  1, 2, 3 ... 7, 8, 9 ... 16, 17, 18  След.
Ответить
 

Exner

Top Loader 02* 300GB

Стаж: 15 лет 1 месяц

Сообщений: 2271

Exner · 03-Окт-13 00:50 (11 лет 3 месяца назад, ред. 03-Окт-13 00:50)

Vadim3103
Какие дороги нужно оставить? Вот, к примеру, чтобы оставить дорогу Домашнего и Кравца нужно выполнить такой батник:
Код:
FOR %%i IN (*.m4v) DO (
mkvmerge -o "HOUSE\%%~ni.mkv" "--language" "0:rus" "--track-name" "0:MVO Domashnij" "--default-track" "0:yes" "--compression" "0:none" "--language" "1:eng" "--compression" "1:none" "--language" "3:rus" "--track-name" "3:MVO Kravec" "--compression" "3:none" "-a" "0,3" "%%i" "--track-order" "0:1,0:0,0:3" )
Батник. Увы командная строка кириллицу не пущает, так что подписать дороги пришлось транслитом.
[Профиль]  [ЛС] 

Vadim3103

Стаж: 14 лет 5 месяцев

Сообщений: 64


Vadim3103 · 03-Окт-13 06:37 (спустя 5 часов)

Exner писал(а):
61115589Vadim3103
Какие дороги нужно оставить? Вот, к примеру, чтобы оставить дорогу Домашнего и Кравца нужно выполнить такой батник:
Код:
FOR %%i IN (*.m4v) DO (
mkvmerge -o "HOUSE\%%~ni.mkv" "--language" "0:rus" "--track-name" "0:MVO Domashnij" "--default-track" "0:yes" "--compression" "0:none" "--language" "1:eng" "--compression" "1:none" "--language" "3:rus" "--track-name" "3:MVO Kravec" "--compression" "3:none" "-a" "0,3" "%%i" "--track-order" "0:1,0:0,0:3" )
Батник. Увы командная строка кириллицу не пущает, так что подписать дороги пришлось транслитом.
А субтитры останутся? А так нужны Кравец и английская дорога. Пасиба))
[Профиль]  [ЛС] 

Exner

Top Loader 02* 300GB

Стаж: 15 лет 1 месяц

Сообщений: 2271

Exner · 03-Окт-13 11:31 (спустя 4 часа)

Vadim3103 писал(а):
61117390А субтитры останутся?
К сожалению нет. Матрёшка не поддерживает такой формат субтитров. Если хотите с субтитрами, то можете рассмотреть вариант с WEB-DL 720p → https://rutr.life/forum/viewtopic.php?t=2242306. Вот и батник на первый сезон:
Код:
FOR %%i IN (*.mkv) DO (
mkvmerge -o "NEW\%%~ni.mkv"  "--compression" "0:none" "--compression" "1:none" "--compression" "4:none" "--compression" "5:none" "--compression" "6:none" "-a" "1,4" "-d" "0" "-s" "5,6" "%%i" "--track-order" "0:0,0:1,0:4,0:5,0:6" )
Наполнение в эпизодах других сезонов может отличаться, так что по мере необходимости обращайтесь ко мне в личку.
[Профиль]  [ЛС] 

Vadim3103

Стаж: 14 лет 5 месяцев

Сообщений: 64


Vadim3103 · 03-Окт-13 17:05 (спустя 5 часов, ред. 03-Окт-13 17:05)

Exner писал(а):
61119537
Vadim3103 писал(а):
61117390А субтитры останутся?
К сожалению нет. Матрёшка не поддерживает такой формат субтитров. Если хотите с субтитрами, то можете рассмотреть вариант с WEB-DL 720p → https://rutr.life/forum/viewtopic.php?t=2242306. Вот и батник на первый сезон:
Код:
FOR %%i IN (*.mkv) DO (
mkvmerge -o "NEW\%%~ni.mkv"  "--compression" "0:none" "--compression" "1:none" "--compression" "4:none" "--compression" "5:none" "--compression" "6:none" "-a" "1,4" "-d" "0" "-s" "5,6" "%%i" "--track-order" "0:0,0:1,0:4,0:5,0:6" )
Наполнение в эпизодах других сезонов может отличаться, так что по мере необходимости обращайтесь ко мне в личку.
А перекодировать субтитры можно? А в том рипе мне кажется качество другое хуже или это одно и тоже?
[Профиль]  [ЛС] 

Exner

Top Loader 02* 300GB

Стаж: 15 лет 1 месяц

Сообщений: 2271

Exner · 03-Окт-13 19:24 (спустя 2 часа 19 мин.)

Vadim3103 писал(а):
61123099А в том рипе мне кажется качество другое хуже или это одно и тоже?
Видео абсолютно идентичное.
http://screenshotcomparison.com/comparison/43286/picture:1
[Профиль]  [ЛС] 

Vadim3103

Стаж: 14 лет 5 месяцев

Сообщений: 64


Vadim3103 · 03-Окт-13 19:44 (спустя 19 мин., ред. 03-Окт-13 20:29)

Exner писал(а):
61125066
Vadim3103 писал(а):
61123099А в том рипе мне кажется качество другое хуже или это одно и тоже?
Видео абсолютно идентичное.
http://screenshotcomparison.com/comparison/43286/picture:1
))) я уже эту скачал а качать снова 200 гигов как-то не хочется, оставлю одну русскую ... сойдет....
лучше скажите что это "--track-order" "0:1,0:0,0:3"?
[Профиль]  [ЛС] 

Exner

Top Loader 02* 300GB

Стаж: 15 лет 1 месяц

Сообщений: 2271

Exner · 03-Окт-13 19:59 (спустя 14 мин., ред. 03-Окт-13 19:59)

Vadim3103 писал(а):
61125298оставлю одну русскую ... сойдет....
В таком случае Вам нужен будет такой батник:
Код:
FOR %%i IN (*.m4v) DO (
mkvmerge -o "NEW\%%~ni.mkv"  "--language" "1:eng" "--compression" "1:none" "--language" "3:rus" "--compression" "3:none" "-a" "3" "%%i" "--track-order" "0:1,0:3" )
Цитата:
"--track-order" "0:1,0:0,0:3"
Эти команды предписывают порядок расположения треков в конечном контейнере. То есть нулевой трек (дорога Домашнего) из m4v будет на втором месте, первый (видео) на первом, третий (Кравец) на третьем.
[Профиль]  [ЛС] 

dionus108

Стаж: 14 лет 7 месяцев

Сообщений: 166


dionus108 · 04-Окт-13 21:35 (спустя 1 день 1 час, ред. 04-Окт-13 21:35)

Для пакетного переименования файлов по списку (с возможностью оперативного редактирования) написал вот такой батник:
http://it.dnepro.org/2013/120.html
Как по мне - это наиболее удобный вариант для сложного либо однотипоного пакетного переименования, особенно если пользоваться поиском и заменой в текстовом редакторе (редактируя список имен файлов).
miha2154 писал(а):
60912757Проблема в том, что ffmpeg не умеет работать с AC3 5.1 384kbps и выше - портит ID кодека. Можно собрать сначала в mkv с помощью mkvmerge, но вот чем потом перегнать в avi...
VirtualDubMod должен понимать MKV и несколько дорожек. Вот есть две программы, которыми можно автоматизировать процесс:
http://dubman.sourceforge.net/
http://sourceforge.net/projects/virtualdubbatch/
[Профиль]  [ЛС] 

Exner

Top Loader 02* 300GB

Стаж: 15 лет 1 месяц

Сообщений: 2271

Exner · 10-Окт-13 19:57 (спустя 5 дней, ред. 10-Окт-13 19:57)

Вот пришлось воспользоваться утилитой из комплекта mkvtoolnix, а точнее mkvpropedit. Неправильно собрав 20 эпизодов из сериала я несколько огорчился. Вспомнил про mkvpropedit. Напомню, что данная прога позволяет изменять свойства (заголовки, имена треков и т.д.) матрешки без перепаковки. Написал батник для смены дефолтной дороги:
Код:

FOR %%i IN (*.mkv) DO (
mkvpropedit "%%~ni.mkv" --edit track:a1 --set flag-default=1 --edit track:a2 --set flag-default=0 )
Для смены дефолта, языка и имени трека:
Код:
FOR %%i IN (*.mkv) DO (
mkvpropedit "%%~ni.mkv" --edit track:a1 --set flag-default=1 --set name="new track name" --set language="rus" --edit track:a2 --set flag-default=0 --set name="new track name 2" --set language="eng" )
Жаль она не умеет добавлять и удалять дороги. Во всяком случае такой функции я не нашёл.
[Профиль]  [ЛС] 

RoxMarty

RG Мультфильмы

Стаж: 17 лет 9 месяцев

Сообщений: 14647

RoxMarty · 10-Окт-13 21:42 (спустя 1 час 44 мин.)

Цитата:
ришлось воспользоваться утилитой из комплекта mkvtoolnix, а точнее mkvpropedit
Насколько помнится, в ранних версиях (не знаю какая сейчас) она сильно косячила и портила файл (вплоть до нечитаемости вообще) и лично я решительно от неё отказался на всякий случай...
[Профиль]  [ЛС] 

miha2154

Стаж: 16 лет 5 месяцев

Сообщений: 12155

miha2154 · 10-Окт-13 21:56 (спустя 14 мин., ред. 10-Окт-13 21:56)

Цитата:
она сильно косячила и портила файл
Вот это нефига себе propedit!
[Профиль]  [ЛС] 

Exner

Top Loader 02* 300GB

Стаж: 15 лет 1 месяц

Сообщений: 2271

Exner · 10-Окт-13 22:27 (спустя 30 мин.)

RoxMarty писал(а):
61223070она сильно косячила и портила файл
Файлы воспроизводятся и проматываются без проблем. Видимых косяков не обнаружил. Тулникс 6.1.0.
[Профиль]  [ЛС] 

RoxMarty

RG Мультфильмы

Стаж: 17 лет 9 месяцев

Сообщений: 14647

RoxMarty · 10-Окт-13 22:32 (спустя 4 мин.)

Цитата:
Файлы воспроизводятся и проматываются без проблем
У меня тоже так было, к счастью, я много не лопатил таким образом тогда и когда заметил на паре-тройке такую бяку - сразу перестал. Уж лучше потерять побольше времени и пересобрать через обычный mmg
[Профиль]  [ЛС] 

HortonEN

Стаж: 16 лет 11 месяцев

Сообщений: 6333


HortonEN · 10-Окт-13 22:40 (спустя 8 мин.)

Exner писал(а):
61221477Жаль она не умеет добавлять и удалять дороги. Во всяком случае такой функции я не нашёл.
Конечно, не нашёл. Это есть очевидность. =)
Прога работает только с мета-данными.
Добавление/удаление дорожки ─ полный перемукс. ПропЭдит этого не потянет.
RoxMarty писал(а):
61223728Уж лучше потерять побольше времени и пересобрать через обычный mmg
Там, кстати, тоже есть "Ctrl-E". Это почти аналог ПропЭдита.
Ну, если вдруг не знал...
[Профиль]  [ЛС] 

RoxMarty

RG Мультфильмы

Стаж: 17 лет 9 месяцев

Сообщений: 14647

RoxMarty · 10-Окт-13 23:03 (спустя 22 мин.)

Цитата:
Там, кстати, тоже есть "Ctrl-E". Это почти аналог ПропЭдита.
Тогда прошу прощения, я считал, что речь идёт об этом:

Если о другом, тогда я не знаю, не тестировал, но рисковать не хочется
[Профиль]  [ЛС] 

Exner

Top Loader 02* 300GB

Стаж: 15 лет 1 месяц

Сообщений: 2271

Exner · 10-Окт-13 23:21 (спустя 18 мин., ред. 10-Окт-13 23:21)

RoxMarty писал(а):
61224175Если о другом
Батник создавался этой утилитой на Java:
скрытый текст
Экзешник из тулникса.
[Профиль]  [ЛС] 

Deadpool

Стаж: 18 лет 7 месяцев

Сообщений: 258

Deadpool · 02-Ноя-13 20:50 (спустя 22 дня, ред. 03-Ноя-13 01:13)

Добрый день.
Друзья, подскажите, пожалуйста, скрипт.
Имею:
Много серий в .mkv, с четырьмя звуковыми дорогами, двумя сабами и главами. Отдельно звуковые дороги по два экземпляра на серию, русский и английский соответственно, в формате m4a, названия имеют вид "названиефайла_rus.m4a" и "названиефайла_eng.m4a".
Требуется:
Массово пересобрать каждую серию по следующим параметрам:
не кодировать видео, старые аудиодороги убрать, на их место поставить новые в порядке сперва русскую, потом английскую, сабы сохранить, главы тоже.
Использовал такой скрипт, но почему-то остаётся дорога с комментами (четвёртая в оригинальном файле), она встаёт на первое место, но по умолчанию играет русский трек, а вот в названии эта оставшаяся дорога забирает инфу из второй дороги в оригинале, плюс не остаются главы.
Скрипт
FOR %%i IN (*.mkv) DO (
mkvmerge -o "new\%%~ni.mkv" "--no-audio" "%%~ni"_rus.aac.m4a "--language" "1:rus" "--track-name" "1:2x2" "--default-track" "1:yes" "--compression" "1:none" "%%~ni"_eng.aac.m4a "--language" "3:eng" "--track-name" "3:Original" "--compression" "3:none"
"-a" "1,3" "%%i" "--track-order" "0:0,0:1,0:3"
)
Если правильно понимаю, косяк мой в присваивании ID дорожкам и выставлению их в определённом порядке. Мб мне не следует "-а" использовать? Да и только сейчас понял, что ключ "--no-audio" в общем-то не нужен. Теоретически мне нужен скрипт, создающий временный файл без звуковых дорог, но со всем остальным, а потом в него же добавляющий мои дороги со всеми тэгами и выдающий на выходе готовый файл уже со всеми плюшками, а временный удаляющий.
Ну или если есть вариант проще - с радостью =)
UPD: В конце концов пришёл к такому скрипту
Клац
for %%i in (*.mkv) do "mkvmerge" -o "%%~ni.temp.mkv" "--no-audio" "%%i" & "mkvmerge" -o "%%~ni.new.mkv" "%
%~ni.temp.mkv" "%%~ni"_rus.aac.m4a "%%~ni"_eng.aac.m4a "--no-video" "--no-audio" "--no-subtitles" "%%i" & del "%
%~ni.temp.mkv"
Имею сабы, имею только мой звук и главы, беда в том, что звук остаётся без тэгов, по ID он встаёт последним (т.е. даже после сабов, но это связано с привязанными в временный файл сабами)
Так что теперь возникает вопрос - как прописать ID и тэги в звуковые дороги.
UPD2: В общем получилось вот что. Громоздковато, но зато работает. Если есть возможность упростить и облегчить - прошу подсказать.
Финалочка
for %%i in (*.mkv) do "mkvmerge" -o "%%~ni.temp.mkv" "--no-audio" "%%i" & "mkvmerge" -o "%%~ni.new.mkv" "%%~ni.temp.mkv" "%%~ni"_rus.aac.m4a "%%~ni"_eng.aac.m4a "--no-video" "--no-audio" "--no-subtitles" "%%i" & del "%%~ni.temp.mkv";
for %%i in (*new.mkv) do "mkvmerge" -o "%%~ni.done.mkv" "--language" "0:eng" "--track-name" "0:E1 - The Ring" "--default-track" "0:yes" "--forced-track" "0:no" "--language" "1:rus" "--track-name" "1:RUS" "--default-track" "1:no" "--forced-track" "1:no" "--language" "2:eng" "--track-name" "2:ENG" "--default-track" "2:no" "--forced-track" "2:no" "--sync" "3:-10" "--language" "3:rus" "--track-name" "3:2x2" "--default-track" "3:yes" "--forced-track" "3:no" "--sync" "4:-9" "--language" "4:eng" "--track-name" "4:Original" "--default-track" "4:no" "--forced-track" "4:no" "-a" "3,4" "-d" "0" "-s" "1,2" "-T" "--no-global-tags" "%%i" "--track-order" "0:0,0:3,0:4,0:1,0:2" & del "%%~ni.mkv"
И ещё вопросик - почему скрипт по переименованию работает только по последнему файлу в папке? Я говорю про
скрытый текст
for %%i in (*.avi) do (set fname=%%~ni) & call :renameFile
ren "%fname%.avi" "%fname:~0,-2%new.avi"
[Профиль]  [ЛС] 

19w85

Top Bonus 01* 300GB

Стаж: 17 лет 7 месяцев

Сообщений: 545

19w85 · 04-Ноя-13 03:10 (спустя 1 день 6 часов, ред. 04-Ноя-13 19:56)

Давненько не читал темку, почитал...мда, на эту тему без слёз не взглянешь...
Exner писал(а):
61115589
скрытый текст
Vadim3103
Какие дороги нужно оставить? Вот, к примеру, чтобы оставить дорогу Домашнего и Кравца нужно выполнить такой батник:
Код:
FOR %%i IN (*.m4v) DO (
mkvmerge -o "HOUSE\%%~ni.mkv" "--language" "0:rus" "--track-name" "0:MVO Domashnij" "--default-track" "0:yes" "--compression" "0:none" "--language" "1:eng" "--compression" "1:none" "--language" "3:rus" "--track-name" "3:MVO Kravec" "--compression" "3:none" "-a" "0,3" "%%i" "--track-order" "0:1,0:0,0:3" )
Батник. Увы командная строка кириллицу не пущает, так что подписать дороги пришлось транслитом.
Где вы такую чушь вычитали про кириллицу? (не удивлюсь если в шапке этой темы, ибо там вообще дофига ошибок, т.к. автор темы плохо шарит в батниках, но много выёживается...) Никакой проблемы с кириллицей в командной строке нету, просто надо либо батник в DOS(OEM)-кодировке сохранять (самый надёжный вариант), либо в начале батника переключать на Win-кодировку (командой chcp 1251, но для некоторых случаев это плохой вариант).
=======================================================
Deadpool писал(а):
61544217Имею:
скрытый текст
Много серий в .mkv, с четырьмя звуковыми дорогами, двумя сабами и главами. Отдельно звуковые дороги по два экземпляра на серию, русский и английский соответственно, в формате m4a, названия имеют вид "названиефайла_rus.m4a" и "названиефайла_eng.m4a".
Требуется:
Массово пересобрать каждую серию по следующим параметрам:
не кодировать видео, старые аудиодороги убрать, на их место поставить новые в порядке сперва русскую, потом английскую, сабы сохранить, главы тоже.
UPD2: В общем получилось вот что. Громоздковато, но зато работает. Если есть возможность упростить и облегчить - прошу подсказать.
Финалочка
for %%i in (*.mkv) do "mkvmerge" -o "%%~ni.temp.mkv" "--no-audio" "%%i" & "mkvmerge" -o "%%~ni.new.mkv" "%%~ni.temp.mkv" "%%~ni"_rus.aac.m4a "%%~ni"_eng.aac.m4a "--no-video" "--no-audio" "--no-subtitles" "%%i" & del "%%~ni.temp.mkv";
for %%i in (*new.mkv) do "mkvmerge" -o "%%~ni.done.mkv" "--language" "0:eng" "--track-name" "0:E1 - The Ring" "--default-track" "0:yes" "--forced-track" "0:no" "--language" "1:rus" "--track-name" "1:RUS" "--default-track" "1:no" "--forced-track" "1:no" "--language" "2:eng" "--track-name" "2:ENG" "--default-track" "2:no" "--forced-track" "2:no" "--sync" "3:-10" "--language" "3:rus" "--track-name" "3:2x2" "--default-track" "3:yes" "--forced-track" "3:no" "--sync" "4:-9" "--language" "4:eng" "--track-name" "4:Original" "--default-track" "4:no" "--forced-track" "4:no" "-a" "3,4" "-d" "0" "-s" "1,2" "-T" "--no-global-tags" "%%i" "--track-order" "0:0,0:3,0:4,0:1,0:2" & del "%%~ni.mkv"
Вообще лично я с подобной задачей перемукса матрёшки по нужным критериям вообще не сталкиваюсь (ибо мне хватает демукса, и последующего просмотра с подхватом кучи внешних нужных мне дорожек), но такое упорство в самостоятельном решении проблемы и последующий интерес к упрощению и улучшению, мне напомнил...меня самого и я не смог пройти мимо. Ну хватит лирики, перейдем к делу:
код выше - это, конечно, явный перебор, т.к. обработка даже не в 2, а в 3 этапа (с созданием аж двух временных файлов: *temp.mkv и *new.mkv) и это тройная потеря времени.
Я создал соответствующий тестовый файлик (дороги, сабы, главы) + внешние дороги, в точности как поставлено в условиях "задания" и чуток на нём поэкспериментировал и попутно немного поизучал ключи mkvmerge, как итог, переделал представленный выше код и теперь задача решается в одно действие:
Код:
mkdir END & for %%i in (*.mkv) do "Полный путь\MKVtoolnix\MKVmerge.exe" -o "END\%%~ni.done.mkv" "--no-audio" "--language" "0:eng" "--track-name" "0:%%~ni" "--default-track" "0:yes" "--forced-track" "0:no" "-d" "0" "-T" "--no-global-tags" "%%i" "--language" "0:rus" "--track-name" "0:2x2" "--default-track" "0:yes" "--forced-track" "0:no" "%%~ni_rus.aac.m4a" "--language" "0:eng" "--track-name" "0:Original" "--default-track" "0:no" "--forced-track" "0:no" "%%~ni_eng.aac.m4a" "--track-order" "0:0,1:0,2:0,0:5,0:6"
"--sync" "0:-10" и "--sync" "0:-9" удалил из кода, а то вдруг кто-то ещё воспользуется этим кодом и из-за этих sync получит ненужные ему сдвиги дорожки.

Deadpool писал(а):
61544217И ещё вопросик - почему скрипт по переименованию работает только по последнему файлу в папке? Я говорю про
скрытый текст
for %%i in (*.avi) do (set fname=%%~ni) & call :renameFile
ren "%fname%.avi" "%fname:~0,-2%new.avi"
Автор темы натаскал куски кода с различных форумов, но сам толком в них не разбирается, отсюда куча ошибок в кодах в шапке темы и поэтому, естественно, не работает как задумывалось. Конкретно этот код надо исправить совсем чуть-чуть (если интересны подробности, их можно прочитать в справке: call /?):
Код:
for %%i in (*.avi) do (set fname=%%~ni) & call :renameFile
:renameFile
ren "%fname%.avi" "%fname:~0,-2%new.avi"
[Профиль]  [ЛС] 

Deadpool

Стаж: 18 лет 7 месяцев

Сообщений: 258

Deadpool · 04-Ноя-13 14:39 (спустя 11 часов, ред. 04-Ноя-13 14:39)

19w85
действительно, так много лучше, правда порядок ID остался прежним (видео-саб-саб-аудио-аудио), но это уже можно поправить просто присвоив внутри скрипта айдишки и поменяв их.
Зато нет временных файлов. Спасибо огромное!
Вот к чему я пришёл, с правильным порядком. Не мог долго понять систему добавления и присваивания ID дорогам извне, но вроде разобрался. А понять не мог, что каждая вводимая дорога идёт новым контейнером, а значит и в трекордере, и в начальном присваивании она будет иметь вид "номер вводимого контейнера:номер вводимой дороги в новом контейнере"
скрытый текст
for %%i in (*.mkv) do "mkvmerge" -o "done\%%~ni.mkv" "--no-audio" "--language" "0:eng" "--track-name" "0:E1 - The Ring" "--default-track" "0:yes" "--forced-track" "0:no" "--language" "5:rus" "--track-name" "5:RUS" "--default-track" "5:no" "--forced-track" "5:no" "--language" "6:eng" "--track-name" "6:ENG" "--default-track" "6:no" "--forced-track" "6:no" "-d" "0" "-s" "5,6" "-T" "--no-global-tags" "%%i" "--sync" "0:-10" "--language" "0:rus" "--track-name" "0:2x2" "--default-track" "0:yes" "--forced-track" "0:no" "%%~ni_rus.aac.m4a" "--sync" "0:-9" "--language" "0:eng" "--track-name" "0:Original" "--default-track" "0:no" "--forced-track" "0:no" "%%~ni_eng.aac.m4a" "--track-order" "0:0,1:0,2:0,0:5,0:6"
[Профиль]  [ЛС] 

19w85

Top Bonus 01* 300GB

Стаж: 17 лет 7 месяцев

Сообщений: 545

19w85 · 04-Ноя-13 15:35 (спустя 55 мин.)

Deadpool писал(а):
61570629правда порядок ID остался прежним (видео-саб-саб-аудио-аудио)
После применения моего кода? Очень сильно сомневаюсь в этом! Но на всякий случай тогда хотелось бы увидеть MediaInfo mkv-файла-исходника, который обрабатывается (а ещё лучше семпл с него), потому что я очень тщательно тестировал и после применения моего кода при любых вариантах всегда должно быть (видео-аудио-аудио-саб-саб), т.е. вот этого достаточно (и при этом это самый универсальный вариант):
Код:
"--track-order" "0:0,1:0,2:0


Deadpool писал(а):
61570629но это уже можно поправить просто присвоив внутри скрипта айдишки и поменяв их.
При этом потеряется надёжность и универсальность, т.к. нужно знать точный ID сабов, чтобы его прописать + если в какой-то серии релизер чуток напутал порядок дорожек с сабами (либо аудио дорог будет меньшее количество и всё сместится), всё получится не так как должно, либо вообще будет сбой.
А заменять возможно уже имеющиеся полезные теги сабов бессмысленными заголовками RUS и ENG, тоже как бы смысла не имеет.
Deadpool писал(а):
61570629Зато нет временных файлов. Спасибо огромное!
Deadpool писал(а):
61570629
скрытый текст
for %%i in (*.mkv) do "mkvmerge" -o "done\%%~ni.mkv" "--no-audio" "--language" "0:eng" "--track-name" "0:E1 - The Ring" "--default-track" "0:yes" "--forced-track" "0:no" "--language" "5:rus" "--track-name" "5:RUS" "--default-track" "5:no" "--forced-track" "5:no" "--language" "6:eng" "--track-name" "6:ENG" "--default-track" "6:no" "--forced-track" "6:no" "-d" "0" "-s" "5,6" "-T" "--no-global-tags" "%%i" "--sync" "0:-10" "--language" "0:rus" "--track-name" "0:2x2" "--default-track" "0:yes" "--forced-track" "0:no" "%%~ni_rus.aac.m4a" "--sync" "0:-9" "--language" "0:eng" "--track-name" "0:Original" "--default-track" "0:no" "--forced-track" "0:no" "%%~ni_eng.aac.m4a" "--track-order" "0:0,1:0,2:0,0:5,0:6"
У меня был такой вариант, но чуть позже я его усовершенствовал и упростил до того кода, что разместил в предыдущем посте.
[Профиль]  [ЛС] 

Deadpool

Стаж: 18 лет 7 месяцев

Сообщений: 258

Deadpool · 04-Ноя-13 15:49 (спустя 14 мин., ред. 04-Ноя-13 15:49)

19w85 писал(а):
61572132
Deadpool писал(а):
61570629правда порядок ID остался прежним (видео-саб-саб-аудио-аудио)
После применения моего кода? Очень сильно сомневаюсь в этом! Но на всякий случай тогда хотелось бы увидеть MediaInfo mkv-файла-исходника, который обрабатывается (а ещё лучше семпл с него), потому что я очень тщательно тестировал и после применения моего кода при любых вариантах всегда должно быть (видео-аудио-аудио-саб-саб), т.е. вот этого достаточно (и при этом это самый универсальный вариант):
Код:
"--track-order" "0:0,1:0,2:0
Нет-нет, наверное, я не совсем корректно выразился. В файле порядок именно такой - видео-аудио-аудио-саб-саб, просто внутри mediainfo порядок такой
скрытый текст
General
Unique ID : 177294456916018644844258302390077937465 (0x8561AB9C6000AD3083FDBE29176AD739)
Complete name : F:\work\South Park\13\END\South.Park.S13E01.The.Ring.1080p.MTV.Vo.Eng.mkv
Format : Matroska
Format version : Version 4 / Version 2
File size : 479 MiB
Duration : 22mn 16s
Overall bit rate : 3 007 Kbps
Encoded date : UTC 2013-11-04 12:37:42
Writing application : mkvmerge v6.3.0 ('You can't stop me!') built on Jun 28 2013 20:09:41
Writing library : libebml v1.3.0 + libmatroska v1.4.0
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 22mn 16s
Width : 1 916 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 23.976 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Title : E1 - The Ring
Writing library : x264 core 88 r1471 1144615
Encoding settings : cabac=1 / ref=4 / deblock=1:-1:-1 / analyse=0x3:0x133 / me=tesa / subme=10 / psy=1 / psy_rd=0.60:0.00 / mixed_ref=1 / me_range=24 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=0 / chroma_qp_offset=-2 / threads=12 / sliced_threads=0 / nr=0 / decimate=1 / mbaff=0 / constrained_intra=0 / bframes=12 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / wpredb=1 / wpredp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=84 / rc=crf / mbtree=1 / crf=18.0 / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4 / vbv_maxrate=50000 / vbv_bufsize=62500 / ip_ratio=0.80 / aq=1:0.80
Language : English
Default : Yes
Forced : No
Audio #1
ID : 4
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : LC
Codec ID : A_AAC
Duration : 22mn 16s
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 44.1 KHz
Compression mode : Lossy
Title : 2x2
Language : Russian
Default : Yes
Forced : No
Audio #2
ID : 5
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : LC
Codec ID : A_AAC
Duration : 22mn 16s
Channel(s) : 6 channels
Channel positions : Front: L C R, Side: L R, LFE
Sampling rate : 48.0 KHz
Compression mode : Lossy
Title : Original
Language : English
Default : No
Forced : No
Text #1
ID : 2
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Title : RUS
Language : Russian
Default : No
Forced : No
Text #2
ID : 3
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Title : ENG
Language : English
Default : No
Forced : No
Menu #1
00:00:00.000 : en:00:00:00.000
00:00:32.866 : en:00:00:32.866
00:09:19.309 : en:00:09:19.309
00:16:43.377 : en:00:16:43.377
00:21:44.929 : en:00:21:44.929
Menu #2
00:00:00.059 : en:00:00:00.059
00:00:00.054 : en:00:00:00.054
т.е. порядок дорог правильный, порядок ID неправильный )) но это уже так, придирка. Скрипт, главное, рабочий.
А по поводу знания точных ID дорог - я считаю, что перед любой работой одно из самых главных действий - точно узнать всю информацию о материале. Так что полазить по медиаинфе меня не пугает)
UPD: плюс я ещё бы поменял один ключ на следующий, чтобы называть видео дорогу более-менее правильно
скрытый текст
в описании видеодороги
Код:
"--track-name" "0:%%~ni"
И вот тут следующий вопрос. Можно ли при таком коде каким-либо образом убрать первые, скажем, три символа? Изначальное название файла "01 бла-бла-бла", при таком коде в название дороги попадёт как раз всё название файла, а хотелось бы именно "бла-бла-бла"
[Профиль]  [ЛС] 

Exner

Top Loader 02* 300GB

Стаж: 15 лет 1 месяц

Сообщений: 2271

Exner · 04-Ноя-13 16:51 (спустя 1 час 2 мин.)

19w85 писал(а):
61565717просто надо либо батник в DOS(OEM)-кодировке сохранять (самый надёжный вариант), либо в начале батника переключать на Win-кодировку (командой chcp 1251, но для некоторых случае это плохой вариант).
Эмм... Как это сделать? Я не большой спец в этих кодировках и в блокноте могу сохранить лишь в ANSI, Unicode и UTF-8. У меня батники только в ANSI работают.
[Профиль]  [ЛС] 

19w85

Top Bonus 01* 300GB

Стаж: 17 лет 7 месяцев

Сообщений: 545

19w85 · 04-Ноя-13 19:52 (спустя 3 часа)

Deadpool писал(а):
61572246
19w85 писал(а):
61572132
Deadpool писал(а):
61570629правда порядок ID остался прежним (видео-саб-саб-аудио-аудио)
скрытый текст
После применения моего кода? Очень сильно сомневаюсь в этом! Но на всякий случай тогда хотелось бы увидеть MediaInfo mkv-файла-исходника, который обрабатывается (а ещё лучше семпл с него), потому что я очень тщательно тестировал и после применения моего кода при любых вариантах всегда должно быть (видео-аудио-аудио-саб-саб), т.е. вот этого достаточно (и при этом это самый универсальный вариант):
Код:
"--track-order" "0:0,1:0,2:0
Нет-нет, наверное, я не совсем корректно выразился. В файле порядок именно такой - видео-аудио-аудио-саб-саб, просто внутри mediainfo порядок такой, т.е. порядок дорог правильный, порядок ID неправильный )) но это уже так, придирка. Скрипт, главное, рабочий.
Да, не очень корректно, потому что "прежним" тут ничего не остаётся: даже порядок ID не остаётся прежними (в исходном файле, например, cабы имеют ID 7 и 8, а в итоговом они при правильном раскладе будут уже 4 и 5, а как сейчас ID 2 и 3). Но то что физическая позиция дороги в контейнере не соответствует номеру ID - это, конечно, не очень хорошо (хотя кроме как в MI - это нигде больше не видно, но кто знает, где ещё это проявится), так что, чтобы получить и правильную нумерацию ID придётся всё-таки всё прописать в track-order, т.е. "--track-order" "0:0,1:0,2:0,0:5,0:6" (в своём коде в первом моём посте на этой странице, я тоже исправил), т.е. средствами одного mkvmerge (без задействования доп.утилит) полностью универсально не сделать, надо точно знать номера потоков сабов.
Deadpool писал(а):
61572246А по поводу знания точных ID дорог - я считаю, что перед любой работой одно из самых главных действий - точно узнать всю информацию о материале. Так что полазить по медиаинфе меня не пугает)
Проверять каждую серию вручную в MI? Даже в пределах одного сезона могут встречаться отличия, поэтому чем универсальнее - тем надёжнее, но увы...
Deadpool писал(а):
61572246UPD: плюс я ещё бы поменял один ключ на следующий, чтобы называть видео дорогу более-менее правильно
скрытый текст
в описании видеодороги
Код:
"--track-name" "0:%%~ni"
И вот тут следующий вопрос. Можно ли при таком коде каким-либо образом убрать первые, скажем, три символа? Изначальное название файла "01 бла-бла-бла", при таком коде в название дороги попадёт как раз всё название файла, а хотелось бы именно "бла-бла-бла"
Можно, но только с вводом дополнительной промежуточной переменной из которой уже можно отбрасывать символы. Но чтобы сделать это внутри цикла For придётся использовать отложенное раскрытие переменных (и огрести потом проблемы, типа экранировки восклицательных и других спецзнаков, иногда встречающихся в именах файлов, если таковые будут), потому что более легкий вариант (call set=...) с присвоением переменной через call - внутри цикла не работает. Есть и другие варианты (но тогда весь код придётся неможко исправить)...но это в любом случае потом надо на всякий случай некоторое время потестить, и лично у меня нет ни малейшего желания этим заниматься, т.к. задача слишком простая и неинтересная (ибо уже "косметика").
=============================================================
Exner писал(а):
61573206
19w85 писал(а):
61565717просто надо либо батник в DOS(OEM)-кодировке сохранять (самый надёжный вариант), либо в начале батника переключать на Win-кодировку (командой chcp 1251, но для некоторых случае это плохой вариант).
Эмм... Как это сделать? Я не большой спец в этих кодировках и в блокноте могу сохранить лишь в ANSI, Unicode и UTF-8. У меня батники только в ANSI работают.
Это можно сделать практически любым текстовым редактором, кроме этого самого блокнота, встроенного в винду.
Я лично уже очень много лет пользуюсь стареньким "Bred3" (он меня устраивает на 90%), потому что все более навороченные аналоги, типа AkelPad и т.п. (несмотря на их многочисленные настройки интерфейса и т.д.) для меня показались неудобными после Bred3, к которому я привык.
P.S.
Ansi=Win (1251) кодировка
OEM=DOS кодировка
UTF-8 - это кстати тоже юникод, их много разновидностей (UTF-8, UTF-16 и т.д.), батники вообще очень плохо дружат с юникодом и он вообще нужен лишь для небольшой части консольных утилит.
[Профиль]  [ЛС] 

Exner

Top Loader 02* 300GB

Стаж: 15 лет 1 месяц

Сообщений: 2271

Exner · 05-Ноя-13 00:27 (спустя 4 часа)

19w85
Спасибо, работает
[Профиль]  [ЛС] 

Cutieboy

Стаж: 17 лет 4 месяца

Сообщений: 117


Cutieboy · 19-Ноя-13 14:23 (спустя 14 дней)

Подскажите команду ffmpeg чтобы без перекодировки склеить несколько аудио файлов с одинаковыми параметрами в один файл.
И тоже самое, но уже для разных аудио файлов
[Профиль]  [ЛС] 

Xpюша

Стаж: 15 лет 5 месяцев

Сообщений: 3635


Xpюша · 21-Ноя-13 02:15 (спустя 1 день 11 часов, ред. 21-Ноя-13 02:16)

Cutieboy писал(а):
61782368Подскажите команду ffmpeg чтобы без перекодировки склеить несколько аудио файлов с одинаковыми параметрами в один файл.
Для объединения файлов есть два варианта: создать текстовый файл со списком объединяемых файлов и передать этот файл FFmpeg-у, или прямо указать все нужные файлы в командной строке.
Второе выглядит так:
Код:
ffmpeg -i "concat:file1.ac3|file2.ac3|file3.ac3" -c:a copy newfile.ac3
Этим способом FFmpeg умеет объединять только файлы в потоковых форматах. Если их формат не потоковый, а контейнерный, то сначала надо преобразовать формат.
Но анекдотичность ситуации в том, что потоковые форматы можно объединять и без FFmpeg, простой командой "copy /b".
Метод со списком файлов предварительного преобразования форматов файлов не требует.
Cutieboy писал(а):
61782368И тоже самое, но уже для разных аудио файлов
Так же, как и выше, только в "-c:a" вместо "copy" указать нужный формат. И у выходного файла расширение правильное задать.
Подробная официальная информация здесь.
[Профиль]  [ЛС] 

Cutieboy

Стаж: 17 лет 4 месяца

Сообщений: 117


Cutieboy · 21-Ноя-13 18:28 (спустя 16 часов)

Xpюша
Такие рекомендации в сети встречал. Интересует шаблон без указания имен файлов. Чтобы срабатывало по расширению, типа как здесь:
Код:
FOR %%I IN (*.webm) DO (ffmpeg -i %%~nxI -vn -c:a copy %%~nI.ogg)
Код:
FOR %%i IN (*.avi) DO (ffmpeg.exe -i "%%i" -c:a copy "%%~ni".mp3)
Код:
FOR %%I IN (*.webm) DO (mkvextract tracks "%%~nxI" 1:"%%~nI.ogg")
[Профиль]  [ЛС] 

Xpюша

Стаж: 15 лет 5 месяцев

Сообщений: 3635


Xpюша · 21-Ноя-13 23:53 (спустя 5 часов, ред. 21-Ноя-13 23:53)

Cutieboy писал(а):
61812310Интересует шаблон без указания имен файлов. Чтобы срабатывало по расширению, типа как здесь
Шаблоны не гарантируют никакого определённого порядка получаемых имён файлов. Здесь не просто шаблон, а цикл, много раз запускающий программу, обрабатывающую по одному файлу за раз, и очерёдность их обработки значения не имеет. А при объединении файлов их очерёдность в списке таки важна. Поэтому только руками.
[Профиль]  [ЛС] 

dionus108

Стаж: 14 лет 7 месяцев

Сообщений: 166


dionus108 · 30-Ноя-13 18:02 (спустя 8 дней, ред. 30-Ноя-13 18:02)

Xpюша писал(а):
61816936
Cutieboy писал(а):
61812310Интересует шаблон без указания имен файлов. Чтобы срабатывало по расширению, типа как здесь
Шаблоны не гарантируют никакого определённого порядка получаемых имён файлов. Поэтому только руками.
Команда dir умеет сортировать файлы по имени, дате и пр. И маски соответсвенно понимает. Так что очень просто можно автоматизировать процесс. Если конкретнее, то шаги следующие:
    1. Получить отсортированный список файлов командой dir.
    2. Обрабатывая построчно этот список можно сгенерировать батник, содержащий необходимые команды.
    3. Запустить полученный батник на выполнение, и любоваться результатом.
[Профиль]  [ЛС] 

Xpюша

Стаж: 15 лет 5 месяцев

Сообщений: 3635


Xpюша · 02-Дек-13 15:52 (спустя 1 день 21 час, ред. 02-Дек-13 15:52)

dionus108 писал(а):
61932714Команда dir умеет сортировать файлы по имени, дате и пр.
А постановка задачи не содержит условия, что нужный порядок исходных файлов можно получить сортировкой по какому-то признаку.
dionus108 писал(а):
619327142. Обрабатывая построчно этот список можно сгенерировать батник, содержащий необходимые команды.
КАК?
Если сортировка файлов по алфавиту или ещё как-то устраивает, то там всего-то и нужно каждую строчку, выдаваемую командой "DIR /b", взять в апострофы и в начале приписать "file ". Но КАК это сделать bat-файлом?
(Нет, для своих нужд я и SED прикручу. Но объяснять кому-то, да ещё здесь, как им пользоваться - увольте.)
[Профиль]  [ЛС] 
 
Ответить
Loading...
Error