将 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' ::: *
我有一个包含几十个 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' ::: *