Video linux下ffmpeg代码到批处理文件的转换

Video linux下ffmpeg代码到批处理文件的转换,video,encoding,ffmpeg,scripting,Video,Encoding,Ffmpeg,Scripting,我需要帮助转换ffmpeg命令,以便我可以批处理文件 ffmpeg -i in.mkv -vf subtitles=in.mkv:si=0 -c:v libx264 -c:a copy -map 0:v -map 0:a:0 out.mp4 将文件夹中的所有内容转换为与.mkv文件相同的名称,但转换为.mp4。文件名可以有[]和空格。因此,如果有人能帮助我并解释这个过程,我将不胜感激 假设bashshell(您没有提到操作系统,但这将在macOS或Linux上运行)。这只是一个基本的复制/转码

我需要帮助转换ffmpeg命令,以便我可以批处理文件

ffmpeg -i in.mkv -vf subtitles=in.mkv:si=0 -c:v libx264 -c:a copy -map 0:v -map 0:a:0 out.mp4
将文件夹中的所有内容转换为与.mkv文件相同的名称,但转换为.mp4。文件名可以有[]和空格。因此,如果有人能帮助我并解释这个过程,我将不胜感激

假设bashshell(您没有提到操作系统,但这将在macOS或Linux上运行)。这只是一个基本的复制/转码,您需要调整参数以匹配所需的操作

for i in *.mkv; do 
    ffmpeg -i "$i" -c copy "${i/%.mkv/.mp4}"
done

它主要在macOS上,但我也计划在Debian上使用它。我应该为副标题名称字段添加什么?“$i”或${i/%.mp4/.mkv}?它将从.mkv转换为.mp4如果您想知道是否要匹配输入文件名$i,则第二个选项将.mkv扩展名替换为.mp4(抱歉,误读了原始问题中的方向,因此已更正)