如果大于某个采样率,是否对 FLAC 文件进行下采样?

如果大于某个采样率,是否对 FLAC 文件进行下采样?

我想使用类似这样的工具将一大堆 FLAC 文件转换为 ALACffmpeg或者袜子。这本身就很容易,只需一个命令行。但是,我想通过仅对采样率大于某个值的 FLAC 文件进行下采样来节省磁盘空间。因此,如下所示:


对于给定目录中的所有 *.flac 文件...

...如果输入文件的采样率大于 96kHz,则转换为 ALAC 并下采样至 96kHz(添加“-ar 96000”标志)。

ffmpeg -i track.flac -acodec alac -ar 96000 track.m4a

...否则,只需将其不加改变地转换为 ALAC 即可。

ffmpeg -i track.flac -acodec alac track.m4a

这种采样率检测可以实现吗?如果可以,执行上述操作的脚本是什么样的?

答案1

...然后就搞明白了。在这里,使用袜子确定采样率,以及ffmpeg进行转码。将其插入狂欢脚本:

for f in *.flac; do

  RATE="$(soxi -r $f)"

  if [ $RATE -gt 96000 ]
  then
    echo Resampling and converting... 
    ffmpeg -i "$f" -acodec alac -ar 96000 -c:v copy "${f%}.m4a";
  else
    echo Converting...
    ffmpeg -i "$f" -acodec alac -c:v copy "${f%}.m4a";
  fi

done

-c:v 复制标记将不经改变地转移专辑封面。

相关内容