Skip to content

Commit b079935

Browse files
authored
update: Rollback FFmpeg v6.1.1 (#2247)
Signed-off-by: Viet Nguyen Duc <[email protected]>
1 parent 3f30189 commit b079935

File tree

8 files changed

+47
-39
lines changed

8 files changed

+47
-39
lines changed

Makefile

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ BUILD_ARGS := $(BUILD_ARGS)
1717
MAJOR := $(word 1,$(subst ., ,$(TAG_VERSION)))
1818
MINOR := $(word 2,$(subst ., ,$(TAG_VERSION)))
1919
MAJOR_MINOR_PATCH := $(word 1,$(subst -, ,$(TAG_VERSION)))
20-
FFMPEG_TAG_VERSION := $(or $(FFMPEG_TAG_VERSION),$(FFMPEG_TAG_VERSION),ffmpeg-7.0)
21-
FFMPEG_BASED_NAME := $(or $(FFMPEG_BASED_NAME),$(FFMPEG_BASED_NAME),ndviet)
22-
FFMPEG_BASED_TAG := $(or $(FFMPEG_BASED_TAG),$(FFMPEG_BASED_TAG),7.0-ubuntu2204)
20+
FFMPEG_TAG_VERSION := $(or $(FFMPEG_TAG_VERSION),$(FFMPEG_TAG_VERSION),ffmpeg-6.1.1)
21+
FFMPEG_BASED_NAME := $(or $(FFMPEG_BASED_NAME),$(FFMPEG_BASED_NAME),linuxserver)
22+
FFMPEG_BASED_TAG := $(or $(FFMPEG_BASED_TAG),$(FFMPEG_BASED_TAG),version-6.1.1-cli)
2323
PLATFORMS := $(or $(PLATFORMS),$(PLATFORMS),linux/amd64)
2424

2525
all: hub \
@@ -476,9 +476,9 @@ test_video: video hub chrome firefox edge
476476
done
477477
# Using ffmpeg to verify file integrity
478478
# https://superuser.com/questions/100288/how-can-i-check-the-integrity-of-a-video-file-avi-mpeg-mp4
479-
docker run -u $$(id -u) -v $$(pwd):$$(pwd) -w $$(pwd) $(FFMPEG_BASED_NAME)/ffmpeg:$(FFMPEG_BASED_TAG) -v error -i ./tests/videos/chrome_video.mp4 -f null - 2>error.log
480-
docker run -u $$(id -u) -v $$(pwd):$$(pwd) -w $$(pwd) $(FFMPEG_BASED_NAME)/ffmpeg:$(FFMPEG_BASED_TAG) -v error -i ./tests/videos/firefox_video.mp4 -f null - 2>error.log
481-
docker run -u $$(id -u) -v $$(pwd):$$(pwd) -w $$(pwd) $(FFMPEG_BASED_NAME)/ffmpeg:$(FFMPEG_BASED_TAG) -v error -i ./tests/videos/edge_video.mp4 -f null - 2>error.log
479+
docker run -u $$(id -u) -v $$(pwd):$$(pwd) -w $$(pwd) --entrypoint="" $(FFMPEG_BASED_NAME)/ffmpeg:$(FFMPEG_BASED_TAG) ffmpeg -v error -i ./tests/videos/chrome_video.mp4 -f null - 2>error.log
480+
docker run -u $$(id -u) -v $$(pwd):$$(pwd) -w $$(pwd) --entrypoint="" $(FFMPEG_BASED_NAME)/ffmpeg:$(FFMPEG_BASED_TAG) ffmpeg -v error -i ./tests/videos/firefox_video.mp4 -f null - 2>error.log
481+
docker run -u $$(id -u) -v $$(pwd):$$(pwd) -w $$(pwd) --entrypoint="" $(FFMPEG_BASED_NAME)/ffmpeg:$(FFMPEG_BASED_TAG) ffmpeg -v error -i ./tests/videos/edge_video.mp4 -f null - 2>error.log
482482

483483
test_node_docker: hub standalone_docker standalone_chrome standalone_firefox standalone_edge video
484484
sudo rm -rf ./tests/tests

NodeDocker/config.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ configs = [
1414
# socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock
1515
url = "http://127.0.0.1:2375"
1616
# Docker image used for video recording
17-
video-image = "selenium/video:ffmpeg-7.0-20240425"
17+
video-image = "selenium/video:ffmpeg-6.1.1-20240425"
1818

1919
# Uncomment the following section if you are running the node on a separate VM
2020
# Fill out the placeholders with appropriate values

README.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -512,7 +512,7 @@ ___
512512

513513
## Video recording
514514

515-
Tests execution can be recorded by using the `selenium/video:ffmpeg-7.0-20240425`
515+
Tests execution can be recorded by using the `selenium/video:ffmpeg-6.1.1-20240425`
516516
Docker image. One container is needed per each container where a browser is running. This means if you are
517517
running 5 Nodes/Standalone containers, you will need 5 video containers, the mapping is 1-1.
518518

@@ -523,6 +523,10 @@ The video Docker image we provide is based on the ffmpeg Ubuntu image provided b
523523
[jrottenberg/ffmpeg](https://github.com/jrottenberg/ffmpeg) project, thank you for providing this image and
524524
simplifying our work :tada:
525525

526+
From image tag based `4.20.0` onwards, the video Docker image is based on the FFmpeg Ubuntu image provided by
527+
[linuxserver/docker-ffmpeg](https://github.com/linuxserver/docker-ffmpeg) project since the image is available for multi-platform.
528+
Thank you for simplifying our project and helping us move forward with multiple architecture support.
529+
526530
**Notes**:
527531
- If you have questions or feedback, please use the community contact points shown [here](https://www.selenium.dev/support/).
528532
- Please report any bugs through GitHub [issues](https://github.com/SeleniumHQ/docker-selenium/issues/new/choose), and provide
@@ -539,7 +543,7 @@ This example shows how to start the containers manually:
539543
``` bash
540544
$ docker network create grid
541545
$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" selenium/standalone-chrome:4.20.0-20240425
542-
$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-7.0-20240425
546+
$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-6.1.1-20240425
543547
# Run your tests
544548
$ docker stop video && docker rm video
545549
$ docker stop selenium && docker rm selenium
@@ -559,7 +563,7 @@ Besides the video recording mentioned above, you can enable the upload functiona
559563
version: "3"
560564
services:
561565
chrome_video:
562-
image: selenium/video:nightly
566+
image: selenium/video:ffmpeg-6.1.1-20240425
563567
depends_on:
564568
- chrome
565569
environment:
@@ -630,7 +634,7 @@ host-config-keys = ["Dns", "DnsOptions", "DnsSearch", "ExtraHosts", "Binds"]
630634
# Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue.
631635
url = "http://127.0.0.1:2375"
632636
# Docker image used for video recording
633-
video-image = "selenium/video:ffmpeg-7.0-20240425"
637+
video-image = "selenium/video:ffmpeg-6.1.1-20240425"
634638
635639
# Uncomment the following section if you are running the node on a separate VM
636640
# Fill out the placeholders with appropriate values
@@ -765,7 +769,7 @@ configs = [
765769
# Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue.
766770
url = "http://127.0.0.1:2375"
767771
# Docker image used for video recording
768-
video-image = "selenium/video:ffmpeg-7.0-20240425"
772+
video-image = "selenium/video:ffmpeg-6.1.1-20240425"
769773
770774
# Uncomment the following section if you are running the node on a separate VM
771775
# Fill out the placeholders with appropriate values

charts/selenium-grid/README.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -299,20 +299,20 @@ ingress-nginx:
299299
### Configuration global
300300
For now, global configuration supported is:
301301
302-
| Parameter | Default | Description |
303-
|-------------------------------------------------|-----------------------|-------------------------------------------|
304-
| `global.K8S_PUBLIC_IP` | `""` | Public IP of the host running K8s |
305-
| `global.seleniumGrid.imageRegistry` | `selenium` | Distribution registry to pull images |
306-
| `global.seleniumGrid.imageTag` | `4.20.0-20240425` | Image tag for all selenium components |
307-
| `global.seleniumGrid.nodesImageTag` | `4.20.0-20240425` | Image tag for browser's nodes |
308-
| `global.seleniumGrid.videoImageTag` | `ffmpeg-7.0-20240425` | Image tag for browser's video recorder |
309-
| `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images |
310-
| `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images |
311-
| `global.seleniumGrid.affinity` | `{}` | Affinity assigned globally |
312-
| `global.seleniumGrid.logLevel` | `INFO` | Set log level for all components |
313-
| `global.seleniumGrid.defaultNodeStartupProbe` | `exec` | Default startup probe method in Nodes |
314-
| `global.seleniumGrid.defaultNodeLivenessProbe` | `exec` | Default liveness probe method in Nodes |
315-
| `global.seleniumGrid.stdoutProbeLog` | `true` | Enable probe logs output in kubectl logs |
302+
| Parameter | Default | Description |
303+
|------------------------------------------------|-------------------------|------------------------------------------|
304+
| `global.K8S_PUBLIC_IP` | `""` | Public IP of the host running K8s |
305+
| `global.seleniumGrid.imageRegistry` | `selenium` | Distribution registry to pull images |
306+
| `global.seleniumGrid.imageTag` | `4.20.0-20240425` | Image tag for all selenium components |
307+
| `global.seleniumGrid.nodesImageTag` | `4.20.0-20240425` | Image tag for browser's nodes |
308+
| `global.seleniumGrid.videoImageTag` | `ffmpeg-6.1.1-20240425` | Image tag for browser's video recorder |
309+
| `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images |
310+
| `global.seleniumGrid.imagePullSecret` | `""` | Pull secret to be used for all images |
311+
| `global.seleniumGrid.affinity` | `{}` | Affinity assigned globally |
312+
| `global.seleniumGrid.logLevel` | `INFO` | Set log level for all components |
313+
| `global.seleniumGrid.defaultNodeStartupProbe` | `exec` | Default startup probe method in Nodes |
314+
| `global.seleniumGrid.defaultNodeLivenessProbe` | `exec` | Default liveness probe method in Nodes |
315+
| `global.seleniumGrid.stdoutProbeLog` | `true` | Enable probe logs output in kubectl logs |
316316

317317
#### Configuration `global.K8S_PUBLIC_IP`
318318

@@ -845,7 +845,7 @@ This table contains the configuration parameters of the chart and their default
845845
| `videoRecorder.enabled` | `false` | Enable video recorder for node |
846846
| `videoRecorder.imageRegistry` | `nil` | Distribution registry to pull the image (this overwrites `.global.seleniumGrid.imageRegistry` value) |
847847
| `videoRecorder.imageName` | `video` | Selenium video recorder image name |
848-
| `videoRecorder.imageTag` | `ffmpeg-7.0-20240425` | Image tag of video recorder |
848+
| `videoRecorder.imageTag` | `ffmpeg-6.1.1-20240425` | Image tag of video recorder |
849849
| `videoRecorder.imagePullPolicy` | `IfNotPresent` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) |
850850
| `videoRecorder.uploader.enabled` | `false` | Enable the uploader for videos |
851851
| `videoRecorder.uploader.destinationPrefix` | `` | Destination for uploading video file. It is following `rclone` config |

charts/selenium-grid/values.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ global:
1111
# Image tag for browser's nodes
1212
nodesImageTag: 4.20.0-20240425
1313
# Image tag for browser's video recorder
14-
videoImageTag: ffmpeg-7.0-20240425
14+
videoImageTag: ffmpeg-6.1.1-20240425
1515
# kubectl image is used to execute kubectl commands in utility jobs
1616
kubectlImage: bitnami/kubectl:latest
1717
# Pull secret for all components, can be overridden individually
@@ -1107,7 +1107,7 @@ videoRecorder:
11071107
# Image of video recorder
11081108
imageName: video
11091109
# Image of video recorder
1110-
# imageTag: ffmpeg-7.0-20240425
1110+
# imageTag: ffmpeg-6.1.1-20240425
11111111
# Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)
11121112
imagePullPolicy: IfNotPresent
11131113
# Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)

docker-compose-v3-video-upload.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ services:
3535
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
3636

3737
chrome_video:
38-
image: selenium/video:ffmpeg-7.0-20240425
38+
image: selenium/video:ffmpeg-6.1.1-20240425
3939
depends_on:
4040
- chrome
4141
environment:
@@ -56,7 +56,7 @@ services:
5656
- RCLONE_CONFIG_S3_NO_CHECK_BUCKET=true
5757

5858
edge_video:
59-
image: selenium/video:ffmpeg-7.0-20240425
59+
image: selenium/video:ffmpeg-6.1.1-20240425
6060
depends_on:
6161
- edge
6262
environment:
@@ -77,7 +77,7 @@ services:
7777
- RCLONE_CONFIG_S3_NO_CHECK_BUCKET=true
7878

7979
firefox_video:
80-
image: selenium/video:ffmpeg-7.0-20240425
80+
image: selenium/video:ffmpeg-6.1.1-20240425
8181
depends_on:
8282
- firefox
8383
environment:

docker-compose-v3-video.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ services:
3434
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
3535

3636
chrome_video:
37-
image: selenium/video:ffmpeg-7.0-20240425
37+
image: selenium/video:ffmpeg-6.1.1-20240425
3838
volumes:
3939
- /tmp/videos:/videos
4040
depends_on:
@@ -44,7 +44,7 @@ services:
4444
- FILE_NAME=chrome_video.mp4
4545

4646
edge_video:
47-
image: selenium/video:ffmpeg-7.0-20240425
47+
image: selenium/video:ffmpeg-6.1.1-20240425
4848
volumes:
4949
- /tmp/videos:/videos
5050
depends_on:
@@ -54,7 +54,7 @@ services:
5454
- FILE_NAME=edge_video.mp4
5555

5656
firefox_video:
57-
image: selenium/video:ffmpeg-7.0-20240425
57+
image: selenium/video:ffmpeg-6.1.1-20240425
5858
volumes:
5959
- /tmp/videos:/videos
6060
depends_on:

tests/SeleniumTests/__init__.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,15 +68,19 @@ def test_visit_basic_auth_secured_page(self):
6868

6969
def test_play_video(self):
7070
driver = self.driver
71-
driver.get('https://hls-js.netlify.com/demo/')
71+
driver.get('https://docs.flowplayer.com/tools/stream-tester')
7272
wait = WebDriverWait(driver, WEB_DRIVER_WAIT_TIMEOUT)
73-
video = wait.until(
74-
EC.element_to_be_clickable((By.TAG_NAME, 'video'))
73+
play_button = wait.until(
74+
EC.element_to_be_clickable((By.TAG_NAME, 'flowplayer-play-icon'))
7575
)
76-
video.click()
76+
play_button.click()
77+
video = driver.find_element(By.TAG_NAME, 'video')
7778
wait.until(
7879
lambda d: d.find_element(By.TAG_NAME, 'video').get_property('currentTime')
7980
)
81+
wait.until(
82+
lambda d: d.find_element(By.TAG_NAME, 'video').get_property('paused') == False
83+
)
8084
paused = video.get_property('paused')
8185
self.assertFalse(paused)
8286

0 commit comments

Comments
 (0)