Comments (24)
Older / incompatible Git version sounds plausible. I had not installed Git myself, I used the version that Apple includes in macOS. I have just installed Git (version 2.44.0) using Homebrew, and I'll try again. Will report back ASAP.
EDIT (1): no luck using a different Git version. There are no spaces or unusual characters in my paths, thus I will try again after adapting build/libbluray.sh (i.e. patch -p1 -i "$1/libblu_dec_init.patch"
).
EDIT (2): adapting build/libbluray.sh worked! All tests ran successfully.
Thanks @Vargol for the extensive support.
from ffmpeg-apple-arm64-build.
The svt-av1 issue raised as
https://gitlab.com/AOMediaCodec/SVT-AV1/-/issues/2162
Someone else has raised the libbluray issue, which is a good job as is seems joining the VLC gitlab is as gated as there mailing lists. The ffmpeg team threw it over the fence to libbluray.
from ffmpeg-apple-arm64-build.
SVT-AV1 should be back working again (as in it works for me :-) )
from ffmpeg-apple-arm64-build.
Also can you check in the build directory
go to tool/lib
and try running the following command
nm libbluray.a | grep dec_init
which should return somethin like
000000000000025c T _lbr_dec_init
U _lbr_dec_init
if the 'lbr_' on the front of dec_init is missing thats more proof the patch is not applying.
from ffmpeg-apple-arm64-build.
@Vargol indeed, the patch doesn't apply:
❯ nm libbluray.a | grep dec_init
000000000000025c T _dec_init
U _dec_init
I'm certain I have the latest version of your repository; I even deleted the repo folder and cloned it again. Do you have any clue on what might be going wrong? Perhaps caching-related issues?
from ffmpeg-apple-arm64-build.
Xcode 15 strikes again, it looks like Apple have decided that duplicate symbols should fail their linker, and I can't see a flag to work around it, and reverting to classic behaviour is doing the same.
No real fixes, so the only what I can see to fix this ATM is remove the --enable-libsvtav1 and --enable-libbluray options from build-ffmpeg.sh
I can try raising errors with the STV-AV1 team as they also work with the libaom and I've already had work with them to get rid of duplicate symbols before. The one has in libbluray and ffmpeg may be trickier as the vlc team seem to ignore administrator emails for their mailing list so don't allow new people so it may be the ffmpeg team that need to sort it and they are quite slow to respond to issues sometimes.
from ffmpeg-apple-arm64-build.
Thanks. That's actually what I ended up doing. The tests fail, but oh well.
Thank you for your work!
from ffmpeg-apple-arm64-build.
No action from the vlc team with regard to libbluray, so I hacked itv tp compile and created a patch.
No idea if libbluray still works as I've got no idea if I've got any non-encrypted blu-ray discs, but its does at least
recognises the encrypted ones.
from ffmpeg-apple-arm64-build.
Hi @Vargol, thanks for all your work.
I receive the same (or a similar?) error, i.e. duplicate symbol '_dec_init'
:
MAN doc/ffmpeg-all.1
LD ffmpeg_g
LD ffprobe_g
ld: warning: ignoring duplicate libraries: '-lbrotlicommon', '-lbrotlidec', '-lbz2', '-lc++', '-ldl', '-lfreetype', '-liconv', '-lm', '-logg', '-lpng16', '-lpthread', '-lsharpyuv', '-lvorbis', '-lvpx', '-lwebp', '-lz'
ld: warning: ignoring duplicate libraries: '-lbrotlicommon', '-lbrotlidec', '-lbz2', '-lc++', '-ldl', '-lfreetype', '-liconv', '-lm', '-logg', '-lpng16', '-lpthread', '-lsharpyuv', '-lvorbis', '-lvpx', '-lwebp', '-lz'
duplicate symbol '_dec_init' in:
/Users/thijmen/repositories/ffmpeg-apple-arm64-build/ffmpeg-compile/ffmpeg/ffmpeg/fftools/ffmpeg_dec.o
/Users/thijmen/repositories/ffmpeg-apple-arm64-build/ffmpeg-compile/tool/lib/libbluray.a[28](libbluray_la-dec.o)
ld: 1 duplicate symbols
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [ffmpeg_g] Error 1
make: *** Waiting for unfinished jobs....
+ checkStatus 2 'build of ffmpeg failed'
+ '[' 2 -ne 0 ']'
+ echo 'check failed: build of ffmpeg failed'
check failed: build of ffmpeg failed
+ exit 1
Is there anything I can do about this right now? If this requires a separate issue, please let me know!
M1 Mac Mini on Sonoma 14.4.1.
from ffmpeg-apple-arm64-build.
Did you download the release ?
Download the repository zip instead, big green "Code" button, download zip option at the bottom of the pop up menu.
That should work.
from ffmpeg-apple-arm64-build.
@Vargol I cloned the most recent version of this repository using the Git CLI. That should give me the most recent version, right?
from ffmpeg-apple-arm64-build.
Yes that should work, assuming you didn't clone a branch.
Check build/build-libbluray.sh has the following line
git apply $1/libblu_dec_init.patch
I'm running a fresh build from a clone to check.
from ffmpeg-apple-arm64-build.
@Vargol yes, build/build-libbluray.sh
contains
git apply $1/libblu_dec_init.patch
on line 46.
from ffmpeg-apple-arm64-build.
and thats the version thats not working for you, as that is the latest version that has just successfully built for me.
compile ffmpeg
took 182s
compilation finished successfully
took 918s
bundle result
adding: ffmpeg (deflated 58%)
adding: ffprobe (deflated 58%)
run tests
tests executed successfully
from ffmpeg-apple-arm64-build.
Yes, the latest version has not been working for me. I double checked that I indeed had the latest version, and tried to build twice as well. Could I help by providing additional information?
from ffmpeg-apple-arm64-build.
Sure, first I need your build-libbluray.log from for build directory.
I can only think the patch needed to modify libbluray to fix the error has failed on your system for some reason.
from ffmpeg-apple-arm64-build.
Can you send me the build log build-libbluray.log
It strange as there been no changes to the libbluray source for a year, there's only been one version of the patch, so its
got to be something strange, like you'e got an old version of git that doesn't support the apply function or maybe a non standard ascii character in your path and git isn't coping (or maybe a space maybe although I would have though a lot more would failed with a space in the path). Maybe try changing the apply command to add quotes around the path
git apply "$1/libblu_dec_init.patch"
alternatively you can try applying the patch using the patch command. To do that change the command
git apply $1/libblu_dec_init.patch
to
patch -p1 -i "$1/libblu_dec_init.patch"
in build/build-libbluray.sh
from ffmpeg-apple-arm64-build.
alternatively you can try applying the patch using the patch command. To do that change the command
git apply $1/libblu_dec_init.patch
to
patch -p1 -i "$1/libblu_dec_init.patch"
in build/build-libbluray.sh
BTW, latest checkout (30-May-24) and it was failing the same way for me (Apple M1-Max) — I did this change, and it's built ok 👌
from ffmpeg-apple-arm64-build.
It looks like Xcode had an update two weeks ago- did it break everything again?
Getting a seemingly different check failed: build of ffmpeg failed
error
Snippet from build-ffmpeg.log
CC libavcodec/vc2enc.o
CC libavcodec/vc2enc_dwt.o
CC libavcodec/vcr1.o
CC libavcodec/version.o
CC libavcodec/videodsp.o
2 warnings generated.
CC libavcodec/videotoolbox.o
CC libavcodec/videotoolbox_vp9.o
CC libavcodec/videotoolboxenc.o
CC libavcodec/vima.o
CC libavcodec/vlc.o
CC libavcodec/vmdaudio.o
CC libavcodec/vmdvideo.o
CC libavcodec/vmixdec.o
CC libavcodec/vmnc.o
CC libavcodec/vorbis.o
CC libavcodec/vorbis_data.o
CC libavcodec/vorbis_parser.o
CC libavcodec/vorbisdec.o
libavcodec/videotoolbox.c:352:24: error: no member named 'temporal_id_nesting_flag' in 'struct HEVCSPS'; did you mean 'temporal_id_nesting'?
sps->temporal_id_nesting_flag << 2 |
^~~~~~~~~~~~~~~~~~~~~~~~
temporal_id_nesting
libavcodec/videotoolbox.c:156:29: note: expanded from macro 'AV_W8'
#define AV_W8(p, v) *(p) = (v)
^
libavcodec/hevc_ps.h:249:13: note: 'temporal_id_nesting' declared here
uint8_t temporal_id_nesting;
^
1 error generated.
make: *** [libavcodec/videotoolbox.o] Error 1
make: *** Waiting for unfinished jobs....
CC libavcodec/vorbisdsp.o
CC libavcodec/vorbisenc.o
rm libavfilter/metal/vf_yadif_videotoolbox.metal.air
+ checkStatus 2 'build of ffmpeg failed'
+ '[' 2 -ne 0 ']'
+ echo 'check failed: build of ffmpeg failed'
check failed: build of ffmpeg failed
+ exit 1
from ffmpeg-apple-arm64-build.
Not sure, this one is looking like a ffmpeg issue, as the error says
error: no member named 'temporal_id_nesting_flag' in 'struct HEVCSPS'
but that flag is or was part of HEVCSPS see the ffmpeg docs.
https://ffmpeg.org/doxygen/7.0/structHEVCSPS.html
I'm guessing the flag has been changed in the git repo, but no one has changed the video toolbox interface.
Just got to do some digging to verify that, like find the HEVCSPS definition in the repo
from ffmpeg-apple-arm64-build.
Yep, this commit broke it.
https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/6fed1841a1f5dd3cdcf343f77925af0781ebe83a
from ffmpeg-apple-arm64-build.
Issue raised on the ffmpeg tracker.
https://trac.ffmpeg.org/ticket/11042
from ffmpeg-apple-arm64-build.
And it appears to be fixed now.
from ffmpeg-apple-arm64-build.
Thank you for your quick response!
I didn't have "bug in ffmpeg" as my first guess 😆
from ffmpeg-apple-arm64-build.
Related Issues (20)
- Unable to compile on fresh install of M2 Ventura HOT 3
- MacBook Pro M1 Max - error compiling FFmpeg - libpng16.dylib arm64 but attempting to link with file built for macOS-x86_64 HOT 22
- check failed: build ffmpeg HOT 3
- Feature Request: bring avisynth branch up to date HOT 2
- Error applying option 'blend' to filter 'tvai_up': Option not found HOT 2
- aom av1: illegal instruction during test HOT 3
- check failed: installation of brotli failed HOT 17
- Can't Build AOM - i386 HOT 4
- What's the issue with just compiling the damn thing? HOT 3
- macOS Sonoma, new issues: brotli, libass, svt-av1 HOT 10
- check failed: build FriBidi HOT 1
- check failed: build pkg-config HOT 3
- fatal error: 'arm_neon_sve_bridge.h' file not found HOT 2
- Github Actions HOT 1
- Skipping parts HOT 4
- fontconfig fails on undefined brotli symbols HOT 6
- Typo in build.sh HOT 1
- Adding ffplay to the build HOT 2
- This is a great contribution HOT 7
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 ffmpeg-apple-arm64-build.