rdp / ffmpeg-windows-build-helpers

Helper script for cross compiling some media tools for windows, like customizable ffmpeg.exe (with or without non-free components, etc), and some other bonuses like mplayer, mp4box, mxf, etc.
GNU General Public License v3.0
1.08k stars 414 forks source link

Build with flite 2.1.0 fails #604

Open rboy1 opened 2 years ago

rboy1 commented 2 years ago

USing Ubuntu 18.10 64bit to build 32bit ffmpeg The current script uses flite 2.1.0

build_libflite() {
  download_and_unpack_file http://www.festvox.org/flite/packed/flite-2.1/flite-2.1-release.tar.bz2
  cd flite-2.1-release
    apply_patch file://$patch_dir/flite-2.1.0_mingw-w64-fixes.patch
    if [[ ! -f main/Makefile.bak ]]; then
      sed -i.bak "s/cp -pd/cp -p/" main/Makefile # friendlier cp for OS X
    fi
    generic_configure
    do_make_and_make_install
  cd ..
}

This fails when doing a clean build with this error:

Installing mkdir -p /home/c/sandbox/cross_compilers/mingw-w64-i686/i686-w64-mingw32/bin mkdir -p /home/c/sandbox/cross_compilers/mingw-w64-i686/i686-w64-mingw32/lib mkdir -p /home/c/sandbox/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include/flite /usr/bin/install -c -m 644 include/*.h /home/c/sandbox/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include/flite /usr/bin/install: cannot stat '../bin/flite_cmu_us_kal.exe': No such file or directory /usr/bin/install: cannot stat '../bin/flite_cmu_time_awb.exe': No such file or directory /usr/bin/install: cannot stat '../bin/flite_cmu_us_kal16.exe': No such file or directory /usr/bin/install: cannot stat '../bin/flite_cmu_us_awb.exe': No such file or directory /usr/bin/install: cannot stat '../bin/flite_cmu_us_rms.exe': No such file or directory /usr/bin/install: cannot stat '../bin/flite_cmu_us_slt.exe': No such file or directory Makefile:136: recipe for target 'install' failed make[1]: [install] Error 1 Makefile:108: recipe for target 'install' failed make: [install] Error 2

However when using an older scripts flite 2.0

build_libflite() {
  download_and_unpack_file http://www.festvox.org/flite/packed/flite-2.0/flite-2.0.0-release.tar.bz2
  cd flite-2.0.0-release
    if [[ ! -f configure.bak ]]; then
      sed -i.bak "s|i386-mingw32-|$cross_prefix|" configure
      #sed -i.bak "/define const/i\#include <windows.h>" tools/find_sts_main.c # Needed for x86_64? Untested.
      sed -i.bak "128,134d" main/Makefile # Library only.
      sed -i.bak "s/cp -pd/cp -p/" main/Makefile # friendlier cp for OS X
    fi
    generic_configure
    #cpu_count=1 # can't handle it :|
    do_make_and_make_install
    #cpu_count=$original_cpu_count
  cd ..
}

This builds without any issues

rdp commented 2 years ago

WSL?

On Fri, Jan 21, 2022 at 3:12 PM rboy1 @.***> wrote:

USing Ubuntu 18.10 64bit to build 32bit ffmpeg The current script uses flite 2.1.0

build_libflite() { download_and_unpack_file http://www.festvox.org/flite/packed/flite-2.1/flite-2.1-release.tar.bz2 cd flite-2.1-release apply_patch file://$patch_dir/flite-2.1.0_mingw-w64-fixes.patch if [[ ! -f main/Makefile.bak ]]; then sed -i.bak "s/cp -pd/cp -p/" main/Makefile # friendlier cp for OS X fi generic_configure do_make_and_make_install cd .. }

This fails when doing a clean build with this error:

Installing mkdir -p /home/c/sandbox/cross_compilers/mingw-w64-i686/i686-w64-mingw32/bin mkdir -p /home/c/sandbox/cross_compilers/mingw-w64-i686/i686-w64-mingw32/lib mkdir -p /home/c/sandbox/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include/flite /usr/bin/install -c -m 644 include/*.h /home/c/sandbox/cross_compilers/mingw-w64-i686/i686-w64-mingw32/include/flite /usr/bin/install: cannot stat '../bin/flite_cmu_us_kal.exe': No such file or directory /usr/bin/install: cannot stat '../bin/flite_cmu_time_awb.exe': No such file or directory /usr/bin/install: cannot stat '../bin/flite_cmu_us_kal16.exe': No such file or directory /usr/bin/install: cannot stat '../bin/flite_cmu_us_awb.exe': No such file or directory /usr/bin/install: cannot stat '../bin/flite_cmu_us_rms.exe': No such file or directory /usr/bin/install: cannot stat '../bin/flite_cmu_us_slt.exe': No such file or directory Makefile:136: recipe for target 'install' failed make[1]: [install] Error 1 Makefile:108: recipe for target 'install' failed make: [install] Error 2

However when using an older scripts flite 2.0

build_libflite() { download_and_unpack_file http://www.festvox.org/flite/packed/flite-2.0/flite-2.0.0-release.tar.bz2 cd flite-2.0.0-release if [[ ! -f configure.bak ]]; then sed -i.bak "s|i386-mingw32-|$cross_prefix|" configure

sed -i.bak "/define const/i#include " tools/find_sts_main.c # Needed for x86_64? Untested.

  sed -i.bak "128,134d" main/Makefile # Library only.
  sed -i.bak "s/cp -pd/cp -p/" main/Makefile # friendlier cp for OS X
fi
generic_configure
#cpu_count=1 # can't handle it :|
do_make_and_make_install
#cpu_count=$original_cpu_count

cd .. }

This builds without any issues

— Reply to this email directly, view it on GitHub https://github.com/rdp/ffmpeg-windows-build-helpers/issues/604, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAADBUETNJ35UEXD2NNBPCLUXHK5XANCNFSM5MQVLKFQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you are subscribed to this thread.Message ID: @.***>

rboy1 commented 2 years ago

I have no idea what WSL means

ericsia commented 2 years ago

I have no idea what WSL means

it is basically windows 10 linux vm, aka Windows Subsystem for Linux

rboy1 commented 2 years ago

No. This is a cross compiler build on Linux Ubuntu with a target build for ffmpeg Windows x86 using the mingw cross compiler.

rdp commented 2 years ago

That is really weird, seems to work OK ok 20.04 ... you could use docker (see its folder)

On Thu, Feb 3, 2022 at 5:42 PM rboy1 @.***> wrote:

No. This is a cross compiler build on Linux Ubuntu with a target build for ffmpeg Windows x86 using the mingw cross compiler.

— Reply to this email directly, view it on GitHub https://github.com/rdp/ffmpeg-windows-build-helpers/issues/604#issuecomment-1029533981, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAADBUGF64IIJDMITKKXILTUZMOGJANCNFSM5MQVLKFQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you commented.Message ID: @.***>

rboy1 commented 2 years ago

Okay I tried using docker and it failed:

s2 --enable-libxavs2 --enable-libxavs --extra-cflags=-mtune=generic --extra-cflags=-O3 --enable-static --disable-shared --prefix=/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32 --enable-nonfree --enable-libfdk-aac --enable-decklink ./configure ERROR: avisynth/avisynth_c.h avisynth/avs/version.h not found

If you think configure made a mistake, make sure you are using the latest version from Git. If the latest version fails, report the problem to the ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.libera.chat. Include the log file "ffbuild/config.log" produced by configure as this will help solve the problem. failed configure ffmpeg_git_with_fdk_aac [20220214T140821] Build failed. Started: 20220214T140650 [20220214T140821] Stopping container... ffmpegbuilder done

BTW, what's the configuration that docker uses? Does it download a prebuilt OS or what's the environment?

rdp commented 2 years ago

OK I disabled avisynth for now. Yeah it does, whacky huh.

On Mon, Feb 14, 2022 at 3:10 PM rboy1 @.***> wrote:

Okay I tried using docker and it failed:

s2 --enable-libxavs2 --enable-libxavs --extra-cflags=-mtune=generic --extra-cflags=-O3 --enable-static --disable-shared --prefix=/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32 --enable-nonfree --enable-libfdk-aac --enable-decklink ./configure ERROR: avisynth/avisynth_c.h avisynth/avs/version.h not found

If you think configure made a mistake, make sure you are using the latest version from Git. If the latest version fails, report the problem to the @.*** mailing list or IRC #ffmpeg on irc.libera.chat. Include the log file "ffbuild/config.log" produced by configure as this will help solve the problem. failed configure ffmpeg_git_with_fdk_aac [20220214T140821] Build failed. Started: 20220214T140650 [20220214T140821] Stopping container... ffmpegbuilder done

BTW, what's the configuration that docker uses? Does it download a prebuilt OS or what's the environment?

— Reply to this email directly, view it on GitHub https://github.com/rdp/ffmpeg-windows-build-helpers/issues/604#issuecomment-1039620103, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAADBUA7NZP5NT3B7VNEDRLU3F4THANCNFSM5MQVLKFQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you commented.Message ID: @.***>

rboy1 commented 2 years ago

Can you share a small write up of the docker configuration maybe in the docker readme folder.. It's not as easy to use docker as it's to build it directly sometimes, especially when there are failures or the scripts to need to customized or new builds required with changes. It doesn't seem to be building with ubuntu 18.10, if it's building with docker and we know what environment docker is using it'll should be easier to replicate the environment and do a direct build

Vangelis66 commented 2 years ago

Okay I tried using docker and it failed:

...

ERROR: avisynth/avisynth_c.h avisynth/avs/version.h not found

Relevant issue: #614 :wink:

rboy1 commented 2 years ago

Well I tried to it again from a fresh Ubuntu 20.04 and it works just fine (the cross compiler script). Don't know what's up with 18.10 It would still be nice to have a little write about how the docker setup.

On an unrelated note @rdp Roger, is it possible to separate out the install libraries and headers into a separate folder while building ffmpeg? I'm using the libraries to build other projects and want to use the same one used by ffmpeg but it appears to be mixed up with other files in the ffmpeg_git folder.

rboy1 commented 2 years ago

Is there a way to specify the INSTALL/Libraries/INCLUDE header files folder through a script option? I've looked through the script in the build_ffmpeg() function and can't find any way to define where the INSTALL libraries and header files are specified.

rdp commented 2 years ago

I think the "native" build does something like that. Might be able to retool the other...maybe... :)

On Tue, Feb 15, 2022 at 4:28 PM rboy1 @.***> wrote:

Is there a way to specify the INSTALL/Libraries/INCLUDE header files folder through a script option? I've looked through the script in the build_ffmpeg() function and can't find any way to define where the INSTALL libraries and header files are specified.

— Reply to this email directly, view it on GitHub https://github.com/rdp/ffmpeg-windows-build-helpers/issues/604#issuecomment-1040901819, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAADBUBY5JGKK7NOANTMYKTU3LORDANCNFSM5MQVLKFQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

SmoochySix4 commented 2 years ago

Having the same issue on Arch Linux when building for x86_64. Only way for successful build is to comment it out and remove --enable-libflite from the options.