- 요구사항 :
- AWS Lambda ARM64 환경에서 HTML 멀티미디어 웹 랜더링. -> 기본적으로 chromium 기반으로 처리.
- 대책1 : 크로미움 with HEVC
- https://github.com/StaZhu/enable-chromium-hevc-hardware-decoding
- chromium 은 '크롬' 과 다르게... 비디오 코덱의 제약이 있음.
- 그래서 h.256 지원하는 소스를 찾아~ 빌드하고 테스트 해봐야 됨. (과연 람다 환경에서 잘 동작할지???)
- 대책2 : 크로미움 Binary
- https://github.com/remotion-dev/lambda-binaries
- h.264 까지는 지원이 되는것을!!! 심지어 바이너리 무설치 버전 꽁짜로 제공. ㅎㄷㄷ 이렇게 까지 해주는 이유가 뭔데?
- 리모션 내부엔 따로 디코딩 서버 있음 . (h.256 등등 각종 비지원 코덱 처리용)
- 리모션에서 제공하는 특정 tag(<video...> ) 를 -> 해당 HTML 에 적용하면 된다고 함!
- 대책3 : 토륨
- https://thorium.rocks
- https://github.com/Alex313031/thorium
- https://github.com/Alex313031/Thorium-Special/releases
- h.265 지원 되고... 속도까지 (지구상에서 젤빠른?) 최적화 되었다고 함.
- 결론적으로... AWS Lambda ARM64 환경에서 동작 되도록 할수만 있다면, 베스트!!!
- (라즈베리 arm64 용 .rpm , .deb , .zip 등등을 테스트)
- base-image 후보
- python:3.10 : ...
- python:3.10-alpine : ...
- public.ecr.aws/lambda/python:3.10 : ...
- Dockerfile 예시
-
FROM python:3.10 AS base-image RUN set -x \ && apt-get update \ && apt-get install -y \ libnss3 \ libatk1.0-0 \ libatk-bridge2.0-0 \ libcups2 \ libdrm2 \ libxkbcommon-x11-0 \ libxcomposite-dev \ libxdamage1 \ libxrandr2 \ libgbm-dev \ libffi-dev \ libasound2 \ dbus \ rpm \ git \ zip \ sudo \ && rm -rf /var/lib/apt/lists/* ADD https://github.com/Alex313031/Thorium-Special/releases/download/M114.0.5735.134-1/thorium-browser_114.0.5735.134.aarch64.rpm ./thorium.rpm #RUN rpm -qa #RUN rpm -qpR thorium.rpm #RUN rpm -ivvh thorium.rpm RUN rpm --install --nodeps thorium.rpm ADD https://github.com/Alex313031/Thorium-Special/releases/download/M114.0.5735.134-1/thorium-browser_114.0.5735.134_arm64.zip ./thorium.zip RUN unzip -d ./thorium thorium.zip #CMD mkdir /run/dbus -p #CMD dbus-daemon --system #CMD service dbus start
- ...
-
- 미션 : AWS Lambda ARM64 에서 Thorium Raspberry Pi Release 실행
- /bin/thorium-shell
- /src/thorium/THORIUM-PORTABLE
- /src/thorium/THORIUM-SHELL
- --no-sandbox --headless --disable-dev-shm-usage --no-zygote --single-process
- --user-data-dir=/tmp --data-path=/tmp --homedir=/tmp --disk-cache-dir=/tmp
- 오류1 : D-Bus 관련 파일을 못찾음? (해당 dbus 데몬이이 안떠있음?)
- 봉님왈 dbus-devel dbus-glib-devel 설치하기? (https://saengjja.tistory.com/418)
- 그냥 service dbus start 띄우기? (https://wsldl-pg.github.io/ArchW-docs/Known-issues/#d-bus)
- 오류2 : AWS Lambda 에서 D-Bus 잘안뜸...
- dbus[22]: Unknown username "systemd-timesync" in message bus configuration file
- dbus-daemon[22]: Failed to start message bus: Failed to bind socket "/run/dbus/system_bus_socket": Read-only file system
- ...
-끝-