Bash shell脚本中mplayer输出的无缓冲解析

Bash shell脚本中mplayer输出的无缓冲解析,bash,pipe,stdout,mplayer,unbuffered,Bash,Pipe,Stdout,Mplayer,Unbuffered,在使用shell脚本中输出的stdbuf和unbuffer来解析mplayer(在我的例子中也是libdvdnav)尝试几个变体之后,我没有找到一个有效的解决方案。这是我的shell脚本,没有解析输出的部分——它只是在每一行上运行echo #!/bin/bash IN=video.iso OUT=video.mpg IFS=$'\n' for line in `stdbuf -oL -eL mplayer -msglevel identify=6 -dumpstream -dumpfile $

在使用shell脚本中输出的
stdbuf
unbuffer
来解析
mplayer
(在我的例子中也是
libdvdnav
)尝试几个变体之后,我没有找到一个有效的解决方案。这是我的shell脚本,没有解析输出的部分——它只是在每一行上运行echo

#!/bin/bash
IN=video.iso
OUT=video.mpg

IFS=$'\n'
for line in `stdbuf -oL -eL mplayer -msglevel identify=6 -dumpstream -dumpfile $OUT dvdnav://1/$IN 2>&1`; do
    echo "mplayer: $line"
done
即使使用
stdbuf
,输出也会被缓冲,因此我无法实时解析每一行。使用
dvdnav
目标时,是否有方法捕获
mplayer
输出