将 mkv 文件转换为 mp4,同时保留名称

Convert mkv files to mp4 while preserving the name

我有一个包含几十个 dmv 文件的文件夹,但我想通过命令行将它们转换为 mp4。我已经使用以下命令成功地做到了这一点:

ffmpeg -i *.mkv -vcodec copy -acodec copy new_name.mp4

我现在想弄清楚的是如何保留视频的名称。我怎样才能做到这一点而不每次都明确写出文件名?

您可以使用 find 结合您的原始命令来转换所有 mkv:

find . -type f -name "*.mkv" -maxdepth 1 \
-exec bash -c 'ffmpeg -i "[=10=]" -vcodec copy -acodec copy "${0/.mkv/.mp4}"' {} \;

这会将当前目录中的任何 mkv 文件转换为 mp4,同时保留原始文件。

如果您希望删除原始 mkv 个文件并且只剩下 mp4 个文件,请使用:

find . -type f -name "*.mkv" -maxdepth 1 \
-exec bash -c 'ffmpeg -i "[=11=]" -vcodec copy -acodec copy "${0/.mkv/.mp4}"' {} \; \
-exec rm {} \;

当所有视频都在同一文件夹中时,您可以使用 GNU Parallel 实现此目的:

parallel --bar 'ffmpeg -i {} -vcodec copy -acodec copy {.}.mp4' ::: *