Skip to content

Commit 7248a6e

Browse files
committed
3.2.0
1. Support the compilations of `ssh`, `vorbis`, and `openmpt`. 2. Switch the testing image from `ubuntu:jammy` to `debian:bullseye`. 3. Fix some typos in the ReadMe file.
1 parent c318461 commit 7248a6e

File tree

2 files changed

+97
-30
lines changed

2 files changed

+97
-30
lines changed

README.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ This branch is used for archiving the dependencies used for building the project
2121
| :-------------: | :-----------: | :------------: |
2222
| `install-ffmpeg-4_0_6.sh` | Scripts for installing `ffmpeg 4.0.6` on Ubuntu. | [2.0.5 :link:][rel-2-0-5] |
2323
| `install-ffmpeg-4_4.sh` | Scripts for installing `ffmpeg 4.4` on Ubuntu. | [3.0.0 :link:][rel-3-0-0] |
24-
| `install-ffmpeg-5_0.sh` | Scripts for installing `ffmpeg 5.0` on Ubuntu. | [3.2.0 :link:][rel-3-2-0] |
24+
| `install-ffmpeg-5_0.sh` | Scripts for installing `ffmpeg 5.0` on Debian. | [3.2.0 :link:][rel-3-2-0] |
2525

2626
## Usage
2727

@@ -30,7 +30,7 @@ This branch is used for archiving the dependencies used for building the project
3030
Save the script in `~/`, then run the docker:
3131

3232
```bash
33-
docker run --gpus all --rm -it --shm-size=1g ubuntu:jammy
33+
docker run --gpus all --rm -it --shm-size=1g debian:bullseye
3434
```
3535

3636
After that, run the following commands inside the container (root mode):
@@ -42,11 +42,11 @@ chmod +rwx install-ffmpeg-5_0.sh
4242
./install-ffmpeg-5_0.sh --all --nvcuda --sudofix
4343
```
4444

45-
We recommend to use `ubuntu:jammy` (the devel version), because its apt repository provides most of the dependencies claimed in the issue [#4 :exclamation:](https://github.com/cainmagi/FFmpeg-Encoder-Decoder-for-Python/issues/4).
45+
We recommend to use `debian:bullseye` (the current version), because its apt repository preserves the best compatibility, and provides most of the dependencies claimed in the issue [#4 :exclamation:](https://github.com/cainmagi/FFmpeg-Encoder-Decoder-for-Python/issues/4).
4646

4747
[rel-2-0-5]:https://github.com/cainmagi/FFmpeg-Encoder-Decoder-for-Python/releases/tag/2.05 "Release of dependencies (2.0.5)"
4848
[rel-3-0-0]:https://github.com/cainmagi/FFmpeg-Encoder-Decoder-for-Python/releases/tag/deps-3.0.0 "Release of dependencies (3.0.0)"
49-
[rel-3-2-0]:https://github.com/cainmagi/FFmpeg-Encoder-Decoder-for-Python/releases/tag/deps-3.2.0 "Release of dependencies (3.0.0)"
49+
[rel-3-2-0]:https://github.com/cainmagi/FFmpeg-Encoder-Decoder-for-Python/releases/tag/deps-3.2.0 "Release of dependencies (3.2.0)"
5050

5151
[git-master]:https://github.com/cainmagi/FFmpeg-Encoder-Decoder-for-Python "master (Windows)"
5252
[git-linux]:https://github.com/cainmagi/FFmpeg-Encoder-Decoder-for-Python/tree/master-linux "master (Linux)"

install-ffmpeg-5_0.sh

+93-26
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# by Yuchen Jin (cainmagi) / 04062022
55
# ---------------------------------------------------------
66
# This script has been tested on
7-
# `ubuntu:jammy`
7+
# `debian:bullseye`
88
# docker image.
99
# ---------------------------------------------------------
1010
# Currently, it is only designed for a full installation
@@ -48,16 +48,23 @@ function mcd {
4848
cd "$1" || fail
4949
}
5050

51+
function apt_dependency {
52+
apt-get -y install $(apt-cache depends $1 | grep Depends | sed "s/.*ends:\ //" | tr '\n' ' ') || fail
53+
}
54+
5155

5256
SET_HELP=false
5357
SET_DEBUG=false
5458
SET_SUDOFIX=false
5559
SET_NVCUDA=false
5660
SET_ALL=false
5761
SET_BASIC=false
62+
SET_CMAKE=false
63+
SET_SSH=false
64+
SET_VORBIS=false
65+
SET_OPENMPT=false
5866
SET_KRB5=false
5967
SET_RUSTC=false
60-
SET_CMAKE=false
6168
SET_NASM=false
6269
SET_YASM=false
6370
SET_SRT=false
@@ -99,9 +106,12 @@ do
99106
--all) SET_ALL=true ;;
100107
--basic) SET_BASIC=true ;;
101108
--nvcuda) SET_NVCUDA=true ;;
109+
--cmake) SET_CMAKE=true ;;
110+
--ssh) SET_SSH=true ;;
111+
--vorbis) SET_VORBIS=true ;;
112+
--openmpt) SET_OPENMPT=true ;;
102113
--krb5) SET_KRB5=true ;;
103114
--rustc) SET_RUSTC=true ;;
104-
--cmake) SET_CMAKE=true ;;
105115
--nasm) SET_NASM=true ;;
106116
--yasm) SET_YASM=true ;;
107117
--srt) SET_SRT=true ;;
@@ -144,12 +154,18 @@ where the usages are:
144154
Install the basic dependencies by apt.
145155
${COLOR_OPT}--nvcuda${RESET} [not included by --all]:
146156
Install NVIDA drivers and CUDA, This option will not be set by --all.
157+
${COLOR_OPT}--cmake${RESET}:
158+
Install CMake.
159+
${COLOR_OPT}--ssh${RESET}:
160+
Install libssh.
161+
${COLOR_OPT}--vorbis${RESET}:
162+
Install Vorbis audio codec.
163+
${COLOR_OPT}--openmpt${RESET}:
164+
Install OpenMPT audio codec (requiring vorbis).
147165
${COLOR_OPT}--krb5${RESET}:
148166
Install libkrb5, with a higher version compared to apt distribution.
149167
${COLOR_OPT}--rustc${RESET}:
150168
Install Rust-lang, Cargo-C and meson.
151-
${COLOR_OPT}--cmake${RESET}:
152-
Install CMake.
153169
${COLOR_OPT}--nasm${RESET}:
154170
Install NASM (Netwide Assembler).
155171
${COLOR_OPT}--yasm${RESET}:
@@ -218,9 +234,12 @@ then
218234
SET_BASIC=true
219235
# SET_SUDOFIX=true # should not be specified when not using root mode.
220236
# SET_NVCUDA=true # not included, because this option may be not necessary if CUDA has been installed.
237+
SET_CMAKE=true
238+
SET_SSH=true
239+
SET_VORBIS=true
240+
SET_OPENMPT=true
221241
SET_KRB5=true
222242
SET_RUSTC=true
223-
SET_CMAKE=true
224243
SET_NASM=true
225244
SET_YASM=true
226245
SET_SRT=true
@@ -265,12 +284,13 @@ if [ "x${SET_BASIC}" = "xtrue" ]; then
265284
sudo apt-get -y full-upgrade || fail
266285
sudo apt-get -y install curl autoconf automake build-essential \
267286
cmake git-core libass-dev libfreetype6-dev libgnutls28-dev \
268-
libsdl2-dev libtool libva-dev libvdpau-dev libogg-dev \
287+
libsdl2-dev libtool libva-dev libvdpau-dev libogg-dev libcmocka-dev \
269288
libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev \
270-
libunistring-dev libopenmpt-dev libopencore-amrwb-dev \
271-
libc6 libc6-dev unzip python3-pip libnuma1 libnuma-dev \
272-
gcc g++ bison perl clang libomp-dev libssh-dev libssl-dev \
273-
ninja-build pkg-config texinfo wget zlib1g-dev || fail
289+
libunistring-dev libopencore-amrwb-dev libmpg123-dev libltdl-dev \
290+
libc6 libc6-dev unzip python3-pip libnuma1 libnuma-dev portaudio19-dev \
291+
gcc g++ bison perl clang libomp-dev libssl-dev libpulse-dev libsndfile-dev \
292+
ninja-build pkg-config texinfo wget zlib1g-dev libgcrypt20-dev \
293+
software-properties-common || fail
274294
fi
275295

276296

@@ -280,14 +300,73 @@ if [ "x${SET_NVCUDA}" = "xtrue" ]; then
280300
sudo apt-get update -qq || fail
281301
sudo apt-get -y install gcc g++ curl wget freeglut3-dev build-essential \
282302
libx11-dev libxmu-dev libxi-dev libglu1-mesa libglu1-mesa-dev \
283-
libfreeimage-dev || fail
284-
sudo apt-get -y install nvidia-cuda-toolkit || fail
303+
libfreeimage-dev software-properties-common || fail
304+
# The following line only works with Ubuntu
305+
# sudo apt-get -y install nvidia-cuda-toolkit || fail
306+
# The following commands are working with Debian.
307+
sudo add-apt-repository -y "deb http://deb.debian.org/debian/ bullseye main contrib non-free" || fail
308+
sudo apt-get update -qq || fail
309+
sudo apt-mark hold nvidia-persistenced || fail
310+
sudo apt-get -y install nvidia-cuda-toolkit || fail
311+
fi
312+
313+
314+
# Install dependencies: CMake
315+
if [ "x${SET_CMAKE}" = "xtrue" ]; then
316+
msg "${COLOR_OPT}--cmake): ${COLOR_OPT_TEXT}Install CMake 3.23.0."
317+
cd $SOURCE_PATH || fail
318+
wget -O- https://cmake.org/files/v3.23/cmake-3.23.0.tar.gz | tar xz -C . || fail
319+
cd cmake-3.23.0 || fail
320+
./bootstrap || fail
321+
make -j$(nproc) || fail
322+
sudo make install || fail
323+
fi
324+
325+
326+
# Install dependencies: libssh
327+
if [ "x${SET_SSH}" = "xtrue" ]; then
328+
msg "${COLOR_OPT}--ssh): ${COLOR_OPT_TEXT}Install libssh 0.9.6."
329+
# sudo apt-get -y install gcc g++ cmake libssl-dev libgcrypt20-dev zlib1g-dev || fail
330+
cd $SOURCE_PATH || fail
331+
wget -O- https://git.libssh.org/projects/libssh.git/snapshot/libssh-0.9.6.tar.gz | tar xz -C . || fail
332+
cd libssh-0.9.6 || fail
333+
mkdir -p build || fail
334+
cd build || fail
335+
PKG_CONFIG_PATH="$BUILD_PATH/lib/pkgconfig:$PKG_CONFIG_PATH" cmake -DUNIT_TESTING=OFF -DCMAKE_INSTALL_PREFIX="$BUILD_PATH" -DCMAKE_BUILD_TYPE=Release .. || fail
336+
PATH="$BIN_PATH:$PATH" make -j$(nproc) || fail
337+
sudo make install || fail
338+
fi
339+
340+
341+
# Install dependencies: libvorbis
342+
if [ "x${SET_VORBIS}" = "xtrue" ]; then
343+
msg "${COLOR_OPT}--vorbis): ${COLOR_OPT_TEXT}Install libvorbis 1.3.7."
344+
# sudo apt-get -y install libogg-dev libvorbis0a libvorbisenc2 libvorbisfile3 || fail
345+
cd $SOURCE_PATH || fail
346+
wget -O- https://downloads.xiph.org/releases/vorbis/libvorbis-1.3.7.tar.gz | tar xz -C . || fail
347+
cd libvorbis-1.3.7 || fail
348+
PATH="$BIN_PATH:$PATH" ./configure --prefix=/usr --disable-static || fail
349+
PATH="$BIN_PATH:$PATH" make -j$(nproc) || fail
350+
sudo make install || fail
351+
fi
352+
353+
354+
355+
# Install dependencies: libopenmpt
356+
if [ "x${SET_OPENMPT}" = "xtrue" ]; then
357+
msg "${COLOR_OPT}--openmpt): ${COLOR_OPT_TEXT}Install libopenmpt 0.6.2."
358+
# sudo apt-get -y install libmpg123-dev libltdl-dev libogg-dev libvorbis-dev zlib1g-dev libsndfile-dev portaudio19-dev libpulse-dev || fail
359+
cd $SOURCE_PATH || fail
360+
wget -O- https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-0.6.2+release.autotools.tar.gz | tar xz -C . || fail
361+
cd libopenmpt-0.6.2+release.autotools || fail
362+
PATH="$BIN_PATH:$PATH" ./configure || fail
363+
PATH="$BIN_PATH:$PATH" make -j$(nproc) || fail
364+
sudo make install || fail
285365
fi
286366

287367

288368
# Install libkrb5 1.19.3 (require yacc (bison)).
289369
if [ "x${SET_KRB5}" = "xtrue" ]; then
290-
msg_err "Not compatible with xvid, so these codes are dropped."
291370
msg "${COLOR_OPT}--krb5): ${COLOR_OPT_TEXT}Install libkrb5 1.19.3."
292371
sudo apt-get update -qq || fail
293372
sudo apt-get -y install comerr-dev bison || fail
@@ -335,18 +414,6 @@ if [ "x${SET_DEBUG}" = "xtrue" ] || [ "x${SET_BASIC}" = "xtrue" ] || [ "x${SET_R
335414
fi
336415

337416

338-
# Install dependencies: CMake
339-
if [ "x${SET_CMAKE}" = "xtrue" ]; then
340-
msg "${COLOR_OPT}--cmake): ${COLOR_OPT_TEXT}Install CMake 3.23.0."
341-
cd $SOURCE_PATH || fail
342-
wget -O- https://cmake.org/files/v3.23/cmake-3.23.0.tar.gz | tar xz -C . || fail
343-
cd cmake-3.23.0 || fail
344-
./bootstrap || fail
345-
make -j$(nproc) || fail
346-
sudo make install || fail
347-
fi
348-
349-
350417
# Install dependencies: NASM
351418
if [ "x${SET_NASM}" = "xtrue" ]; then
352419
msg "${COLOR_OPT}--nasm): ${COLOR_OPT_TEXT}Install NASM 2.15.05."

0 commit comments

Comments
 (0)