【发布时间】:2018-03-08 23:08:28
【问题描述】:
我正在尝试编写一个 bash 脚本来获取音频文件的持续时间,然后应用 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"
我收到一个无效参数错误。
【问题讨论】:
-
在脚本顶部添加
set -x并尝试使用您获得的其他信息进行调试 -
$sec 未定义。
-
ffmpeg的控制台输出仅供人眼使用。不能保证足够一致以进行机器解析。 Get the duration directly fromffprobe,然后就可以避免使用grep这两个进程了。