Use the platform-provided FFmpeg on Raspberry Pi OS
This commit is contained in:
@@ -1,11 +1,12 @@
|
||||
set -e
|
||||
|
||||
BASE_FFMPEG_ARGS="--fatal-warnings --enable-pic --enable-static --disable-shared --disable-all --disable-vulkan --enable-avcodec --enable-swscale --enable-decoder=h264 --enable-decoder=hevc --enable-decoder=av1 --enable-libdav1d --enable-decoder=libdav1d --enable-libdrm --enable-decoder=h264_v4l2m2m --enable-decoder=hevc_v4l2m2m --extra-cflags=-I/usr/include/libdrm"
|
||||
USE_PLATFORM_FFMPEG=0
|
||||
|
||||
echo "Building dependencies for $TARGET"
|
||||
if [ "$TARGET" == "rpi" ] || [ "$TARGET" == "rpi64" ]; then
|
||||
# Enable HEVC VL42 stateless decoder (H.264 is stateful on Pi 4 and absent on Pi 5)
|
||||
EXTRA_FFMPEG_ARGS="--enable-sand --enable-libudev --enable-v4l2-request --enable-hwaccel=hevc_v4l2request"
|
||||
# Use the platform-provided FFmpeg version on Raspberry Pi OS
|
||||
USE_PLATFORM_FFMPEG=1
|
||||
elif [ "$TARGET" == "l4t" ]; then
|
||||
# Enable NVV4L2 decoders (and VP9 decoder to work around compilation error in NVV4L2 fallback code)
|
||||
EXTRA_FFMPEG_ARGS="--enable-nvv4l2 --enable-decoder=h264_nvv4l2 --enable-decoder=hevc_nvv4l2 --enable-decoder=vp9"
|
||||
@@ -43,13 +44,17 @@ sed -i 's/-lSDL2_ttf/-lSDL2_ttf -lfreetype/g' SDL2_ttf.pc
|
||||
cat SDL2_ttf.pc
|
||||
make install
|
||||
|
||||
# Build and install libdav1d
|
||||
cd /opt/dav1d
|
||||
meson setup build -Ddefault_library=static -Dbuildtype=debugoptimized -Denable_tools=false -Denable_tests=false
|
||||
ninja -C build
|
||||
ninja install -C build
|
||||
# Build FFmpeg and its dependencies if we're not using the platform version
|
||||
if [ "$USE_PLATFORM_FFMPEG" == "0" ]; then
|
||||
# Build and install libdav1d
|
||||
cd /opt/dav1d
|
||||
meson setup build -Ddefault_library=static -Dbuildtype=debugoptimized -Denable_tools=false -Denable_tests=false
|
||||
ninja -C build
|
||||
ninja install -C build
|
||||
|
||||
cd /opt/FFmpeg
|
||||
./configure $BASE_FFMPEG_ARGS $EXTRA_FFMPEG_ARGS $DAV1D_FFMPEG_ARGS
|
||||
make -j$(nproc)
|
||||
make install
|
||||
# Build and install FFmpeg
|
||||
cd /opt/FFmpeg
|
||||
./configure $BASE_FFMPEG_ARGS $EXTRA_FFMPEG_ARGS $DAV1D_FFMPEG_ARGS
|
||||
make -j$(nproc)
|
||||
make install
|
||||
fi
|
||||
|
||||
@@ -15,6 +15,7 @@ VERSION=`cat app/version.txt`
|
||||
# Determine extra target-specific dependencies
|
||||
if [ "$TARGET" == "rpi" ] || [ "$TARGET" == "rpi64" ]; then
|
||||
EXTRA_CONFIG="CONFIG+=gpuslow CONFIG+=disable-mmal"
|
||||
EXTRA_BUILD_DEPS="libavcodec-dev libavformat-dev libswscale-dev"
|
||||
elif [ "$TARGET" == "l4t" ]; then
|
||||
:
|
||||
elif [ "$TARGET" == "desktop" ]; then
|
||||
|
||||
@@ -6,6 +6,11 @@ apt-get update
|
||||
apt-get install -y curl g++ make ninja-build devscripts fakeroot debhelper git nasm libgbm-dev libdrm-dev libasound2-dev libdbus-1-dev libegl1-mesa-dev libgl1-mesa-dev libgles2-mesa-dev libglu1-mesa-dev libibus-1.0-dev libpulse-dev libudev-dev libx11-dev libxcursor-dev libxext-dev libxi-dev libxinerama-dev libxkbcommon-dev libxrandr-dev libxss-dev libxt-dev libxv-dev libxxf86vm-dev cmake libgl-dev meson wayland-protocols libwayland-dev libdecor-0-dev libfreetype-dev libpipewire-0.3-dev
|
||||
apt-get install -y --no-install-recommends libssl-dev qtbase5-dev qtquickcontrols2-5-dev qtdeclarative5-dev libqt5svg5-dev libopus-dev gnupg
|
||||
|
||||
# Install FFmpeg if we're using the OS-provided version
|
||||
if [ "$TARGET" == "rpi" ] || [ "$TARGET" == "rpi64" ]; then
|
||||
apt-get install -y libavcodec-dev libavformat-dev libswscale-dev
|
||||
fi
|
||||
|
||||
if [ "$TARGET" == "embedded" ] && [ "$DISTRO" != "sid" ] && [ "$DISTRO" != "trixie" ]; then
|
||||
# Grab latest kernel headers from Bookworm to pick up the latest V4L2 defs
|
||||
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 6ED0E7B82643E131
|
||||
|
||||
Reference in New Issue
Block a user