我使用此ffmpeg参数获取文件中的黑框:
ffmpeg -i ${arrayDesFichiers[$i]} -vf "blackdetect=d=3:pix_th=0.00" -an -f null - 2>&1 | grep black_duration >> log.txt
现在我在log.txt中找到了这个:
[blackdetect @ 0x7fd9add06bc0] black_start:0 black_end:3.2 black_duration:3.2
我想将其重新格式化为:
black duration : 3.2 seconds
我很确定它可以在Bash中使用但是怎么样?
答案 0 :(得分:1)
你可以这样做:
ff_output=$(ffmpeg -i ${arrayDesFichiers[$i]} -vf "blackdetect=d=3:pix_th=0.00" -an -f null - 2>&1 | grep -oE "black_duration:[[:digit:]][.[:digit:]]*")
printf "%s seconds\n" "$ff_output" >> log.txt
grep -oE "black_duration:[[:digit:]]+[.[:digit:]]*
-o
选项将grep
输出限制为仅匹配的部分-E
选择扩展正则表达式[[:digit:]]+[.[:digit:]]*
查找一个或多个数字,可选地后跟一个句点和一个或多个数字