Linux 在shell脚本中创建循环中的“ffmpeg”分叉;“损失”;一些迭代

Linux 在shell脚本中创建循环中的“ffmpeg”分叉;“损失”;一些迭代,linux,bash,shell,ffmpeg,Linux,Bash,Shell,Ffmpeg,我有一个shell脚本,它将目录作为输入,读取其中的所有mp4文件,并使用ffmpeg将它们转换为mp3: #!/bin/bash dir=$1 while read -rd "" file do base=$(basename "$file") filename=${base%(*}".mp3" ffmpeg -i "$file" -vn -ar 44100 -ac 2 -ab 192000 -f mp3 "$filename" & done < <(fin

我有一个shell脚本,它将目录作为输入,读取其中的所有
mp4
文件,并使用
ffmpeg
将它们转换为
mp3

#!/bin/bash

dir=$1

while read -rd "" file
do
  base=$(basename "$file")
  filename=${base%(*}".mp3"
  ffmpeg -i "$file" -vn -ar 44100 -ac 2 -ab 192000 -f mp3 "$filename" &
done < <(find $dir -maxdepth 1 -iname "*.mp4" -print0)

wait

exit 0
#/bin/bash
dir=$1
读取-rd“”文件时
做
base=$(basename“$文件”)
文件名=${base%(*}).mp3“
ffmpeg-i“$文件”-vn-ar 44100-ac 2-ab 192000-f mp3“$文件名”&

完成<您没有确认
stdin

ffmpeg -i "$file" -blah -blah -nostdin "$filename" &

要回答评论:

无论如何,您不应该分岔,FFmpeg已经在多个线程中运行,以最大化CPU,您甚至可能会受到影响
通过分叉。

好的,谢谢。这似乎解决了问题。你知道关于我的问题1的更多信息吗?使用
-nosdin
选项可以避免分叉。每次迭代都会处理一个文件。这意味着现在一切都按预期进行。