From 36a9db14c8efd7b2139698fa8840771f7faea575 Mon Sep 17 00:00:00 2001 From: void* Date: Mon, 9 Mar 2020 14:24:56 +0100 Subject: [PATCH 01/10] added audio recording support to the video recorder and updated chrome version to .132 --- Dockerfile | 8 +++++--- capabilities.json | 2 +- video-rec/bin/start-video-rec.sh | 23 +++++++++++++++++------ 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index 57443ef6..0e1d4ad4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -89,6 +89,8 @@ RUN apt -qqy update \ dbus-x11 \ wget \ curl \ + pulseaudio socat \ + alsa-utils \ && apt -qyy autoremove \ && rm -rf /var/lib/apt/lists/* \ && apt -qyy clean @@ -466,7 +468,7 @@ COPY bin/fail /usr/bin/ #=============== # TODO: Use Google fingerprint to verify downloads # https://www.google.de/linuxrepositories/ -ARG EXPECTED_CHROME_VERSION="80.0.3987.106" +ARG EXPECTED_CHROME_VERSION="80.0.3987.132" ENV CHROME_URL="https://dl.google.com/linux/direct" \ CHROME_BASE_DEB_PATH="/home/seluser/chrome-deb/google-chrome" \ GREP_ONLY_NUMS_VER="[0-9.]{2,20}" @@ -762,8 +764,8 @@ ENV FIREFOX_VERSION="${FF_VER}" \ CHROME="true" \ FIREFOX="true" \ MULTINODE="false" \ - FFMPEG_FRAME_RATE=10 \ - FFMPEG_CODEC_ARGS="-vcodec libx264 -preset ultrafast -pix_fmt yuv420p" \ + FFMPEG_FRAME_RATE=30 \ + FFMPEG_CODEC_ARGS="-acodec libopus -vcodec libx264 -preset ultrafast" \ FFMPEG_FINAL_CRF=0 \ FFMPEG_DRAW_MOUSE=1 \ VIDEO_TMP_FILE_EXTENSION="mkv" \ diff --git a/capabilities.json b/capabilities.json index 5ec79c40..9eacd68a 100644 --- a/capabilities.json +++ b/capabilities.json @@ -2,7 +2,7 @@ "caps": [ { "BROWSER_NAME": "chrome", - "VERSION": "80.0.3987.106", + "VERSION": "80.0.3987.132", "PLATFORM": "LINUX" }, { diff --git a/video-rec/bin/start-video-rec.sh b/video-rec/bin/start-video-rec.sh index ac26e309..baa5742a 100755 --- a/video-rec/bin/start-video-rec.sh +++ b/video-rec/bin/start-video-rec.sh @@ -45,14 +45,25 @@ else touch "${tmp_video_path}" fi +# Start the pulseaudio server +pulseaudio -D --exit-idle-time=-1 + +# Load the virtual sink and set it as default +pacmd load-module module-virtual-sink sink_name=v1 +pacmd set-default-sink v1 + +# set the monitor of v1 sink to be the default source +pacmd set-default-source v1.monitor + # ffmpeg -ffmpeg -f x11grab \ - -s ${FFMPEG_FRAME_SIZE} \ - -draw_mouse ${FFMPEG_DRAW_MOUSE} \ +ffmpeg -r ${FFMPEG_FRAME_RATE} \ + -f "pulse" \ + -i "default" \ + -f "x11grab" \ + -s "${FFMPEG_FRAME_SIZE}" \ -i "${DISPLAY}.0" \ - ${FFMPEG_CODEC_ARGS} \ - -r ${FFMPEG_FRAME_RATE} \ - -y -an "${tmp_video_path}" 2>&1 & + "${FFMPEG_CODEC_ARGS}" \ + -y "${tmp_video_path}" VID_TOOL_PID=$! From 67b22feac4abc274d0e73a8e68c95a9740202405 Mon Sep 17 00:00:00 2001 From: void Date: Tue, 10 Mar 2020 14:43:17 +0100 Subject: [PATCH 02/10] audio recording is now an option with the AUDIO env, added audio recording example to videos.md readme, removed depricated maintainer tags in Dockerfile --- .menv | 3 +++ Dockerfile | 6 ++---- docker-compose-scales.yml | 2 ++ docker-compose-tests.yml | 2 ++ docker-compose.yml | 2 ++ docs/videos.md | 8 ++++++++ test/script_scenario_compose_N_N | 1 + video-rec/bin/start-video-rec.sh | 16 +++++++++++++--- 8 files changed, 33 insertions(+), 7 deletions(-) diff --git a/.menv b/.menv index 777378d4..a26ed44d 100644 --- a/.menv +++ b/.menv @@ -53,6 +53,9 @@ export SIZE ?= 50% # Enable video recording export VIDEO ?= true +# Enable audio recording +export AUDIO ?= true + # App name is the service name for the web app under test # export APP ?= zalando_uk export APP ?= mock diff --git a/Dockerfile b/Dockerfile index 0e1d4ad4..fe03e961 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,9 +22,6 @@ ARG UBUNTU_DATE # Docker build debug logging, green colored RUN printf "\033[1;32mFROM ubuntu:${UBUNTU_FLAVOR}-${UBUNTU_DATE} \033[0m\n" -MAINTAINER Diego Molina -MAINTAINER Leo Gallucci - # https://github.com/docker/docker/pull/25466#discussion-diff-74622923R677 LABEL maintainer "Diego Molina " LABEL maintainer "Leo Gallucci " @@ -760,12 +757,13 @@ ENV FIREFOX_VERSION="${FF_VER}" \ LOGFILE_BACKUPS=5 \ LOGS_DIR="/var/log/cont" \ VIDEO="false" \ + AUDIO="false" \ GRID="true" \ CHROME="true" \ FIREFOX="true" \ MULTINODE="false" \ FFMPEG_FRAME_RATE=30 \ - FFMPEG_CODEC_ARGS="-acodec libopus -vcodec libx264 -preset ultrafast" \ + FFMPEG_CODEC_ARGS="-vcodec libx264 -preset ultrafast" \ FFMPEG_FINAL_CRF=0 \ FFMPEG_DRAW_MOUSE=1 \ VIDEO_TMP_FILE_EXTENSION="mkv" \ diff --git a/docker-compose-scales.yml b/docker-compose-scales.yml index bae15517..cc175532 100644 --- a/docker-compose-scales.yml +++ b/docker-compose-scales.yml @@ -35,6 +35,7 @@ services: - SCREEN_WIDTH=1300 - SCREEN_HEIGHT=999 - VIDEO=false + - AUDIO=false - GRID=false - CHROME=true - FIREFOX=false @@ -53,6 +54,7 @@ services: - SCREEN_WIDTH=1300 - SCREEN_HEIGHT=999 - VIDEO=false + - AUDIO=false - GRID=false - CHROME=false - FIREFOX=true diff --git a/docker-compose-tests.yml b/docker-compose-tests.yml index d15df194..0e584449 100644 --- a/docker-compose-tests.yml +++ b/docker-compose-tests.yml @@ -49,6 +49,7 @@ services: - SCREEN_WIDTH=1300 - SCREEN_HEIGHT=999 - VIDEO=${VIDEO-false} + - AUDIO=${AUDIO-false} - GRID=false - CHROME=true - FIREFOX=false @@ -71,6 +72,7 @@ services: - SCREEN_WIDTH=1300 - SCREEN_HEIGHT=999 - VIDEO=${VIDEO-false} + - AUDIO=${AUDIO-false} - GRID=false - CHROME=false - FIREFOX=true diff --git a/docker-compose.yml b/docker-compose.yml index b01147bc..408102ea 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -44,6 +44,7 @@ services: - SCREEN_WIDTH=1300 - SCREEN_HEIGHT=999 - VIDEO=false + - AUDIO=false - GRID=false - CHROME=true - FIREFOX=false @@ -68,6 +69,7 @@ services: - SCREEN_WIDTH=1300 - SCREEN_HEIGHT=999 - VIDEO=false + - AUDIO=false - GRID=false - CHROME=false - FIREFOX=true diff --git a/docs/videos.md b/docs/videos.md index c5cbec29..fa47c8ff 100644 --- a/docs/videos.md +++ b/docs/videos.md @@ -49,6 +49,14 @@ Check your video, note it may be splitted in many files if is too long ## Customizations +### Audio +If you want to additionaly record audio with the video use this + + docker run --rm --name=grid -p 4444:24444 -p 5920:25900 \ + --shm-size=1g -e VNC_PASSWORD=hola \ + -e VIDEO=true \ + -e AUDIO=true elgalu/selenium + ### Start Start and stop on-demand diff --git a/test/script_scenario_compose_N_N b/test/script_scenario_compose_N_N index e8f8048d..db1b052e 100755 --- a/test/script_scenario_compose_N_N +++ b/test/script_scenario_compose_N_N @@ -23,6 +23,7 @@ echo "#===================================================================" set -x export VIDEO="false" +export AUDIO="false" export NUM_NODES=2 PARAL_TESTS=2 WAIT_ALL_DONE="390s" SLEEP_TIME=10 PAUSE_SECS_BETWEEN_RUN_TEST="0" export VNC_FROM_PORT="26950" VNC_TO_PORT="26999" diff --git a/video-rec/bin/start-video-rec.sh b/video-rec/bin/start-video-rec.sh index baa5742a..3cb07400 100755 --- a/video-rec/bin/start-video-rec.sh +++ b/video-rec/bin/start-video-rec.sh @@ -56,14 +56,24 @@ pacmd set-default-sink v1 pacmd set-default-source v1.monitor # ffmpeg -ffmpeg -r ${FFMPEG_FRAME_RATE} \ - -f "pulse" \ - -i "default" \ +if ["${AUDIO}" == "true"]; then + ffmpeg -r ${FFMPEG_FRAME_RATE} \ + -f "pulse" \ + -i "default" \ + -f "x11grab" \ + -s "${FFMPEG_FRAME_SIZE}" \ + -i "${DISPLAY}.0" \ + "-acodec libopus ${FFMPEG_CODEC_ARGS}" \ + -y "${tmp_video_path}" +else + ffmpeg -r ${FFMPEG_FRAME_RATE} \ -f "x11grab" \ -s "${FFMPEG_FRAME_SIZE}" \ -i "${DISPLAY}.0" \ "${FFMPEG_CODEC_ARGS}" \ -y "${tmp_video_path}" +fi + VID_TOOL_PID=$! From b86e23d56906b393abdc0298d5451a398745442b Mon Sep 17 00:00:00 2001 From: void* Date: Tue, 10 Mar 2020 23:24:15 +0100 Subject: [PATCH 03/10] start pulse audio server only if AUDIO env is true --- video-rec/bin/start-video-rec.sh | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/video-rec/bin/start-video-rec.sh b/video-rec/bin/start-video-rec.sh index 3cb07400..714ec1bf 100755 --- a/video-rec/bin/start-video-rec.sh +++ b/video-rec/bin/start-video-rec.sh @@ -45,18 +45,18 @@ else touch "${tmp_video_path}" fi -# Start the pulseaudio server -pulseaudio -D --exit-idle-time=-1 +# ffmpeg +if ["${AUDIO}" == "true"]; then + # Start the pulseaudio server + pulseaudio -D --exit-idle-time=-1 -# Load the virtual sink and set it as default -pacmd load-module module-virtual-sink sink_name=v1 -pacmd set-default-sink v1 + # Load the virtual sink and set it as default + pacmd load-module module-virtual-sink sink_name=v1 + pacmd set-default-sink v1 -# set the monitor of v1 sink to be the default source -pacmd set-default-source v1.monitor + # set the monitor of v1 sink to be the default source + pacmd set-default-source v1.monitor -# ffmpeg -if ["${AUDIO}" == "true"]; then ffmpeg -r ${FFMPEG_FRAME_RATE} \ -f "pulse" \ -i "default" \ From 11745d1f1146a05e386a4866b0e1991576f3b1f1 Mon Sep 17 00:00:00 2001 From: void* Date: Mon, 30 Mar 2020 19:24:05 +0200 Subject: [PATCH 04/10] updated expected chrome version to .149, Fixed Codec Option Splitting --- Dockerfile | 7 ++++--- README.md | 2 +- capabilities.json | 2 +- video-rec/bin/fix_videos.sh | 2 +- video-rec/bin/start-video-rec.sh | 6 +++--- 5 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index fe03e961..7500d42e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -465,7 +465,7 @@ COPY bin/fail /usr/bin/ #=============== # TODO: Use Google fingerprint to verify downloads # https://www.google.de/linuxrepositories/ -ARG EXPECTED_CHROME_VERSION="80.0.3987.132" +ARG EXPECTED_CHROME_VERSION="80.0.3987.149" ENV CHROME_URL="https://dl.google.com/linux/direct" \ CHROME_BASE_DEB_PATH="/home/seluser/chrome-deb/google-chrome" \ GREP_ONLY_NUMS_VER="[0-9.]{2,20}" @@ -637,7 +637,7 @@ ENV DEFAULT_SELENIUM_HUB_PORT="24444" \ # ${LOGS_DIR}/*.log # FFMPEG_FRAME_RATE # ffmpeg encoding options -# FFMPEG_CODEC_ARGS +# FFMPEG_CODEC_V_ARGS # Video size can be lowered down via re-encoding, see # http://askubuntu.com/a/365221/134645 # FFMPEG_DRAW_MOUSE @@ -763,7 +763,8 @@ ENV FIREFOX_VERSION="${FF_VER}" \ FIREFOX="true" \ MULTINODE="false" \ FFMPEG_FRAME_RATE=30 \ - FFMPEG_CODEC_ARGS="-vcodec libx264 -preset ultrafast" \ + FFMPEG_CODEC_V_ARGS="-vcodec libx264 -preset ultrafast" \ + FFMPEG_CODEC_VA_ARGS="-vcodec libx264 -acodec copy -preset ultrafast" \ FFMPEG_FINAL_CRF=0 \ FFMPEG_DRAW_MOUSE=1 \ VIDEO_TMP_FILE_EXTENSION="mkv" \ diff --git a/README.md b/README.md index f2cee2b4..06cc8d51 100644 --- a/README.md +++ b/README.md @@ -202,7 +202,7 @@ Once your tests are done you can either manually stop the recording via `docker Relevant up-to-date environment variables to customize it are at the Dockerfile, below a possibly outdated list of settings: FFMPEG_FRAME_RATE=10 - FFMPEG_CODEC_ARGS="-crf 0 -preset ultrafast -qp 0 -pix_fmt yuv420p" + FFMPEG_CODEC_V_ARGS="-crf 0 -preset ultrafast -qp 0 -pix_fmt yuv420p" FFMPEG_FINAL_CRF=0 FFMPEG_DRAW_MOUSE=1 VIDEO_TMP_FILE_EXTENSION="mkv" diff --git a/capabilities.json b/capabilities.json index 9eacd68a..1f42598b 100644 --- a/capabilities.json +++ b/capabilities.json @@ -2,7 +2,7 @@ "caps": [ { "BROWSER_NAME": "chrome", - "VERSION": "80.0.3987.132", + "VERSION": "80.0.3987.149", "PLATFORM": "LINUX" }, { diff --git a/video-rec/bin/fix_videos.sh b/video-rec/bin/fix_videos.sh index ddc89ba5..f9b037f3 100755 --- a/video-rec/bin/fix_videos.sh +++ b/video-rec/bin/fix_videos.sh @@ -52,7 +52,7 @@ if [ "${VIDEO_TMP_FILE_EXTENSION}" != "${VIDEO_FILE_EXTENSION}" ]; then # TODO: Move this mkv to mp4 conversion to a post-processing Zalenium thread # ffmpeg -i ${tmp_video_path} ${final_video_path} if timeout --foreground "${VIDEO_CONVERSION_MAX_WAIT}" \ - ffmpeg -i ${tmp_video_path} -vcodec libx264 ${FFMPEG_CODEC_ARGS} ${final_video_path}; \ + ffmpeg -i ${tmp_video_path} -vcodec libx264 ${FFMPEG_CODEC_V_ARGS} ${final_video_path}; \ then log "Conversion from ${VIDEO_TMP_FILE_EXTENSION} to ${VIDEO_FILE_EXTENSION} succeeded!" log "Cleaning up ${tmp_video_path} ..." diff --git a/video-rec/bin/start-video-rec.sh b/video-rec/bin/start-video-rec.sh index 714ec1bf..d3b06208 100755 --- a/video-rec/bin/start-video-rec.sh +++ b/video-rec/bin/start-video-rec.sh @@ -63,15 +63,15 @@ if ["${AUDIO}" == "true"]; then -f "x11grab" \ -s "${FFMPEG_FRAME_SIZE}" \ -i "${DISPLAY}.0" \ - "-acodec libopus ${FFMPEG_CODEC_ARGS}" \ + ${FFMPEG_CODEC_VA_ARGS} \ -y "${tmp_video_path}" else ffmpeg -r ${FFMPEG_FRAME_RATE} \ -f "x11grab" \ -s "${FFMPEG_FRAME_SIZE}" \ -i "${DISPLAY}.0" \ - "${FFMPEG_CODEC_ARGS}" \ - -y "${tmp_video_path}" + ${FFMPEG_CODEC_V_ARGS} \ + -y -an "${tmp_video_path}" 2>&1 & fi From 2f1635455efb333e4078be6716e88e87f99e6994 Mon Sep 17 00:00:00 2001 From: void* Date: Tue, 31 Mar 2020 16:42:30 +0200 Subject: [PATCH 05/10] renamed default codec args back to normal env name --- Dockerfile | 4 ++-- README.md | 2 +- images/grid3_console.png | Bin 59819 -> 59952 bytes video-rec/bin/fix_videos.sh | 2 +- video-rec/bin/start-video-rec.sh | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index 7500d42e..ddc3a3de 100644 --- a/Dockerfile +++ b/Dockerfile @@ -637,7 +637,7 @@ ENV DEFAULT_SELENIUM_HUB_PORT="24444" \ # ${LOGS_DIR}/*.log # FFMPEG_FRAME_RATE # ffmpeg encoding options -# FFMPEG_CODEC_V_ARGS +# FFMPEG_CODEC_ARGS # Video size can be lowered down via re-encoding, see # http://askubuntu.com/a/365221/134645 # FFMPEG_DRAW_MOUSE @@ -763,7 +763,7 @@ ENV FIREFOX_VERSION="${FF_VER}" \ FIREFOX="true" \ MULTINODE="false" \ FFMPEG_FRAME_RATE=30 \ - FFMPEG_CODEC_V_ARGS="-vcodec libx264 -preset ultrafast" \ + FFMPEG_CODEC_ARGS="-vcodec libx264 -preset ultrafast" \ FFMPEG_CODEC_VA_ARGS="-vcodec libx264 -acodec copy -preset ultrafast" \ FFMPEG_FINAL_CRF=0 \ FFMPEG_DRAW_MOUSE=1 \ diff --git a/README.md b/README.md index 06cc8d51..f2cee2b4 100644 --- a/README.md +++ b/README.md @@ -202,7 +202,7 @@ Once your tests are done you can either manually stop the recording via `docker Relevant up-to-date environment variables to customize it are at the Dockerfile, below a possibly outdated list of settings: FFMPEG_FRAME_RATE=10 - FFMPEG_CODEC_V_ARGS="-crf 0 -preset ultrafast -qp 0 -pix_fmt yuv420p" + FFMPEG_CODEC_ARGS="-crf 0 -preset ultrafast -qp 0 -pix_fmt yuv420p" FFMPEG_FINAL_CRF=0 FFMPEG_DRAW_MOUSE=1 VIDEO_TMP_FILE_EXTENSION="mkv" diff --git a/images/grid3_console.png b/images/grid3_console.png index 31cdc64ff950fec3fb5bc1db66c44ca0c84b7416..7bd3460e61866e84baf80f6bee3bbf4b0ad351fe 100644 GIT binary patch delta 43567 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 delta 43349 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 z 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%0DROc@!QWo1K=3YO4laRggR%>lw8$LLdSqrnYN|*m zMakTrjD}P>Z`#y-e;F+?m2vjnN_>F8PRG%+Grs7OwF>bUTBX7z$p`g-f=zYJWSbIhE?WV&O zidU225rt%mr3t}{G08NG>0;e&BPL7a!m-=qEU6^gVKsL$u`Qj=WSr6v-j-4NI~S()^3R~@c9 z+1QbCTEKrr{MzH(J*2>h{7maT^0&$lk{ihh^YqBma^_#YNEx`LS4;Kvmd3-{Y1OCp zFJzh+iHI~3I82`gUb;d+bbW|sXZ?V=Z}8pA2gMKeYE#*eqMh63g{7PQaY{e;xIZ=# zwZ+O5(<)k=CDse+eX#fdk@%-`XR`#AWo0-Y{Rsc1A*>e>=ZA<#UTXQ+JD=Gc_2?sy zU&k8Tv_K=K{cR-?%`*K8w z>q42q4{y4SYlI_7h4K^DQ!5`QgOB}i$Car=PKM>dNT|VB3|dft{_?nRu?=mHYms$O z{L)1M8zXLB1%mOfjqpeAk=qO3xAzliSTFGt$9WX>owKgFAfOyB!e{?V`U5DY7#o((u*C3mU0i0$;dd9x;ZojzwG+xDo<9QgM-Mol} zVM$()T}KpfZ-dX2P@ae?&M+p{IOtxyVbqHs*C_p8h~DF+&KMybxLzLgxSMJ-_kPHd zy*mODO0Q^Zj?@M^Y^v;3BXvqx#jGrnicfInPfa-JZ^>l}cTqOH+O$P4( z6B4)ZR<2fKmg!LOTl@-94-sGkVTk)hqSH7Uz-_{Tu*rZ|iq)k3jTWEvcxwrlk!$G9 zXF7UR3{OHI(G))wGyOmmbdU1J3@=3!fA1!<`wF#hL@=6>mG9zpF?M-N&*;}Imn+2I z(pZhGJq11FTmO}yf;e8(!6+X^-!aq0mX-l{XTu6;8YYn`cV+~fX&r|)id}ChN-ixN zC7@YqMgsJqUR{6A=g-p6ObNr4mkO5<~VTZJp;9jD-wG@8(ghU>n*kBe7MKw)=DvOnAaBl&CQ1IsX7?k6W10(RqDK?jPuQrJEC-EjehvnBSkM^WC$PdIzU|a3iL~~u%&r7=cwkc z9~^~g`2$_^Lz9eA)ZQ;n&-06xq)r^T$M$U$>Q7;U(8SLk2RiPCLr3858rNr9smwaDk>^CZUShm zSritF#oai8&-iQBmu}vx(44qAr!Ak=S6Tdy4?K^fEFr+*2%C4{ootWFdj_%lWjHN zeMJUMr&b$Id>P!QU+#{8d_@84hXoI3DDyFu_njXOjU`QAi-<0}Tu44Gee6uNlyz5b z&)2BQ$hwD2HvV*+Lh0#F+nF0eH(uEU@mbT3pBi#5;w;kTF51!;2J9V`qIL7|4g}DE ze`Ohf{`^{NXphAd>cFP=Hy-0rgF6{$SOjjiCwgb#!~G|Tg2BLSCpz^@QuzS`3@qN+ zV_*T>TeR`wdfGZ8nO}CNkZu9zLJFxHCg5xj7bwN^g655ff5NNU+p9dKNw<4j_AARP za*`RB03!EK8E2mG*FBR!GJ{5*nQTnOak;P9i>Ot3+21S`V6{!8A8q*(^wa+CPgL^Q zcM=+|#+6LY*zWqLigivn)GZbn{?MlahzcO1bI-)xksz9^^Af?+M~;Mm#505-!p1sf zju&Ct058P+NM3z(R?qh1I!EX!1`NmrD#Juk71_;dc%o&bTt$DsywU~OfUmp5D zZs!FS+|`xZ|IG}PbW1e*bLcSn*$sGlWAOC6cV~hi84V>~&WG88?fnkB38o?^>}c)e z*bZp@JHWHxt=D*0l8BVg8?OrIaj05@}+^}D^!S$ zlWs<4;D)Eafs6xPkquSsN|S4?XgC#tU0vEkoB}<*GJSjp&XkUQ)0sT&ih`fMW;m`> zTs#SA5y52$VlOf@&+tCaRt(d(8ZYO9TK6;vl=fJLqATnepKAJ{GHYv-SH>$q8!+k= zEH~^!u>($ufMg`NgT(1&&&v0Fuy45gd8Cy%&|Y)iJ>{H)>qT+OnL7^AN)3tzQ&VaZ zr6*;j}}X8{*o1%y4M(OYV8;MBt*wvjeao1PUdX;Lks5+9E#IN>=ytx z9~~3ZX7%+}jqA#(bO=%4<>@ytbU6I_u;8Yuo14>bITXK-6mT~jt=R2h(@sMB7js?f zDl6j+cs26tC*a|MEfR7)&Bn_59T-Dgn9L#(RNJ@8*Li!``i-B}^?Kkh=U-~!*(yZcT^Gd`Iwf<}5Y?di`sREN)^!G<% zcM+z_OOhE``(53C-zUv~^a)Sf&X@SwTTZmwWB&}lJlKYIB%F|zr~GnbQ^W@z1sv%4 zdu5t|5cs!K)A7Iz^=LD%sCY+Kos9Yj_F0s=n9*&sag&PmUrHPAe-}TJE=dxuiQT}|VfSphuiCEZ-aQ`G z%rLt_KEY@-NEj5H$W>)9vgh&*7c9+S-~F&PnIRViLw#mSdbo`dczSrKVw0{*I28_C zRk@Uvgf~)ZPIf1MOA{s}`8G66rR0QtS-X0Rj9{abq8BjqnGZpZTx<~Fma>Fh<#>KZq6Qmi-V$MysVVa`=_`gPJxF8s_oRo?6gS39tp%OI5mpW$F_0`Yji#4V>Ybd zUox_@QBaxy(blHf4SN)#>ozR5aI}N&n0JhXC?<1+MDt}Oi6#i7EvJ|R-0~(ZgW*-} z4s^F}-Fl?(_L;cC`j#TC^-ep4>*6Q!x65MEIx-Ov?Wyb!@vx12KRz&FP_!<#p6PH&;~A$i4aZlwZk*7@%G#x-%~4>U9{FML1x;!eU?POLV(EN3_ zt`C}y@pE^?eC>$!)QN4gFSML99AO<0+Cnto^wATzNaA87VzZR41 z>J68^|3kQ-sf|;WFZ`$qX>v&3^=aW1&2%y!OB3*G=1Oadd$|6(C1WI$WpS4%qiTbe zeDgV-q7sp@HhNk^Sd=sn)flsS5nKI+PO5iGm%H3{N7*_#@c$|8x`U!hwl_vpl9G|6 zqD09V1w>c{C5faZjf4@AG=LHZE{cFi5+y63pddj&K;n>>AQB}B3`vrba}MuZeYFatnydAjF0|=(v?$j;{h>`W*D9S zs14{j>rSvZSMo`%V8M+~=*Y1C3G%)_KJepMa25F!=RXIJt!LZFC(n>_9IcLfy!Eb& z9>NjF#WsYJI07XJZh%b%4wI|`0Lq>sCoVlBhu@M0EC&c~N=a=e{gqkx1qDO7;$0s~ zJB@4V>(_%(Q-yE@4x+3jaUIfxh=_iVgAU8#)Mo|RH<{|t;w7TJCcB3Jc?r7z{aC1#ByVC3{@ut&~WXq%WQ#Nn#OA4 zkyqR0Qny$#xDx`raW?qcC~ONjb>Z@t>m&S(z`VMFOEB+VisH|HP`wXgvZe?lJmyJv?SHor;{45)eM*o z&RT?xU*{O27+QJQ&0IObQ#q!6>+5MF-GkNn6~Z_cs{D~!XS}}pndCUtMpX{_&lMvY zHOK_j&{CQ+XcnY~6jm-~0*+=|yB9SPgA)6UoH!|FIl|8t; zOaRtV&6s12$9q;=ki!E!FI>iPnuq5BG5@`k%c$m;!@IFa-b~Xs93|h{;dOjqlim~u zt*3!PTMCxttA4HIg@%ps^kb{Dfk?JHS>v8q1*S~O_f{^Zb&G&;x*KX|A>KV}2%BQV zYQ1cwf4JHo4JXRC#{@@AZ%2R}0{n+4*Lk=%+r!&nDmSZa^NI4=%M;D_3li?ycy=>d z#@(lfIE4pxlNm$>3sYci-U2iq!Kar4F9YS)cIW-&|8Pk~l2cN^J1$F4OngWsx9$ye zNT-zcjO(37cbyr^)s8Pd5`27Q>k>yKgy!9L-W>XJC*ql6`Y4OYekLh9c5HHGQJN7;)aAS(%KCzwP)1HoO}#*hXWV3e0mev0W30mA+u9bB zu-QRi={XVFW5UQTUj4$1n7Zsr$Kmq22M0*?iyX1|wW>Az|g5Qf!Hjd6Irey-(Fu;?#qeig;f_ zu-Pc79{(tuZzIxE+;8!jEl|y)|9oFqBeI3D$QAAip5At16yDYw9nGtlT9I&-g|k{o z{mq==piZZGnDU#htzlfWCilThP}mSx(ho#aMr~o5_fpA9Puoeu!A{g>zjPaqx!=4} zl5mvQqhk{<2dBelAR0j?JvvnBgEA=OC&k|NuKQ(Fy6_tnKGo#bwuAynisH9RVhF(I1J`VJ-oX0K=!JD8I?hdTSn ztuXK3&P2wkcBpVoS{(l?g@Aco7dvzhZJ_VC*<`!b^tTjcQ?-trUfX}wk#L9f*{sUoi6>#wb-ZyhZY4w zN3o=a*oELdmDy(PB<4`R7h1KDxl z(1>{Lz-a=QOE9yfmcBk?c_a{baCEpq0GM9t1wa4+6f0-B5H3hZBCS9fOpxbf5f-oE zUyewrzLYxAE>;BOIdkdZ!IgsY9g0`Y?u@*WvNpuRFhCQ!rIY2rAi+drgDeHKE2-<^ zbq=oE3w8VMvgC|A7R_(%x8Qu+&MWSpF*<(MwLPGhhee=eNOPX{iTQh;k2yS|x!i$R ztrLjtmHNg%#JJFSS-TD9sA2F@w-& zWWiMmfDUvPzzlWPlC#Q$qgxk+bi5dqB7gyPs$+GT@3qbXiOf5Lgay#JfaK641g1#{ zd;qja7A!74-HcbB$QBg&D-hTf|JWN(7ohYVJQ&nyz?lk}@e!f&yU_raI02m~0)iG9 zc|$3d@gYh7ubXbCp+@Z3&;$D;5v0N#Csf<3W|oG@)>WF6p=L_ty}N@?;C?Bnh>$j~ z3(L>)`&O6g{Zb8c%$jGsLmqp2nFqXwqRq*41Vzly0~&BBC`bQ1CBZ9J`D_(vJ-;EY zfN!)&Pi5rdSp2QCN+a{~#0Kz7YWa5k4WNFhppYbL&gGuGIq13gi3@mg|Mbja-re_^ zpio35C=f|*G}(J8g35uEip>HJcgR5y0_Wdrtz>W?Du54Vla)dMckDKDqJWvif;t0b zZefw@kjXIT9@Y^k{(fe_Ys(fi#FH0WT^ho9AhBW|ATePOE0dsj8AR*e4VQLOQ{odr z)ke-NLGBH`gn0C1sR;C6W0f-t!%K(eHwf$a&8}Doe;Di1%bv%= z==OchHdXY&v;)IWa#!Nsv$>|J6%of#WmFRd(3W0Op?oBSLf-CFX|Ah1meLTfxq+z5 zbz>|l;7SrC&N}wl79b8FjO+X^>?~G3*aD1mz3dvX8uVOE;DFzOXcjzITpX#2wx>jB zozLJLmn?t8w%rVxjLt|-P3eEs&-~yvT=GSuqNa8ZiZ_C)VB1UHu3*b!#rP)!+E!-o z=`t3fhZd3m3^+#4Qw9K2r~oel!T)UO8e)PXL*`JOvI_FYP@e|&;IS~}M^HXT2m}TK zrORK;<)*f}Tyy}$s)e6up!M0k)=z^H@+=$%qRmo1fE79cs8v^&oSclFZ>V$)yhT<> z3;s?l5{1NNvAvCiy^YfDSJxCLhkMUs;I1DwkBr`rO~?z$T&NZDDyLIH$Gb0j1s*Z$ z$-xrgMq*TBROB=P*+!q)cjrmrpT^5bau@d783{1_@OzdV@(Zzkdc zaSc3I=iLKiggHP|>MtB*Cb!*svF#?h+kQ5y9Kc7;(LRKX{Jc93kMuKkKeVS@6$&zA z^AuBcFRsisHCbFF?!^a4wB}$r5j|rag%=X%4(_k9z_Py9%hCd1QHYdMYA;fHdTfl2Abd(+=74!k4%5{I3g{=a3SM&^Bj)?HRt@w zlDXv8^zKk*8Du#OA_1&w{L6~cwZmQ=mgqwG*~G-be2@TI|GF{@72uG>vtzHwJ4p7A zTGj>~5iF%m6|Lyc`()P68Av9$EKxL14;mW9#+OXPjiUX8U3Zb0KBT0lH{TR`F;Yj$ zga{`Fwa9C5@%*TJab3!2L-JvGcyfXIU!&U-(0OfR{?7L@zx(Pvr&=bv0S`f4%NGx# zFd-yD&Kd0QN=RqZbT}D|G}Yn8hW!uBik+MKE^ol?D-8iuInVGfUSavE4a^Bc0A zmM)4GZ8?t}uCn*gAZInG-I$0vfU9FwAWw>}W2frwJhNOwc3NetRNJ=OCzlFN+_QpkRu@nvua6!VEIZfdQ2<7Ym@PwVIv z*>U+brJl);k+pIvP%_?_CFHsfc0n&3Eob{(NO9e5a$WhR#KKc4@sqb#Cbg-ld9yG` zX(;^Pi_4nPYXgD8HqlWEJ_N$5LAdg0-&4n)9L6Zj>_~)OB7XbBr^hEE9?UF`ArYtV zdhVMY+|`x7-TJC_$2|d&tMa3uN4CxPyA1BkSh9&XT#XVqry6~Hv|Z!ozIoSECw{8zR~{Y*Zr;sR%lfAc$DMwBNqg0K{p^10Zr$ArCw)89)taU2u6vcepyMm+-zdfx zsoYLhXoStj*M(!+t0cRb61GOG;gZk&~m9IxY5@lkwP2s4Cl6&?jbn`)Pzu?#$)x%n18p^Q$Y8w(ZHAN`$=z1M^@T zJwt76rgi5@?IoW$&wPm|sNxfC^`BHe>C3_-D4N6v>S2OGkQcDNBV?%_u0P#Z{drQ$ z#H8rvN`BuqIkWB-<(Kg$zUqdTEIxKfztMtR;pfO03rl8rSBV&TDh+wo(~KG9(&gJZ zySoJ>Jv|X~CDu`D{*)9g-}!i1sA;U{VqQGGwQa4sGBq%gC!L?xVsG1`aXq~xH0xJq zpgS!w`-$d-3s>Z6I3KxA#BoO%kDGU89EpiJ%z!c4QZUld(&AODqvuDA$XVT|!<|}B z34#Xk21`oLo-IsWd92qCA(|7v7@%TmIwsI*eyGqgVP+WFlWf53Qp19q+@&+5$1nJ* znV4YfU%a%@)E)1T$xp0GT`dYJNIL}yoNifpd8^WY8SZUjs&AEW5YtHAgb!?Zc(iGA zgZMbyE+?X9;+SGTblQ|0gCw5kor$o_RR`gV3~|uUq|_pnK#B8_mHjW&(M&l%lE6* zg$U3KhIC3DoJmcog5&h;z!Lqfp-WVDl5o(yhBQ`6qj%H3C3v?Wo%F`Ttlv8cMU|dw z=QMBZQ}he}V5+z>VMu>*!{Si@jpDt@(Qj2`d@eK?yu+AB`TXTKz3YNyNcQh#M2iX% zsvke(n<>3JB&sj7xOX#0BA=dj9|7ZEr+gDV>OZF>7`#Nh#_T$HcQ)OQ9IhNoBc}Ep z_q)MVXyO`e4b-$2`8FS-WiLGGdtcr7r~5oQY9NPtRH*ab0q^> zUac{R=|sGzL{+9SeezK^H^i;4t&FYE zyf!FRlyKyW``SDXC_~KfhB+DTL$ifAJ4~Ip=?eGMjttI8Hq(x~rTd&{Td? LSIWG6>*2ouDcsrn diff --git a/video-rec/bin/fix_videos.sh b/video-rec/bin/fix_videos.sh index f9b037f3..ddc89ba5 100755 --- a/video-rec/bin/fix_videos.sh +++ b/video-rec/bin/fix_videos.sh @@ -52,7 +52,7 @@ if [ "${VIDEO_TMP_FILE_EXTENSION}" != "${VIDEO_FILE_EXTENSION}" ]; then # TODO: Move this mkv to mp4 conversion to a post-processing Zalenium thread # ffmpeg -i ${tmp_video_path} ${final_video_path} if timeout --foreground "${VIDEO_CONVERSION_MAX_WAIT}" \ - ffmpeg -i ${tmp_video_path} -vcodec libx264 ${FFMPEG_CODEC_V_ARGS} ${final_video_path}; \ + ffmpeg -i ${tmp_video_path} -vcodec libx264 ${FFMPEG_CODEC_ARGS} ${final_video_path}; \ then log "Conversion from ${VIDEO_TMP_FILE_EXTENSION} to ${VIDEO_FILE_EXTENSION} succeeded!" log "Cleaning up ${tmp_video_path} ..." diff --git a/video-rec/bin/start-video-rec.sh b/video-rec/bin/start-video-rec.sh index d3b06208..d59964b3 100755 --- a/video-rec/bin/start-video-rec.sh +++ b/video-rec/bin/start-video-rec.sh @@ -70,7 +70,7 @@ else -f "x11grab" \ -s "${FFMPEG_FRAME_SIZE}" \ -i "${DISPLAY}.0" \ - ${FFMPEG_CODEC_V_ARGS} \ + ${FFMPEG_CODEC_ARGS} \ -y -an "${tmp_video_path}" 2>&1 & fi From 24359d5799c3922434a32a90ed54c3fd085efa6c Mon Sep 17 00:00:00 2001 From: Koray Daldal Date: Wed, 8 Apr 2020 02:58:39 +0200 Subject: [PATCH 06/10] changed framerate back from 30 to 10 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index ddc3a3de..103613a1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -762,7 +762,7 @@ ENV FIREFOX_VERSION="${FF_VER}" \ CHROME="true" \ FIREFOX="true" \ MULTINODE="false" \ - FFMPEG_FRAME_RATE=30 \ + FFMPEG_FRAME_RATE=10 \ FFMPEG_CODEC_ARGS="-vcodec libx264 -preset ultrafast" \ FFMPEG_CODEC_VA_ARGS="-vcodec libx264 -acodec copy -preset ultrafast" \ FFMPEG_FINAL_CRF=0 \ From 116b48455512166f5037f45cbd4f791ee017d246 Mon Sep 17 00:00:00 2001 From: Koray Daldal Date: Wed, 8 Apr 2020 03:05:36 +0200 Subject: [PATCH 07/10] revert change --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 103613a1..ddc3a3de 100644 --- a/Dockerfile +++ b/Dockerfile @@ -762,7 +762,7 @@ ENV FIREFOX_VERSION="${FF_VER}" \ CHROME="true" \ FIREFOX="true" \ MULTINODE="false" \ - FFMPEG_FRAME_RATE=10 \ + FFMPEG_FRAME_RATE=30 \ FFMPEG_CODEC_ARGS="-vcodec libx264 -preset ultrafast" \ FFMPEG_CODEC_VA_ARGS="-vcodec libx264 -acodec copy -preset ultrafast" \ FFMPEG_FINAL_CRF=0 \ From e6d1ca5395597f8362ee42ac70dc967d5c02210d Mon Sep 17 00:00:00 2001 From: Koray Daldal Date: Wed, 8 Apr 2020 03:09:26 +0200 Subject: [PATCH 08/10] whopsie. revert didn't work --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index ddc3a3de..103613a1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -762,7 +762,7 @@ ENV FIREFOX_VERSION="${FF_VER}" \ CHROME="true" \ FIREFOX="true" \ MULTINODE="false" \ - FFMPEG_FRAME_RATE=30 \ + FFMPEG_FRAME_RATE=10 \ FFMPEG_CODEC_ARGS="-vcodec libx264 -preset ultrafast" \ FFMPEG_CODEC_VA_ARGS="-vcodec libx264 -acodec copy -preset ultrafast" \ FFMPEG_FINAL_CRF=0 \ From 08fb97a3b9699aa49b28a12ed37711a46c544300 Mon Sep 17 00:00:00 2001 From: Koray Daldal Date: Wed, 8 Apr 2020 16:04:50 +0200 Subject: [PATCH 09/10] upgraded firefox version --- Dockerfile | 2 +- capabilities.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 103613a1..0ef25e48 100644 --- a/Dockerfile +++ b/Dockerfile @@ -428,7 +428,7 @@ ENV FF_LANG="en-US" \ FF_PLATFORM="linux-x86_64" \ FF_INNER_PATH="firefox/releases" -ARG FF_VER="73.0" +ARG FF_VER="75.0" ENV FF_COMP="firefox-${FF_VER}.tar.bz2" ENV FF_URL="${FF_BASE_URL}/${FF_INNER_PATH}/${FF_VER}/${FF_PLATFORM}/${FF_LANG}/${FF_COMP}" diff --git a/capabilities.json b/capabilities.json index 1f42598b..37a36bf7 100644 --- a/capabilities.json +++ b/capabilities.json @@ -7,7 +7,7 @@ }, { "BROWSER_NAME": "firefox", - "VERSION": "73.0", + "VERSION": "75.0", "PLATFORM": "LINUX" } ] From 1bf3862e21049153953b40b4b5fa27794f9b0ba1 Mon Sep 17 00:00:00 2001 From: v0idp Date: Wed, 8 Apr 2020 17:17:24 +0200 Subject: [PATCH 10/10] changed 1g to 2g in docs --- docs/videos.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/videos.md b/docs/videos.md index fa47c8ff..20f30ae9 100644 --- a/docs/videos.md +++ b/docs/videos.md @@ -11,7 +11,7 @@ Pull image Run a new grid docker run --rm --name=grid -p 4444:24444 -p 5920:25900 \ - --shm-size=1g -e VNC_PASSWORD=hola \ + --shm-size=2g -e VNC_PASSWORD=hola \ -e VIDEO=true elgalu/selenium ### Wait @@ -53,7 +53,7 @@ Check your video, note it may be splitted in many files if is too long If you want to additionaly record audio with the video use this docker run --rm --name=grid -p 4444:24444 -p 5920:25900 \ - --shm-size=1g -e VNC_PASSWORD=hola \ + --shm-size=2g -e VNC_PASSWORD=hola \ -e VIDEO=true \ -e AUDIO=true elgalu/selenium