ffmpeg - bash脚本淡出音频文件

时间:2017-09-27 12:45:13

标签: bash audio ffmpeg

我正在尝试编写一个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" 

我收到了无效的参数错误。

1 个答案:

答案 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"