Comments (22)
@JoeNyland This workaround should make it:
brew uninstall ffmpeg
brew install get_iplayer
brew uninstall --ignore-dependencies ffmpeg
brew install homebrew-ffmpeg/ffmpeg/ffmpeg --with-fdk-aac
from homebrew-ffmpeg.
from homebrew-ffmpeg.
Do you know if there's any way to do this?
From the top of my head no, but I will try to delve into this during the weekend.
from homebrew-ffmpeg.
That would mean bundling/maintaining all possible formulas that depend on ffmpeg, which I believe is too much of a maintenance burden.
from homebrew-ffmpeg.
- Asking "Why don't you understand?" is a pointless question and a waste of everyone's time. And for the record, I don't understand what you said either.
- This project has no official relationship to Homebrew, nor are the folks here Homebrew maintainers.
- If anyone is attacking here, it's you. Your comments are rude and completely uncalled-for.
from homebrew-ffmpeg.
Thank you for reporting. Have you tried to force the installation? Otherwise uninstalling and installing again works fine.
from homebrew-ffmpeg.
Have you tried to force the installation?
Good idea, but forcing the installation doesn't help.
$ brew install get_iplayer --force
==> Downloading https://homebrew.bintray.com/bottles/ffmpeg-4.2.2_3.catalina.bottle.tar.gz
Already downloaded: /Users/joenyland/Library/Caches/Homebrew/downloads/a04c6c86419df04664ec77824dd08ea793c07c1c616066e16ea3aa1d8183ff18--ffmpeg-4.2.2_3.catalina.bottle.tar.gz
==> Downloading https://homebrew.bintray.com/bottles/get_iplayer-3.25.catalina.bottle.tar.gz
Already downloaded: /Users/joenyland/Library/Caches/Homebrew/downloads/765099775a0608db52939ea36d3e6dd1c11cc63333e7220340e0d100db4bb517--get_iplayer-3.25.catalina.bottle.tar.gz
==> Installing dependencies for get_iplayer: ffmpeg
Error: ffmpeg is already installed from homebrew-ffmpeg/ffmpeg!
Please `brew uninstall ffmpeg` first."
uninstalling and installing again works fine
I'm aware that this works, but it looks like I'll have to go through this every time that a formula which I have installed depends on ffmpeg (just get_iplayer
at the moment) is upgraded. If it was just the once that I had to do it, then I wouldn't be bothered.
If only there were some way that depends_on "ffmpeg"
accepted ffmpeg
that this tap provides as satisfying the dependency. Do you know if there's any way to do this?
from homebrew-ffmpeg.
If you find a way, I would love to know as well. For my FFmpeg tap, I got the impression my only realistic option was to also "fork" dependent formulae, which I did for both MPD and Chromaprint: https://github.com/justinmayer/homebrew-tap
This is a very cumbersome solution that I would love to avoid, so thanks for looking into this, Reto. I look forward to hearing what you come up with. 👏
from homebrew-ffmpeg.
On my end I have added a test on my maintenance script:
if ffmpeg -version 2>&1 | grep "Library not loaded" >/dev/null; then
echo "[$(date_time)] reinstalling 'FFmpeg'" | tee -a "${LOG_FILE}"
brew reinstall ffmpeg \
&& echo -e "${BLUE}'FFmpeg' reinstalled.${NC}" \
|| echo -e "\a${RED}Error: 'FFmpeg' not reinstalled.${NC}"
fi
because I was… too lazy to search for a cleaner solution. I will try to figure out if on the formula level it’s possible to resolve this problem.
from homebrew-ffmpeg.
@justinmayer Letting you know that I didn’t found yet an elegant solution in the formula.
from homebrew-ffmpeg.
I ran into this same issue with get_iplayer. In the end, I opted to abandon homebrew for get_iplayer and use its package installer with embedded ffmpeg. get_iplayer doesn't do any encoding itself, so there is no advantage to using a customised ffmpeg. If I ever need the tap version for transcoding I can reference it directly in my post-precessing commands.
However, I also found an alternative using homebrew: Install the core ffmpeg version, pin it (may not be necessary), then unlink it. Rename the formula from this tap, e.g., to ffmpeg-with-options.rb with class name FfmpegWithOptions and a "conflicts_with" directive for the core version, and then install it with the new name. The core version is there to satisfy dependencies, but the tap version is the one linked for use. I used a tap with the new name, but you could also just use a local copy of the formula. No idea if this might cause problems with other formulae.
This worked for get_iplayer, but as to it being a general solution, that would boil down to whether or not you want to change the formula name or set up another tap. I can't think of a reason the tap version of ffmpeg should stomp the core version completely, and the "conflicts_with" directive provides a way to warn users that they need pin and unlink the core version first.
from homebrew-ffmpeg.
I have similar problem with pianobar, I updated keg formula on my end for pianobar to reference dependency ffmpeg from tap but after few updates both ffmpeg and pianobar stopped working because
dyld: Library not loaded: /usr/local/opt/openh264/lib/libopenh264.5.dylib
is not found.
Homebrew becomes more and more cumbersome to use nowadays
from homebrew-ffmpeg.
@Behinder Thank you for reporting! The issue is known: this happens each time when a new version of H.264 or H.265 is released. Did you try to reinstall FFmpeg?
from homebrew-ffmpeg.
Yes I did reinstall ffmpeg with all the option from tap repository and pianobar is working now :) Maybe there should be a way to include some post-process script whenever h264/265 is updated.
from homebrew-ffmpeg.
Maybe there should be a way to include some post-process script whenever h264/265 is updated.
I actually do it (and many other “things”) with a maintenance script on my end.
The only way I see at the moment would be to bump a revision of the FFmpeg formula each time one of H.264 or H.265 is updated. Yet this would affect all users.
@Behinder Do you have any hint?
from homebrew-ffmpeg.
@howyallare Thank you for your input and sorry for my delay!
pin it (may not be necessary),
If I am not completely wrong, pinning has been deprecated and is no longer possible in Homebrew. I remember we did it in the past, but changed at some point.
No idea if this might cause problems with other formulae.
Yes, it does…
from homebrew-ffmpeg.
If I am not completely wrong, pinning has been deprecated and is no longer possible in Homebrew. I remember we did it in the past, but changed at some point.
Pinning works fine. You may be thinking of tap-pin. As long as this tap version was installed, upgrades of core ffmpeg were prevented from being linked, so pinning wasn't strictly necessary, anyway.
No idea if this might cause problems with other formulae.
Yes, it does…
Then you're left with the option of publishing another tap formula with a different name. It worked for me, but I'm guessing you already rejected that option at some point, or else we wouldn't be here. It's easy enough for users to do it themselves.
from homebrew-ffmpeg.
You may be thinking of tap-pin.
You are right! Sorry for my bad memory.
Then you're left with the option of publishing another tap formula with a different name.
Indeed, this is what we made for a specific purpose.
from homebrew-ffmpeg.
Thank you @retokromer. That works for me.
from homebrew-ffmpeg.
How about collect those formulas in this repo? On my local machine I have Taps/homebrew-ffmpeg/homebrew-ffmpeg/Formula/video-compare.rb
.
from homebrew-ffmpeg.
from homebrew-ffmpeg.
Sorry, I am not sure I understand your comment. If you have a concrete suggestion, please send a PR that demonstrates it! (But it sounds like a maintenance overhead unless everything is completely automated via CI.)
from homebrew-ffmpeg.
Related Issues (20)
- add libzbvi to the default options in Homebrew formula from your repo HOT 9
- Please enable the ffplay building option, as the official brew formula does HOT 4
- Possible formula fixes/changes HOT 2
- Can't upgrade to 5.1 HOT 10
- Unknown decoder 'libx265' HOT 1
- FFmpeg 6.0 HOT 4
- Additional codecs don't seem to be included with installation HOT 1
- "unpaper" won't run without ffmpeg 5.x HOT 9
- Can you support installing older version of ffmpeg (e.g. ffmpeg@4) with the option --with-fdk-aac ? HOT 1
- Add `libplacebo` as a supported (optional) library HOT 11
- Install with a different name HOT 7
- Apple Silicon support in homebrew HOT 4
- Patch failure for libavcodec when re-installing ffmpeg HEAD HOT 7
- libavdevice build error (Mac M1 Silicon) HOT 24
- libvidstab error, failed on the 2nd pass, "Cannot parse localmotion" HOT 3
- Test optional installations in CI pipeline
- ERROR: chromaprint not found HOT 3
- FFmpeg with decklink support installation failure HOT 14
- opencv not working after homebrew-ffmpeg installation HOT 4
- Brewing custom ffmpeg but failure at metal execution HOT 13
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from homebrew-ffmpeg.