我在mac上使用ffmpeg批量转换.flv到.mp4文件。我正在尝试查找当前目录的子目录中的所有文件,并将新文件保存在同一目录中。
例如,以以下内容开头:
subdirectory1/video1.flv
subdirectory1/video2.flv
subdirectory2/video1.flv
并以以下方式结束
subdirectory1/video1.mp4
subdirectory1/video2.mp4
subdirectory2/video1.mp4
我已经做到了这一点,但不知道如何保存保留的递归目录
for i in `find -name . "*.flv"`; do ffmpeg -i "$i" "${i%.*}.mp4"; done
发布于 2020-04-13 10:10:50
也许有更好的方法,但这最终达到了我的目的。我不得不重命名文件和目录以删除空格,并修改find命令。xargs包含试图说明空格,但它不起作用
因此,我使用以下命令从目录中删除了空格:
for f in *; do mv "$f" `echo $f | tr ' ' '_'`; done
并删除了文件名中的空格
find . -type f -name "* *.flv" -exec bash -c 'mv "$0" "${0// /_}"' {} \;
然后这个命令递归地重新编码我的flv文件并保存在它们的目录中
for i in `find . -name "*.flv" -print0| xargs -0`; do ffmpeg -i "$i" -c:v libx264 -f mp4 "${i%.*}.mp4"; done
https://stackoverflow.com/questions/61127410
复制相似问题