VideoExport: NoSuchFieldError: You may be using a library that's incompatible with this version of Processing

Hey friends,

I installed Processing 4 on an M1 Macbook Pro, installed VideoExport and got a NoSuchFieldError.

I googled it and came across this github bug from a few years back.

I though I’d just switch to P3, so I installed it and the library and it didn’t work there either.

I used AppCleaner to remove both, installed P4 again and am still getting an error.

I do have FFPMEG installed via Homebrew fwiw.

Linked is a screen recording of my experience

The simplest example isn’t working and I don’t know why…

What am I missing?

I followed the trail here for W10 and P4:

NoSuchFieldError: frame on Processing4 · Issue #69 · hamoid/video_export_processing · GitHub

The above directs you to here:
GitHub - hamoid/video_export_processing at kotlinGradle

And I followed the Using the Library instructions.

I now get this instead of an error:

I have not installed FFmpeg to test if it works past this point.

UPDATE

I installed FFmpeg and it now saves a movie but it has this issue:
NullPointerException: it must not be null · Issue #72 · hamoid/video_export_processing · GitHub

Does this KotlinGradle branch work on the Mac?

:)

I have a similar problem on my Mac Intel; I also used Homebrew to install ffmpeg. The Processing editor balks at the line of code which calls videoExport.startMovie(); If you look at the source code for this library .startMovie() calls another function called initialize(). If you look at initialize() it anticipates that ffmpeg is installed either in /usr/local/bin or /usr/bin. However, Homebrew installed ffmpeg@6 in /usr/local/opt on my system. Therefore ffmpeg is not where the VideoExport library anticipated it would be. There is source code to display a dialog for the user to declare where the file is actually located, but I never saw it. Hence I can’t clear the error so far. One option would be to try and move ffmpeg to where it is expected to be.

1 Like

Does this KotlinGradle branch work on the Mac?

When I download this version and replace the requisite files in the ‘libraries’ folder I still have the error. To be fair, his fork was apparently designed to fix another error message, not the one in the original post.

How did you install ffmpeg on your system? When I download the static build mentioned in your dialog message I get a single executable file, and I don’t know where to put it.

1 Like

I am working on a W10 PC with Processing 4.3.

This was the error in the video from original post:

I got this message with W10 Processing 4.3 and the latest Video Export:

I followed the instructions here and it addressed the above on W10 Processing 4.3:
GitHub - hamoid/video_export_processing at kotlinGradle

This was the FFmpeg release I used:
Builds - CODEX FFMPEG @ gyan.dev < ffmpeg-release-essentials.zip
I put it on a folder:
D:\Program_Portable\ffmpeg-7.0.1-essentials_build

This may not address the Mac issues but it resolved the W10 issues and may be helpful to someone visiting this topic.

Sharing is caring.

:)

Whenever I have a call to videoExport.endMovie(); I get:

NullPointerException: it must not be null

Windows, with processing 4.2.

This is the error that the fork was revised to fix. The original post error occurred with videoExport.startMovie() not .endMovie(); It’s probably irrelevant.

How did you run this code? Does it just have to be present on your system and not necessarily ‘running’? How does VideoExport know where it is located?

I ran the basic example and it prompted me:

:)

That’s the dialog coded for in the source code; unfortunately I never see that on a mac.

The ‘basic’ demo runs on Linux; haven’t tried exporting a movie, but there are no error messages and window looks like this:

Update:
After reinstalling ‘ffmpeg’ with brew my Mac version now runs without error.

Mac output:

Just brew reinstall ffmpeg?

What’s the location of your homebrew executable?

Mine is still in /opt/homebrew/bin/ffmpeg and it’s still giving an error.

I tried to install ffmpeg for some other project and pip3 said it couldn’t do it and suggested I use brew. So I just used ‘brew install ffmpeg’ and then checked its location with ‘whereis ffmpeg’; it returned that it was installed in /usr/local/bin/ffmpeg /usr/local/share/man/man1/ffmpeg.1 which is one of the places VideoExport expects it to be; I think that’s why it started working without error.

Hi :slight_smile: Please let me know if I can improve the README files in the project to help solve any issues. Do you think I should make the Gradle branch the default one?

BTW @sven … I didn’t know whereis ffmpeg returns multiple paths. The first one is the executable. The second one is its documentation.