Skip to content

Commit ce18445

Browse files
authored
Revert "Remove ffmpeg building in actions"
1 parent 2011c13 commit ce18445

File tree

1 file changed

+166
-1
lines changed

1 file changed

+166
-1
lines changed

.github/actions/setup-pnpm/action.yml

Lines changed: 166 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: Setup Node.js, pnpm and dependencies
2-
description: Setup Node.js, pnpm, and dependencies
2+
description: Setup Node.js, pnpm and dependencies
33
inputs:
44
token:
55
description: Github token
@@ -8,6 +8,171 @@ inputs:
88
runs:
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+
11176
- name: Install pnpm
12177
uses: pnpm/action-setup@v4
13178

0 commit comments

Comments
 (0)