我正在尝试编写一个bash脚本来获取audiofile的持续时间,然后应用5秒的淡出。
#!/bin/bash
f="$*" # all args
p="${f##*/}" # file
fn="${p%.*}" # name only
e="${p##*.}" # extension
echo
echo $f
echo $p
echo $fn
echo $e
echo
_t=$(ffmpeg -i "$f" 2>&1 | grep "Duration" | grep -o " [0-9:.]*, " )
ffmpeg -i "$f" -af "afade=t=out:st=$_t:d=500" "$fn $sec sec fade-out.$e"
我收到了无效的参数错误。
答案 0 :(得分:0)
感谢所有帮助 - 这是我的解决方案。很确定有更优雅的方式,但我是初学者。
#!/bin/bash
f="$*" # all args
p="${f##*/}" # file
fn="${p%.*}_fade" # name only
e="${p##*.}" # extension
sec="5"
dur=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$f")
t=$(echo "$dur - $sec" | bc)
ffmpeg -i "$f" -af "afade=t=out:st=$t:d=5" "$fn $sec sec.$e"