11name : Setup Node.js, pnpm and dependencies
2- description : Setup Node.js, pnpm and dependencies
2+ description : Setup Node.js, pnpm, and dependencies
33inputs :
44 token :
55 description : Github token
@@ -8,171 +8,6 @@ inputs:
88runs :
99 using : ' composite'
1010 steps :
11- - name : Install ffmpeg
12- if : runner.os == 'Linux'
13- shell : ' bash'
14- run : |
15- sudo apt-get update -qq && sudo apt-get -y install \
16- autoconf \
17- automake \
18- build-essential \
19- cmake \
20- git-core \
21- libass-dev \
22- libfreetype6-dev \
23- libgnutls28-dev \
24- libmp3lame-dev \
25- libsdl2-dev \
26- libtool \
27- libva-dev \
28- libvdpau-dev \
29- libvorbis-dev \
30- libxcb1-dev \
31- libxcb-shm0-dev \
32- libxcb-xfixes0-dev \
33- meson \
34- ninja-build \
35- pkg-config \
36- texinfo \
37- wget \
38- yasm \
39- zlib1g-dev
40-
41- # Build ffmpeg
42- mkdir -p ~/ffmpeg_sources ~/bin
43-
44- # Build NASM
45- cd ~/ffmpeg_sources && \
46- wget https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/nasm-2.16.01.tar.bz2 && \
47- tar xjvf nasm-2.16.01.tar.bz2 && \
48- cd nasm-2.16.01 && \
49- ./autogen.sh && \
50- PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \
51- make && \
52- make install
53-
54- # Build libx264
55- cd ~/ffmpeg_sources && \
56- git -C x264 pull 2> /dev/null || git clone --depth 1 https://code.videolan.org/videolan/x264.git && \
57- cd x264 && \
58- PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static --enable-pic && \
59- PATH="$HOME/bin:$PATH" make && \
60- make install
61-
62- # Build x265
63- sudo apt-get install libnuma-dev && \
64- cd ~/ffmpeg_sources && \
65- wget -O x265.tar.bz2 https://bitbucket.org/multicoreware/x265_git/get/master.tar.bz2 && \
66- tar xjvf x265.tar.bz2 && \
67- cd multicoreware*/build/linux && \
68- PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED=off ../../source && \
69- PATH="$HOME/bin:$PATH" make && \
70- make install
71-
72- # Build libvpx
73- cd ~/ffmpeg_sources && \
74- git -C libvpx pull 2> /dev/null || git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git && \
75- cd libvpx && \
76- PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm && \
77- PATH="$HOME/bin:$PATH" make && \
78- make install
79-
80- # Build libfdk-aac
81- cd ~/ffmpeg_sources && \
82- git -C fdk-aac pull 2> /dev/null || git clone --depth 1 https://github.com/mstorsjo/fdk-aac && \
83- cd fdk-aac && \
84- autoreconf -fiv && \
85- ./configure --prefix="$HOME/ffmpeg_build" --disable-shared && \
86- make && \
87- make install
88-
89- # Build libopus
90- cd ~/ffmpeg_sources && \
91- git -C opus pull 2> /dev/null || git clone --depth 1 https://github.com/xiph/opus.git && \
92- cd opus && \
93- ./autogen.sh && \
94- ./configure --prefix="$HOME/ffmpeg_build" --disable-shared && \
95- make && \
96- make install
97-
98- # Build libaom
99- cd ~/ffmpeg_sources && \
100- git -C aom pull 2> /dev/null || git clone --depth 1 https://aomedia.googlesource.com/aom && \
101- mkdir -p aom_build && \
102- cd aom_build && \
103- PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_TESTS=OFF -DENABLE_NASM=on ../aom && \
104- PATH="$HOME/bin:$PATH" make && \
105- make install
106-
107- # Build SVT-AV1
108- cd ~/ffmpeg_sources && \
109- git -C SVT-AV1 pull 2> /dev/null || git clone https://gitlab.com/AOMediaCodec/SVT-AV1.git && \
110- mkdir -p SVT-AV1/build && \
111- cd SVT-AV1/build && \
112- PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DCMAKE_BUILD_TYPE=Release -DBUILD_DEC=OFF -DBUILD_SHARED_LIBS=OFF .. && \
113- PATH="$HOME/bin:$PATH" make && \
114- make install
115-
116- # Install meson
117- sudo apt-get install python3-pip && \
118- pip3 install --user meson
119-
120- # Build dav1d
121- cd ~/ffmpeg_sources && \
122- git -C dav1d pull 2> /dev/null || git clone --depth 1 https://code.videolan.org/videolan/dav1d.git && \
123- mkdir -p dav1d/build && \
124- cd dav1d/build && \
125- meson setup -Denable_tools=false -Denable_tests=false --default-library=static .. --prefix "$HOME/ffmpeg_build" --libdir="$HOME/ffmpeg_build/lib" && \
126- ninja && \
127- ninja install
128-
129- # Build vmaf
130- cd ~/ffmpeg_sources && \
131- wget https://github.com/Netflix/vmaf/archive/v3.0.0.tar.gz && \
132- tar xvf v3.0.0.tar.gz && \
133- mkdir -p vmaf-3.0.0/libvmaf/build &&\
134- cd vmaf-3.0.0/libvmaf/build && \
135- meson setup -Denable_tests=false -Denable_docs=false --buildtype=release --default-library=static .. --prefix "$HOME/ffmpeg_build" --bindir="$HOME/bin" --libdir="$HOME/ffmpeg_build/lib" && \
136- ninja && \
137- ninja install
138-
139- # Build ffmpeg
140- cd ~/ffmpeg_sources && \
141- wget -O ffmpeg-snapshot.tar.bz2 https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \
142- tar xjvf ffmpeg-snapshot.tar.bz2 && \
143- cd ffmpeg && \
144- PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
145- --prefix="$HOME/ffmpeg_build" \
146- --pkg-config-flags="--static" \
147- --extra-cflags="-I$HOME/ffmpeg_build/include" \
148- --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
149- --extra-libs="-lpthread -lm" \
150- --ld="g++" \
151- --bindir="$HOME/bin" \
152- --enable-gpl \
153- --enable-gnutls \
154- --enable-libaom \
155- --enable-libass \
156- --enable-libfdk-aac \
157- --enable-libfreetype \
158- --enable-libmp3lame \
159- --enable-libopus \
160- --enable-libsvtav1 \
161- --enable-libdav1d \
162- --enable-libvorbis \
163- --enable-libvpx \
164- --enable-libx264 \
165- --enable-libx265 \
166- --enable-nonfree && \
167- PATH="$HOME/bin:$PATH" make && \
168- make install && \
169- hash -r
170-
171- # Add ffmpeg to PATH
172- echo 'export PATH="$HOME/bin:$PATH"' >> ~/.profile
173- source ~/.profile
174-
175-
17611 - name : Install pnpm
17712 uses : pnpm/action-setup@v4
17813
0 commit comments