将html5页面录制为视频

时间:2017-03-14 19:42:46

标签: python linux shell ffmpeg phantomjs

我的目标是拥有一台Ubuntu(桌面)服务器,简单地说就是#34;将html5网页转换为视频。我想捕捉平滑的css和js-animations。

到目前为止,我已经尝试过:(幻影) https://gist.github.com/phanan/e03f75082e6eb114a35c

时间和帧速率不稳定或快速。

到目前为止,我最好的解决方案是在自助服务终端模式下打开Goog​​le Chrome窗口,等待3秒,然后通过ffmpeg使用x11grab进行录制。感觉就像一个臃肿的"和非专业的解决方案。

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)。这应该是一个桌面服务器,所以我不想要操作系统的弹出窗口或任何失败消息(因为它会被刻录到视频中......)

1 个答案:

答案 0 :(得分:0)

你尝试过使用过吗?

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。)