slyfox1186 / ffmpeg-build-script

The FFmpeg build script build's the most up to date version of FFmpeg by using API calls to download the latest source code available.
GNU General Public License v3.0
45 stars 9 forks source link

script failure at cmake in an ubuntu 22.04 LXC within proxmox. might be a dependency issue ? #1

Closed imaginarycheetah closed 1 year ago

imaginarycheetah commented 1 year ago

good evening,

i believe the script broke for me...

bash build-ffmpeg --build --enable-gpl-and-non-free --latest

processed through until compiling/installing cmake.

building cmake - version 3.26.3
====================================
Downloading https://github.com/kitware/cmake/archive/refs/tags/v3.26.3.tar.gz as cmake-3.26.3.tar.gz
Download Completed

File extracted: cmake-3.26.3.tar.gz
$ ./configure --prefix=/root/ffmpeg-build-script/workspace --parallel=40 --enable-ccache -- -DCMAKE_USE_OPENSSL=OFF
$ make -j 40

the script then froze until i finally aborted with \^C after giving it an hour to cook.

 

the directory looks like this

root@ubuntu3:~/ffmpeg-build-script# ls
LICENSE  README.md  build-ffmpeg  install-free.sh  install-non-free.sh  packages  run-scripts  workspace
root@ubuntu3:~/ffmpeg-build-script#

 

apt list --installed does not show ffmpeg.

 

thanks :)

slyfox1186 commented 1 year ago

while I investigate this please consider posting this issue over at discourse.cmake

Also, I see you are running this inside the root user directory. is your user root as well? That may cause issues. This script is really meant to be run as a regular user with permission level 1000 not root which is permission level 0

imaginarycheetah commented 1 year ago

good morning,

spun up a fresh container, built a user, and installed curl, make, g++, and jq before grabbing the script with wget -qO ffmpeg-helper-nonfree.sh https://ffmpeg.optimizethis.net; bash ffmpeg-helper-nonfree.sh from inside the home folder of a regular user

unfortunately, script failed again on cmake. although this time it exited gracefully instead of hanging...

building openssl - version 3.1.0
====================================
Downloading https://codeload.github.com/openssl/openssl/tar.gz/refs/tags/openssl-3.1.0 as openssl-3.1.0.tar.gz
Download Completed
File extracted: openssl-3.1.0.tar.gz

$ ./config --prefix=/home/cheetah/ffmpeg-build/workspace --openssldir=/home/cheetah/ffmpeg-build/workspace --with-zlib-include=/home/cheetah/ffmpeg-build/workspace/include/ --with-zlib-lib=/home/cheetah/ffmpeg-build/workspace/lib no-shared zlib
$ make -j 16
$ make install_sw

building cmake - version 3.26.3
====================================
Downloading https://github.com/kitware/cmake/archive/refs/tags/v3.26.3.tar.gz as cmake-3.26.3.tar.gz
Download Completed
File extracted: cmake-3.26.3.tar.gz

$ ./configure --prefix=/home/cheetah/ffmpeg-build/workspace --parallel=16 --enable-ccache -- -DCMAKE_USE_OPENSSL=OFF
$ make -j 16

Please create a support ticket

https://github.com/slyfox1186/script-repo/issues

cheetah@ubuntu1:~$ ffmpeg
Command 'ffmpeg' not found, but can be installed with:
sudo apt install ffmpeg
cheetah@ubuntu1:~$ ls
ffmpeg-build  ffmpeg-helper-nonfree.sh
cheetah@ubuntu1:~$ 

 

actually, it looks like cmake has installed correctly,

cheetah@ubuntu1:~$ apt list cmake -a
Listing... Done
cmake/jammy-updates,now 3.22.1-1ubuntu1.22.04.1 amd64 [installed]
cmake/jammy 3.22.1-1ubuntu1 amd64

running the script again, and this time it processed past cmake and kept going until it hung on installing avif.

started the script again, hoping it was just hung up on something and would keep going, like the last time it hung on cmake.

unfortunately it still fails out on avif

building zimg - version 3.0.4
====================================
zimg version 3.0.4 already built. Remove /home/cheetah/ffmpeg-build/packages/zimg.done lockfile to rebuild it.

building libpng - version 1.6.39
====================================
libpng version 1.6.39 already built. Remove /home/cheetah/ffmpeg-build/packages/libpng.done lockfile to rebuild it.

building avif - version 0.11.1
====================================
avif-0.11.1.tar.gz is already downloaded
File extracted: avif-0.11.1.tar.gz

$ cmake -S . -DCMAKE_INSTALL_PREFIX=/home/cheetah/ffmpeg-build/workspace -DAVIF_CODEC_AOM=ON -DAVIF_CODEC_AOM=ON -DAVIF_CODEC_DAV1D=ON -DAVIF_CODEC_RAV1E=ON -DAVIF_CODEC_SVT=ON -DBUILD_SHARED_LIBS=OFF -GNinja

Please create a support ticket

https://github.com/slyfox1186/script-repo/issues

cheetah@ubuntu1:~$ 
slyfox1186 commented 1 year ago

There have been some code changes in the repos it appears and it is causing the code to freeze on certain packages. I believe I have fixed avif but libbluray is giving trouble and I'm working on that. I will update you when I know more. I am glad to hear though that you at least made it as far as you did.

Also, you can run the below command to install the latest version of cmake system-wide which I would recommend you do. I made this script today and it is fully tested and working for me.

curl -Lso cmake.sh https://cmake.optimizethis.net; bash cmake.sh
slyfox1186 commented 1 year ago

I updated the script and it was working fine for me.

Give it a try and see what you can do.

imaginarycheetah commented 1 year ago

good morning,

thanks for all the work you're putting into this script :)

fetching a new version this morning with wget -qO ffmpeg-helper-nonfree.sh https://ffmpeg.optimizethis.net; bash ffmpeg-helper-nonfree.sh prompts for sudo password for the user running the script, after-which it runs. however, if invoked directly with sudo bash ffmpeg-helper-nonfree.sh the script errors out with a warning to not run as root or sudo.

this new version of the script works until it attempts to cmake SVT-AV1.

building libgav1 - version git
====================================
libgav1 version git already built. Remove /home/cheetah/ffmpeg-build/packages/libgav1.done lockfile to rebuild it.

building svtav1 - version 1.5.0
====================================
SVT-AV1-9593e625.tar.bz2 is already downloaded
File extracted: SVT-AV1-9593e625.tar.bz2

$ cmake -S . -B Build/linux -DCMAKE_INSTALL_PREFIX=/home/cheetah/ffmpeg-build/workspace -DBUILD_SHARED_LIBS=1 -DCMAKE_BUILD_TYPE=Release -G Ninja ../..
$ ninja -C Build/linux

Please create a support ticket

https://github.com/slyfox1186/script-repo/issues

cheetah@ubuntu4:~$

running the script a second time didn't succeed. i removed the ../.. from the end of line 1230, thinking that might have accidentally been moving the script to the wrong folder for the build process to succeed, but i get the same message as before (minus the ../.. text)

there are several config.logs available within the work directory, which would you like to see ?

cheetah@ubuntu4:~$ find -name config.log
./ffmpeg-build/packages/pkgconf-1.9.4/config.log
./ffmpeg-build/packages/nasm-2.16.02rc1/config.log
./ffmpeg-build/packages/automake-git/config.log
./ffmpeg-build/packages/libtool-2.4.7/config.log
./ffmpeg-build/packages/autoconf-git/config.log
./ffmpeg-build/packages/m4-1.4.19/config.log

thanks again :)

slyfox1186 commented 1 year ago

So for whatever reason, the variable LD_LIBRARY_PATH was causing the issue and I removed it then put it back after SVT was installed.

I am still running the rest of the code and will update you when it is done letting you know if it all seems to work now.

here are the changes I made.

git_ver_fn '24327400' '3' 'T'
if build 'svtav1' "$g_ver"; then
    download "https://gitlab.com/AOMediaCodec/SVT-AV1/-/archive/v$g_ver/SVT-AV1-v$g_ver.tar.bz2" "SVT-AV1-$g_sver.tar.bz2"
    LD_LIBRARY_PATH=
    make_dir 'build'
    execute cmake -S . -B 'build' -DCMAKE_INSTALL_PREFIX="$workspace" -DCMAKE_OUTPUT_DIRECTORY="$packages/SVT-AV1-9593e625/Bin/Release" \
        -DBUILD_SHARED_LIBS='0' -G 'Ninja'
    execute ninja -C 'build'
    execute ninja -C 'build' install
    build_done 'svtav1' "$g_ver"
fi
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH"
cnf_ops+=('--enable-libsvtav1')
slyfox1186 commented 1 year ago

I spent quite some time on this and I was able to successfully build on 3 different linux machines, all Ubuntu 22.04.

Give it a try and let me know.

slyfox1186 commented 1 year ago

Did everything work for you? My ffmpeg runs great and shows all the libraries.