gpt4 book ai didi

linux - 遍历子目录中的所有媒体文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:51:39 25 4
gpt4 key购买 nike

我目前正在尝试遍历几个 mp4 文件并转换为不同的格式。下面的工作,但它只转换一个文件和循环停止。最初文件位于文件夹 videos 中,当我转换时我移动到文件夹 formatted_vids。我怎样才能正确循环遍历所有 mp4 文件?

FILE_PATH="/media/videos/"
find $FILE_PATH -name "*.mp4" | while read file
do
filename=$(basename "$file")
extension="${filename##*.}"
video_file="${filename%.*}"
dir="/media/formatted_vids/${filename%.mp4}"
mkdir -p "$dir"
mv "$file" "$dir"

ffmpeg -i $dir/${filename} -c:a libfdk_aac -vbr 3 output.m4a "$dir/${filename%.mp4}-%03d.m4a";

done

初始文件夹

|-- /media/videos/
| |-- xxxx-test_file-aa1
| |--xxxx-test_file-aa1.mp4
| |-- xxxx-test_file-bb2
|--xxxx-test_file-bb2.mp4

移动文件到文件夹:

|-- /media/formatted_vids/
| |-- xxxx-test_file-aa1
| |--xxxx-test_file-aa1.aac
| |-- xxxx-test_file-bb2
|--xxxx-test_file-bb2.aac

最佳答案

试试这个:

list=`find $FILE_PATH -name "*.mp4"`
for file in $list
do
filename=$(basename "$file")
extension="${filename##*.}"
video_file="${filename%.*}"
dir="/media/formatted_vids/${filename%.mp4}"
mkdir -p "$dir"
mv "$file" "$dir"
ffmpeg -i $dir/${filename} -c:a libfdk_aac -vbr 3 output.m4a "$dir/${filename%.mp4}-%03d.m4a";
done

免责声明:我假设循环体工作得很好。

关于linux - 遍历子目录中的所有媒体文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29995399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com