MKVMerge批量添加.srt字幕


0

我正在寻找一些命令/脚本来扫描我指定的文件夹,将srt文件(与视频同名)与avi / mp4 / mkv文件合并以获取mkv文件,然后删除原始文件(视频和副标题)。

现在我有这个代码(不是我的,我合并的一些作者):

@echo off
for /R %%A IN (*.mkv *.avi *.mp4) do (
"C:\Program Files\MKVToolNix\mkvmerge.exe" -o "%%~nxA_CZ.mkv" "%%~A" "%%~nA.srt"
  if errorlevel 1 (
                echo Warnings/errors generated during remuxing, original file not deleted
            ) else (
                del /f "%%A" "%%~nA.srt"
                echo Successfully remuxed to "%%~dpna (No Subs)%%~xa", original file deleted
            )
            echo.
        )
    )
)

哪种作品,但我有一些问题。
/R参数不起作用,不知道为什么,但是当我将它放在一个包含子文件夹的文件夹中时,它只扫描其中的srt文件,并且出现“无法打开”错误。(对于单个文件夹中的文件也会出现此错误,但最终它会执行我需要的操作。)

知道如何解决我的问题吗?


可能需要使用FOR /F "TOKENS=*" %%A IN循环使用('DIR /A-D /B /S "C:\Root"')和再利用的,输出与一些逻辑来挑选出的.mp4.avi以及.mkv与文件DO的命令。使用类似的东西IF [%%~XA]==[.mkv]然后告诉它mkvmerge.exe从那里做相应的 操作。通过一些测试,你可以完成这个,所以如果你想要一个答案解释,那就开始工作并打电话给我,但是你可以用这个快速的想法抓住它。
Pimp Juice IT

Answers:


0

这是你应该如何添加字幕:

mkvmerge.exe -o "output.mkv" --audio-tracks 1 --no-subtitles --no-attachments 
--no-chapters --language 0:und --default-track 0:yes --compression 0:none     
--language 1:und --default-track 1:yes --compression 1:none "input.mkv"       
--language 0:und --compression 0:none "input.srt" --track-order 0:0,0:1,1:0   
--probe-range-percentage 0.50
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.