Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » VirtualDub

Модерирует : gyra, Maz

Widok (19-05-2010 14:37): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

qwertyop



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
@echo off
if exist "%~n1_converted.mkv" goto exit
mkvmerge -i %1 > mkvcvtmp.txt
find /c "WMV3)" mkvcvtmp.txt
if not errorlevel 1 goto end
find /c "video (V_MS/VFW" mkvcvtmp.txt
if not errorlevel 1 goto end
find /c "Track ID 1: audio" mkvcvtmp.txt
if not errorlevel 1 goto end
 
find /c "Track ID 4: audio" mkvcvtmp.txt
if not errorlevel 1 goto 4tr
find /c "Track ID 3: audio" mkvcvtmp.txt
if not errorlevel 1 goto 3tr
find /c "Track ID 2: audio" mkvcvtmp.txt
if not errorlevel 1 goto 2tr
goto end
 
:4tr
mkvextract tracks "%1" 1:mkvcvtmp.h264 2:mkvcvtmp.tr2 3:mkvcvtmp.tr3 4:mkvcvtmp.tr4
avc2avi.exe -i mkvcvtmp.h264 -o mkvcvtmp.avi -f 23.976
if exist mkvcvtmp.tr4 mkvmerge.exe --engage allow_avc_in_vfw_mode -o "%~n1_converted.mkv" mkvcvtmp.avi mkvcvtmp.tr2 mkvcvtmp.tr3 mkvcvtmp.tr4
goto end
 
:3tr
mkvextract tracks "%1" 1:mkvcvtmp.h264 2:mkvcvtmp.tr2 3:mkvcvtmp.tr3
avc2avi.exe -i mkvcvtmp.h264 -o mkvcvtmp.avi -f 23.976
if exist mkvcvtmp.tr3 mkvmerge.exe --engage allow_avc_in_vfw_mode -o "%~n1_converted.mkv" mkvcvtmp.avi mkvcvtmp.tr2 mkvcvtmp.tr3
goto end
 
:2tr
mkvextract tracks "%1" 1:mkvcvtmp.h264 2:mkvcvtmp.tr2
avc2avi.exe -i mkvcvtmp.h264 -o mkvcvtmp.avi -f 23.976
if exist mkvcvtmp.tr2 mkvmerge.exe --engage allow_avc_in_vfw_mode -o "%~n1_converted.mkv" mkvcvtmp.avi mkvcvtmp.tr2
 
:End
del mkvcvtmp.*
:Exit
 

При копировании через буфер обмена, не забываем удалять получающиеся пробелы в конце строк!
 
Ограничения для cmd-шки:
1. будет пересобрано до 4х дорожек (а мне больше и ненадо ),
2. видео во входном MKV должно идти первым потоком (другие не попадались).
На самом деле, сделать коммандник по всем правилам c операторами FOR и т.д., для проверки всего возможного разнообразия MKV для меня сложновато. Да и в 99% случаев достаточно такого, какой есть.
 
В строчках поиска последнего аудиопотока find /c "Track ID 4: audio" mkvcvtmp.txt можно убрать ": audio" если хотите, что б в конечном файле были не только видео+аудио, но и сабы, или ещё чего.
 
Проверка на наличие WMV потока введена, т.к. такое видео VirtualDubMod, всё-равно, не откроет.

Всего записей: 3683 | Зарегистр. 17-10-2008 | Отправлено: 22:32 23-09-2009 | Исправлено: qwertyop, 11:45 28-11-2009
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » VirtualDub
Widok (19-05-2010 14:37): Лимит страниц. Продолжаем здесь.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru