我的目标是有一个Ubuntu(桌面)服务器,“简单地”将html5网页转换为video。 我想捕捉平滑的CSS和JSanimation。
到目前为止,我试过这个:(phantomjs) https://gist.github.com/phanan/e03f75082e6eb114a35c
时间和帧速率不稳定或快。
目前为止,我的最佳解决scheme是在Kiosk模式下打开Google Chrome浏览器窗口,等待3秒钟,然后使用x11grab通过ffmpeg进行logging。 这感觉就像是一个“笨拙”和不专业的解决scheme。
program.sh
#!/bin/bash duration=$1 outputFile=$2 stop=$(($duration+5)) ./openBrowser.sh $stop & PIDOIS=$! ./recScreen.sh $duration $outputFile & PIDMIX=$! wait $PIDIOS wait $PIDMIX
recScreen.sh
#!/bin/bash sleep 3 ffmpeg -video_size 1920x1080 -framerate 30 -f x11grab -i :0.0 -c:v libx264 -qp 0 -preset ultrafast -t "$1" "$2".mkv killall -9 chrome
openBrowser.sh
#!/bin/bash /usr/bin/google-chrome --kiosk --incognito http://localhost/testanimation
这可以以不同的方式完成吗? 也许是虚拟显示器? (必须有GPU)。 这应该是一个桌面服务器,所以我不希望popup窗口或从操作系统的任何失败消息(因为它会被烧成video…)
你有没有尝试过使用?
recordmydesktop
它可以从命令行的单个窗口创建一个视频。 我用了
recordmydesktop --windowid $(xwininfo | awk '/Window id:/ {print $4}') --no-cursor --delay 1S --device default --channels 2 --fps 50 --freq 22050 --v_quality 53 --s_quality 5 -o $(date +%Y%m%d%H%M%S)
记录我的浏览器的视频,(这是交互式的,但你的脚本可以检测到windowid。)