GithubHelp home page GithubHelp logo

Comments (23)

walksonair avatar walksonair commented on July 20, 2024 2

Been seeing this as well especially when doing BREW updates/upgrades/doctor...Any way to have a nice FFMPEG update w/o this error?

from homebrew-ffmpeg.

retokromer avatar retokromer commented on July 20, 2024 1

Does this

brew uninstall ffmpeg
brew install chromaprint
brew uninstall --ignore-dependencies ffmpeg
brew install homebrew-ffmpeg/ffmpeg/ffmpeg --with-chromaprint

resolve the issue?

from homebrew-ffmpeg.

mcstrassell09 avatar mcstrassell09 commented on July 20, 2024

I am getting the same error "recursive dependency." Hmm. This makes no sense!

screenCapture

from homebrew-ffmpeg.

MrBobot avatar MrBobot commented on July 20, 2024

I am getting the same error "recursive dependency." Hmm. This makes no sense!

screenCapture

Curious, what is that terminal that you are using ?

from homebrew-ffmpeg.

retokromer avatar retokromer commented on July 20, 2024

chromaprint depends on homebrew-ffmpeg/ffmpeg/ffmpeg

That’s the line in the chromaprint formula:

https://github.com/Homebrew/homebrew-core/blob/2c5fd5b1157cd0dda669255a098acd3e0edba6ed/Formula/chromaprint.rb#L16

from homebrew-ffmpeg.

MrBobot avatar MrBobot commented on July 20, 2024

So it seems chromaprint uses ffmpeg for at least two libraries to do the following, both of which look like it might be possible to remove the ffmpeg dependency.

  • FFT
  • Resampling

And from the Cmake, it seems we don't need the FFT libraries from ffmpeg and could use Apple's Accelerate framework ?

if(NOT FFT_LIB)
	if(APPLE AND ACCELERATE_LIBRARIES)
		set(FFT_LIB "vdsp")
	elseif(FFMPEG_LIBAVCODEC_FFT_FOUND)
		set(FFT_LIB "avfft")
	elseif(FFTW3_LIBRARIES)
...

Lastly I'm not sure what the resampling library is for, but it would seem that it will still build but with a warning

if(AUDIO_PROCESSOR_LIB STREQUAL "swresample")
    ... 
elseif(AUDIO_PROCESSOR_LIB STREQUAL "avresample")
    ...
else()
    message(STATUS "Building without audio conversion support, please install FFmpeg with libswresample")
endif()

I might give this a go if i have time, never customized a homebrew formula before

from homebrew-ffmpeg.

MrBobot avatar MrBobot commented on July 20, 2024

Ok, its pretty clear that ffmpeg is required for the fpcalc tool as stated on the bottom of the chromaprint page, and for MacOS they actually recommend to use the standard fft libraries.

I wonder if it would be possible to just use the already built chromaprint binary ?

from homebrew-ffmpeg.

mcstrassell09 avatar mcstrassell09 commented on July 20, 2024

Curious, what is that terminal that you are using ?

I am using iterm2 with the Molokai Soda colortheme. Default shell is zsh with 0h-my-zsh and iterm shell integration.

I wish i had an answer here. But this is beyond my knowledge scope (novice programmer trying to learn the craft). So I built ffmpeg without the chromaprint option. I am trying to make a manual build of IINA of which ffmpeg is a dependency.

Is it possible to build chromaprint from standard ffmpeg installation, then build an instance of homebrew-ffmpeg/ffmpeg/ffmpeg?

https://github.com/homebrew-ffmpeg/homebrew-ffmpeg/blob/master/README.md

Says will get an error if ffmpeg already installed so I removed before proceeding. This just doesn't seem possible! I would like to know how this was done!

from homebrew-ffmpeg.

mcstrassell09 avatar mcstrassell09 commented on July 20, 2024

MrBobot- did you ever get this to work via formula customization? How would I go about building ffmpeg --with-chromaprint with a pre-installed fpcalc library?

from homebrew-ffmpeg.

retokromer avatar retokromer commented on July 20, 2024

@MrBobot Is this still an issue on your end?

from homebrew-ffmpeg.

Rogue-Git-Dev avatar Rogue-Git-Dev commented on July 20, 2024

Yes, yes this is an issue currently. I too assayed to instal with all options and received the message Chromaprint depends on FFMPEG and FFMPEG depends on Chromaprint thereby making it recursive on itself. I use Mac OS 10.15.6 latest public beta, latest commit of Homebrew, and latest builds of everything – many of which are head builds. To instal without Chromaprint and with all other dependencies is not problematic.

from homebrew-ffmpeg.

Rogue-Git-Dev avatar Rogue-Git-Dev commented on July 20, 2024

Unfortunately not. I tried that as well. Chromaprint is installed as a bottle on my system.

from homebrew-ffmpeg.

retokromer avatar retokromer commented on July 20, 2024

That’s strange! With mpv – which is also installed as a bottle – it works well. I will test with chromaprint next weekend.

from homebrew-ffmpeg.

retokromer avatar retokromer commented on July 20, 2024

@Rogue-Git-Dev @MrBobot The workaround should be fine now.

from homebrew-ffmpeg.

brianredbeard avatar brianredbeard commented on July 20, 2024

also, FYI, Chromaprint provides a boolean to disable the CLI tools: -DBUILD_TOOLS=off

https://github.com/acoustid/chromaprint/blob/516e3b31c7fa6e822035ea3b3e31f9c7f51ef4b6/CMakeLists.txt#L63

from homebrew-ffmpeg.

cellulosa avatar cellulosa commented on July 20, 2024

I noticed that the binary built following @retokromer's commands is not linked to the main ffmpeg command.

After building, if I run the command ffmpeg -muxers I do not see any chromaprint listed.
However, if I run the same command but pointing directly to /usr/local/Cellar/ffmpeg/6.0-with-options_1/bin/ffmpeg -muxers I can see it there.

This, despite brew saying that it should indeed have chromaprint on the normal ffmpeg command:

brew info ffmpeg
==> ffmpeg: stable 6.0 (bottled), HEAD
Play, record, convert, and stream audio and video
https://ffmpeg.org/
/usr/local/Cellar/ffmpeg/6.0-with-options_1 (283 files, 51.1MB)
  Built from source on 2023-05-19 at 14:23:05 with: --with-chromaprint
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/ffmpeg.rb
License: GPL-2.0-or-later
==> Dependencies
Build: pkg-config ✔, nasm ✔
Required: aom ✔, aribb24 ✔, dav1d ✔, fontconfig ✔, freetype ✔, frei0r ✔, gnutls ✔, lame ✔, libass ✔, libbluray ✔, librist ✔, libsoxr ✔, libvidstab ✔, libvmaf ✔, libvorbis ✔, libvpx ✔, opencore-amr ✔, openjpeg ✔, opus ✔, rav1e ✔, rubberband ✔, sdl2 ✔, snappy ✔, speex ✔, srt ✔, svt-av1 ✔, tesseract ✔, theora ✔, webp ✔, x264 ✔, x265 ✔, xvid ✔, xz ✔, zeromq ✔, zimg ✔
==> Options
--HEAD
	Install HEAD version
==> Analytics
install: 2,458 (30 days), 36,770 (90 days), 1,614,603 (365 days)
install-on-request: 2,170 (30 days), 31,537 (90 days), 1,403,024 (365 days)
build-error: 1 (30 days)

from homebrew-ffmpeg.

retokromer avatar retokromer commented on July 20, 2024

@cellulosa What is the output of which -a ffmpeg?

from homebrew-ffmpeg.

cellulosa avatar cellulosa commented on July 20, 2024

mh good point, that points to another build (which isn't a link!). Shouldn't that be overwritten by the new install? Do I need to force brew link or something?

> which -a ffmpeg
/usr/local/bin/ffmpeg
/usr/local/bin/ffmpeg

> ls -la /usr/local/bin | grep ffmpeg
-rwxrwxrwx     1 user  admin  23396536 11 May 09:09 ffmpeg

from homebrew-ffmpeg.

retokromer avatar retokromer commented on July 20, 2024
> which -a ffmpeg
/usr/local/bin/ffmpeg
/usr/local/bin/ffmpeg

This simply means that you have the same instance of FFmpeg twice in the path, which is not a problem. There is only one.

from homebrew-ffmpeg.

cellulosa avatar cellulosa commented on July 20, 2024

This simply means that you have the same instance of FFmpeg twice in the path, which is not a problem. There is only one.

But then the question is why doesn't this get linked to the formula built with chromaprint?

Instead, it seems it's placing some fresh ffmpeg bin

from homebrew-ffmpeg.

retokromer avatar retokromer commented on July 20, 2024

@cellulosa I am currently travelling and I cannot reproduce the issue on my laptop. Does

brew unlink chromaprint && brew link chromaprint

have any effect?

from homebrew-ffmpeg.

cellulosa avatar cellulosa commented on July 20, 2024

@retokromer nope, but brew link --overwrite ffmpeg did! Thanks :)

from homebrew-ffmpeg.

retokromer avatar retokromer commented on July 20, 2024

@cellulosa Thank you for the information.

from homebrew-ffmpeg.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.