Compare commits

...

2 Commits

Author SHA1 Message Date
Michel Promonet ef86de3922 update docker build 2 weeks ago
Michel Promonet 890cdbe5ae fix #331: remove submodule hls.js 2 weeks ago

@ -144,7 +144,8 @@ jobs:
command: |
export TAG=${CIRCLE_TAG:-latest}
docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
docker build --pull -t $CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME:${TAG}-arm32v7 -f Dockerfile.rpi .
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker build --pull -t $CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME:${TAG}-arm32v7 --build-arg IMAGE=balenalib/raspberry-pi2 .
docker push $CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME:${TAG}-arm32v7
# -------------------------------------
@ -161,7 +162,8 @@ jobs:
command: |
export TAG=${CIRCLE_TAG:-latest}
docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
docker build --build-arg ARCH=armv6l --pull -t $CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME:${TAG}-arm32v6 -f Dockerfile.rpi .
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker build --build-arg ARCH=armv6l --pull -t $CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME:${TAG}-arm32v6 --build-arg IMAGE=balenalib/raspberry-pi .
docker push $CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME:${TAG}-arm32v6
# -------------------------------------
@ -179,7 +181,7 @@ jobs:
export TAG=${CIRCLE_TAG:-latest}
docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker build --pull -t $CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME:${TAG}-arm64 -f Dockerfile.arm64 .
docker build --pull -t $CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME:${TAG}-arm64 --build-arg IMAGE=arm64v8/ubuntu:24.04 .
docker push $CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME:${TAG}-arm64
# -------------------------------------

@ -1,13 +1,17 @@
linux_docker_builder:
script: docker build -t $CIRRUS_REPO_FULL_NAME:cirrus-linux . -f Dockerfile
script: docker build -t $CIRRUS_REPO_FULL_NAME:cirrus-linux .
linuxarmv7_docker_builder:
script: docker build -t $CIRRUS_REPO_FULL_NAME:cirrus-rpi . -f Dockerfile.rpi
script: |
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker build -t $CIRRUS_REPO_FULL_NAME:cirrus-armv7 . --build-arg IMAGE=balenalib/raspberry-pi2
linuxarmv6_docker_builder:
script: docker build -t $CIRRUS_REPO_FULL_NAME:cirrus-armv6 . -f Dockerfile.rpi --build-arg ARCH=armv6l
script: |
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker build -t $CIRRUS_REPO_FULL_NAME:cirrus-armv6 . --build-arg IMAGE=balenalib/raspberry-pi
linuxarm64_docker_builder:
script: |
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker build -t $CIRRUS_REPO_FULL_NAME:cirrus-arm64 . -f Dockerfile.arm64
docker build -t $CIRRUS_REPO_FULL_NAME:cirrus-arm64 . --build-arg IMAGE=arm64v8/ubuntu:24.04

@ -8,13 +8,16 @@ jobs:
matrix:
include:
- os: ubuntu-latest
dockerfile: Dockerfile.arm64
image: arm64v8/ubuntu:24.04
label: arm64
- os: ubuntu-latest
dockerfile: Dockerfile.rpi
image: balenalib/raspberry-pi
label: armv6l
- os: ubuntu-latest
dockerfile: Dockerfile
image: balenalib/raspberry-pi2
label: armv7
- os: ubuntu-latest
image: ubuntu:24.04
label: amd64
runs-on: ${{ matrix.os }}
@ -25,4 +28,4 @@ jobs:
- name: Build an image from Dockerfile
run: |
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker build -t docker.io/${{ github.repository }}:${{ matrix.label }} -f ${{ matrix.dockerfile }} .
docker build -t docker.io/${{ github.repository }}:${{ matrix.label }} --build-arg IMAGE=${{ matrix.image }} .

4
.gitmodules vendored

@ -1,6 +1,4 @@
[submodule "v4l2wrapper"]
path = libv4l2cpp
url = https://github.com/mpromonet/v4l2wrapper
[submodule "hls.js"]
path = hls.js
url = https://github.com/video-dev/hls.js

@ -160,7 +160,7 @@ endif (SYSTEMD_FOUND)
# package
install (TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin)
install (FILES index.html DESTINATION share/${PROJECT_NAME}/)
install (FILES hls.js/dist/hls.light.min.js DESTINATION share/${PROJECT_NAME}/hls.js/dist/)
install (FILES hls.js DESTINATION share/${PROJECT_NAME}/)
SET(CPACK_GENERATOR "DEB")
IF(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64")

@ -1,4 +1,5 @@
FROM ubuntu:24.04 as builder
ARG IMAGE=ubuntu:24.04
FROM $IMAGE as builder
LABEL maintainer michel.promonet@free.fr
WORKDIR /v4l2rtspserver
@ -8,7 +9,7 @@ COPY . .
RUN cmake . && make install && apt-get clean && rm -rf /var/lib/apt/lists/
FROM ubuntu:24.04
FROM $IMAGE
WORKDIR /usr/local/share/v4l2rtspserver
RUN apt-get update \

@ -1,27 +0,0 @@
FROM ubuntu:24.04 as builder
LABEL maintainer michel.promonet@free.fr
WORKDIR /v4l2rtspserver
ARG ARCH=arm64
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ca-certificates xz-utils cmake make patch pkg-config git wget gcc-aarch64-linux-gnu g++-aarch64-linux-gnu libasound2-dev && apt-get clean && rm -rf /var/lib/apt/lists/
COPY . .
RUN cmake -DCMAKE_SYSTEM_PROCESSOR=${ARCH} -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc -DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY . \
&& make install
FROM arm64v8/ubuntu:24.04
WORKDIR /usr/local/share/v4l2rtspserver
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ca-certificates libasound2-dev libssl-dev && apt-get clean && rm -rf /var/lib/apt/lists/
COPY --from=builder /usr/local/bin/ /usr/local/bin/
COPY --from=builder /usr/local/share/v4l2rtspserver/ /usr/local/share/v4l2rtspserver/
ENTRYPOINT [ "/usr/local/bin/v4l2rtspserver" ]
CMD [ "-S" ]

@ -1,24 +0,0 @@
FROM debian as builder
LABEL maintainer michel.promonet@free.fr
WORKDIR /v4l2rtspserver
COPY . /v4l2rtspserver
ARG ARCH=armv7l
RUN apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates xz-utils cmake make patch pkg-config git wget \
&& git clone --depth 1 https://github.com/raspberrypi/tools.git /rpi_tools \
&& export PATH=/rpi_tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin:$PATH \
&& cmake -DCMAKE_SYSTEM_PROCESSOR=${ARCH} -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_C_COMPILER=arm-linux-gnueabihf-gcc -DCMAKE_CXX_COMPILER=arm-linux-gnueabihf-g++ -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY . \
&& make install \
&& apt-get clean && rm -rf /var/lib/apt/lists/
FROM balenalib/raspberry-pi
WORKDIR /usr/local/share/v4l2rtspserver
COPY --from=builder /usr/local/bin/ /usr/local/bin/
COPY --from=builder /usr/local/share/v4l2rtspserver/ /usr/local/share/v4l2rtspserver/
ENTRYPOINT [ "/usr/local/bin/v4l2rtspserver" ]
CMD [ "-S" ]

@ -158,7 +158,7 @@ It is now possible to play HLS url directly from browser :
* using Firefox installing [Native HLS addons](https://addons.mozilla.org/en-US/firefox/addon/native_hls_playback)
* using Chrome installing [Native HLS playback](https://chrome.google.com/webstore/detail/native-hls-playback/emnphkkblegpebimobpbekeedfgemhof)
There is also a small HTML page that use hls.js and dash.js, but dash still not work because player doesnot support MP2T format.
There is also a small HTML page that use hls.js.
Using Docker image
===============

@ -1 +0,0 @@
Subproject commit e90a1b999071e88af0f734ef18b9e8520c839cec

File diff suppressed because one or more lines are too long

@ -6,10 +6,10 @@
</style>
<body>
<!--fill streamList variable with the list of streams -->
<script src="/getStreamList?streamList" ></script>
<script src="getStreamList?streamList" ></script>
<h3>HLS</h3>
<div id="videos"></div>
<script src="hls.js/dist/hls.light.min.js" ></script>
<script src="hls.js" ></script>
<script>
if (Hls.isSupported()) {
var videos = document.getElementById("videos")

Loading…
Cancel
Save