我的目标是使用 zenity --progress 创建一个带有 HandBrakeCLI 输出的 gtk 进度条。我遇到了一些障碍,我想知道是否有人知道更好的方法或者可以帮助我完成我目前正在做的事情。
正常输出:
HandBrakeCLI -i infile -o outfile --preset=iPad
显示器
编码:任务 1 of 1, 11.97 % (72.81 fps, avg 86.78 fps, ETA 00h00m43s)
HandBrake 通过管道传输到 tr 和 cut 命令,所以我只有 zenity 期望的百分比。
HandBrakeCLI -i infile -o outfile --preset=iPad 2>&1 | tr -s '\r' '\n' | cut -b 24-28
结果是我所期望的:
1.05
1.06
1.10
1.10
但是,输出延迟很多,有时甚至不会显示。如果我只使用我的 tr 表达式,我会在每一行得到上面的输出,但它是整个输出,包括“编码:任务......”。
这就像 cut 命令跟不上手刹的标准一样。我阅读了有关使用命名管道的信息,创建了一个并将 HandBrake 的输出定向到管道,然后在另一个终端中通过管道尝试了 tr 和 cut 命令,它导致了相同的延迟。
使用 awk 的打印子字符串也会导致相同的延迟。
我想不通。我在 zenity --progress 指示器之后,因为我的 HandBrake 作业被称为 MythTV 作业,我希望弹出一个进度条,以便我知道何时以及编码正在进行中。