我有一个项目,我正在尝试“流式传输”一个 DOS 游戏,在 Ubuntu 上的 DOSBox 中工作。这个想法是截取屏幕截图,然后将它们上传到服务器。为了从 DOSBox 截取屏幕截图,我使用 xdotool 触发组合键“Ctrl+F5”,这会触发屏幕截图。然后将屏幕截图保存到 /capture 文件夹中,我可以从中读取文件。
问题是屏幕截图被命名为 progName_000.png, progName_001.png, ...我希望覆盖单个文件。有没有可能实现?
目前我正在使用下面可怕的 bash 代码:
WID=`xdotool search --limit 1 --name "DOSBox" 2>/dev/null`
while [ 1 ]; do
fN=`ls ./DOSBox/capture/ | head -1`
cp ./DOSBox/capture/$fN ./img.png
rm ./DOSBox/capture/*
xdotool key --window $WID Ctrl+F5
sleep 0.10;
done
每隔 100 毫秒,我读取一次捕获文件,取出我遇到的第一个文件,将其复制到 ./img.png,然后清除捕获文件夹,然后再进行一次屏幕截图。什么是更好的选择?
(PS:上面的代码是简化的;通常我将捕获的图像复制到多个图像;img0.png 和 img1.png,以便在写入时可以读取另一个,就像翻页一样。无论如何。 )