嗨,所以我使用ffmpeg转换了一个mp4文件,以通过以下命令从mp4文件中删除所有元数据:
ffmpeg -i test.mp4 -map_metadata -1 -c:v copy -c:a copy out.mp4
这很好用,但是我想要一个bash脚本,该脚本将自动删除包含mp4文件的目录中的所有元数据,并且交互最少。
有人可以帮我这个脚本吗?
答案 0 :(得分:2)
for f in *.mp4; do ffmpeg -i "$f" -map_metadata -1 -c:v copy -c:a copy "fixed_$f"; done
Bash将*.mp4
替换为当前目录中所有匹配文件的名称。循环经过的每一步,f
都包含一个文件名。
或使用子目录:
mkdir converted
for f in *.mp4; do ffmpeg -i "$f" -map_metadata -1 -c:v copy -c:a copy "converted/$f"; done
答案 1 :(得分:0)
这将列出当前目录中的所有文件(并且仅列出文件):
for /r %i in (*) do echo %i
此外,如果您在批处理文件中运行该命令,则需要将%符号加倍。
for /r %%i in (*) do echo %%i
它会像这样。创建一个文件,将其命名为test.cmd并将其复制到文件中。
for %%f in (*.mp4) do (
ffmpeg -i %%f -map_metadata -1 -c:v copy -c:a copy %%~nf-out.mp4
)
-n
仅替换名称部分。