Batch file 提取字幕文件的Bat文件,然后将字幕文件硬编码为原始mkv文件
我的电视可以播放闪存驱动器中的Batch file 提取字幕文件的Bat文件,然后将字幕文件硬编码为原始mkv文件,batch-file,encoding,ffmpeg,mkv,Batch File,Encoding,Ffmpeg,Mkv,我的电视可以播放闪存驱动器中的mkv文件,但无法检测字幕文件。我试图制作一个bat文件,该文件实质上从mkv文件中取出.srt文件,然后使用ffmpeg将其硬编码到mkv文件中。我正在接近,但命名工作不正常。例如,当创建字幕文件时,它将其命名为infle.mkv.srt。对文件进行编码时,文件名为infle.mkvEncoded.mkv。我正试图摆脱多余的.mkv 我对bat文件中的变量不是很在行,所以我不确定该怎么做。我将“编码”部分添加到文件名中,这样它就不会覆盖原始内嵌。除非有更好的方法,
mkv
文件,但无法检测字幕文件。我试图制作一个bat
文件,该文件实质上从mkv
文件中取出.srt
文件,然后使用ffmpeg将其硬编码到mkv文件中。我正在接近,但命名工作不正常。例如,当创建字幕文件时,它将其命名为infle.mkv.srt
。对文件进行编码时,文件名为infle.mkvEncoded.mkv
。我正试图摆脱多余的.mkv
我对bat文件中的变量不是很在行,所以我不确定该怎么做。我将“编码”部分添加到文件名中,这样它就不会覆盖原始内嵌。除非有更好的方法,否则我计划只使用批量重命名实用程序来删除该部分
我的代码是:
DO (
MKDIR Encoded_Files
)
FOR /F "tokens=*" %%G IN ('dir /b *.mkv') DO (
ffmpeg -i "%%G" -vn -an -codec:s:0.1 srt "%%G.srt"
ffmpeg -i "%%G" -vf "subtitles=%%G.srt" "%%GConverted"
move *"%%~nG" "Encoded_Files"
)
预期的结果将是
infieencoded.mkv*
很抱歉格式设置不好,我不熟悉您正在寻找的堆栈溢出。无论如何,您的代码示例不完整(存在孤立的do
);请阅读以下内容:…无需先提取字幕:ffmpeg-i input.mkv-vf subtitles=input.mkv-c:a copy output.mkv