# Did macOS Catalina (or something) break the Video library?

**URL:** <https://discourse.processing.org/t/did-macos-catalina-or-something-break-the-video-library/14699>\
**Category:** Processing\
**Created:** [October 14, 2019, 5:30pm UTC](https://discourse.processing.org/t/did-macos-catalina-or-something-break-the-video-library/14699 "2019-10-14T17:30:02Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![E\_R](https://avatars.discourse-cdn.com/v4/letter/e/58956e/32.png) [@E\_R](https://discourse.processing.org/u/E_R)\
**Post date:** [October 14, 2019, 5:30pm UTC](https://discourse.processing.org/t/did-macos-catalina-or-something-break-the-video-library/14699/1 "2019-10-14T17:30:02Z")

</div>

Hi,

I am currently unable to run any code using `processing.video`'s `Capture` object- including the basic Example sketches.

It seems that instantiating the `Capture` object is where the crash occurs, and it happens regardless of using `new Capture(this, width, height);` or when attempting to specify with `new Capture(this, cameras[0]);`, because it also seems to crash on `Capture.list()`.

Any insight would be greatly appreciated, thanks!

* * *

` 2019-10-14 13:20:36.015 java[24743:1078170] -[__NSArray0 addObjectsFromArray:]: unrecognized selector sent to instance 0x7fff8bc482a0 2019-10-14 13:20:36.016 java[24743:1078170] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArray0 addObjectsFromArray:]: unrecognized selector sent to instance 0x7fff8bc482a0'`

---

<div class="post-metadata">

**Author:** ![kll](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/kll/32/964_2.png) [@kll](https://discourse.processing.org/u/kll)\
**Post date:** [October 15, 2019, 1:30am UTC](https://discourse.processing.org/t/did-macos-catalina-or-something-break-the-video-library/14699/2 "2019-10-15T01:30:43Z")

</div>

did you google about your system?  
[https://www.forbes.com/sites/ewanspence/2019/10/10/apple-macos-catalina-update-broken-32bit-mac-imac-macbook-pro-fix-mistake/#12c604be2f60](https://www.forbes.com/sites/ewanspence/2019/10/10/apple-macos-catalina-update-broken-32bit-mac-imac-macbook-pro-fix-mistake/#12c604be2f60) ,  
[https://www.theverge.com/2019/10/12/20908567/apple-macos-catalina-breaking-apps-32-bit-support-how-to-prepare-avoid-update](https://www.theverge.com/2019/10/12/20908567/apple-macos-catalina-breaking-apps-32-bit-support-how-to-prepare-avoid-update) ,  
can that be connected?

---

<div class="post-metadata">

**Author:** ![cbeg](https://avatars.discourse-cdn.com/v4/letter/c/bc79bd/32.png) [@cbeg](https://discourse.processing.org/u/cbeg)\
**Post date:** [October 16, 2019, 2:23pm UTC](https://discourse.processing.org/t/did-macos-catalina-or-something-break-the-video-library/14699/3 "2019-10-16T14:23:08Z")

</div>

Same problem here. All of my programs that use Capture object crash since upgrading to Catalina, same error codes.

---

<div class="post-metadata">

**Author:** ![benonez](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/benonez/32/6793_2.png) [@benonez](https://discourse.processing.org/u/benonez)\
**Post date:** [October 16, 2019, 7:57pm UTC](https://discourse.processing.org/t/did-macos-catalina-or-something-break-the-video-library/14699/4 "2019-10-16T19:57:04Z")

</div>

After upgrading to Catalina I cannot playback video files using the Movie object. A side note is that I can’t make a screen cap of full screen video in the web browser,

---

<div class="post-metadata">

**Author:** ![E\_R](https://avatars.discourse-cdn.com/v4/letter/e/58956e/32.png) [@E\_R](https://discourse.processing.org/u/E_R)\
**Post date:** [October 17, 2019, 4:13pm UTC](https://discourse.processing.org/t/did-macos-catalina-or-something-break-the-video-library/14699/5 "2019-10-17T16:13:34Z")

</div>

It seems like Catalina unceremoniously dropped all support for 32-bit software. I’m assuming that maybe these libraries are 32-bit compiled?

---

<div class="post-metadata">

**Author:** ![E\_R](https://avatars.discourse-cdn.com/v4/letter/e/58956e/32.png) [@E\_R](https://discourse.processing.org/u/E_R)\
**Post date:** [October 17, 2019, 4:15pm UTC](https://discourse.processing.org/t/did-macos-catalina-or-something-break-the-video-library/14699/6 "2019-10-17T16:15:06Z")

</div>

Nailed it, that dropping of 32-bit support seems like the culprit to me.

---

<div class="post-metadata">

**Author:** ![jeremydouglass](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/jeremydouglass/32/20_2.png) [@jeremydouglass](https://discourse.processing.org/u/jeremydouglass)\
**Post date:** [October 19, 2019, 7:23pm UTC](https://discourse.processing.org/t/did-macos-catalina-or-something-break-the-video-library/14699/7 "2019-10-19T19:23:02Z")

</div>

There are now related issues open on the Video library repo:

> <https://github.com/processing/processing-video/issues/133>
>
> Camera images are not displayed in P2D or P3D mode on macOS 10.5(2.0 beta 4)
> if (cam.available()) {
> cam.read();
> }
> image(cam,0,0); // not displayed
> 
> But...

> <https://github.com/processing/processing-video/issues/134>
>
> Running the example file that comes with the Processing video library throws the following error:
> libc++abi.dylib: terminating with uncaught exception of type...

---

<div class="post-metadata">

**Author:** ![GSA\_IxD](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/gsa_ixd/32/7554_2.png) [@GSA\_IxD](https://discourse.processing.org/u/GSA_IxD)\
**Post date:** [December 20, 2019, 10:55am UTC](https://discourse.processing.org/t/did-macos-catalina-or-something-break-the-video-library/14699/8 "2019-12-20T10:55:55Z")

</div>

Indeed. This is a serious problem for my students! I tried unsuccessfully to implement the workarounds suggested in the GitHub (swap out library with beta, and use terminal to change files). I wish I could help in fixing this issue but I just don’t have that knowledge – sorry. But I’m very keen that this gets fixed and the video library gets updated asap – we have a project coming up in the new year which uses a lot of live camera tracking techniques.

BTW – my workaround here to get live video into Processing has been to either use a Kinect, or opening a live camera window in Quicktime and using Syphoner to send it to Processing via Syphon.

---

<div class="post-metadata">

**Author:** ![GSA\_IxD](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/gsa_ixd/32/7554_2.png) [@GSA\_IxD](https://discourse.processing.org/u/GSA_IxD)\
**Post date:** [December 20, 2019, 11:12am UTC](https://discourse.processing.org/t/did-macos-catalina-or-something-break-the-video-library/14699/9 "2019-12-20T11:12:14Z")

</div>

I can play movies but not capture video after Catalina update. Some of my students using Catalina reported that they could not play movies either. 1 of them reported he solved it by uninstalling the Video library and then reinstalling it again – apparently.

---

<div class="post-metadata">

**Author:** ![neilcsmith](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/neilcsmith/32/144_2.png) [@neilcsmith](https://discourse.processing.org/u/neilcsmith)\
**Post date:** [December 20, 2019, 11:52am UTC](https://discourse.processing.org/t/did-macos-catalina-or-something-break-the-video-library/14699/10 "2019-12-20T11:52:34Z")

</div>

> [@GSA\_IxD](#):
>
> I can play movies but not capture video after Catalina update.

This might be related to a missing permission key [Requesting Authorization for Media Capture on macOS | Apple Developer Documentation](https://developer.apple.com/documentation/avfoundation/cameras_and_media_capture/requesting_authorization_for_media_capture_on_macos) I haven’t updated my testing macOS machine to Catalina yet to look at this myself (I’m now the main developer on the GStreamer bindings that Processing Video uses) - let me know how you get on!

---

<div class="post-metadata">

**Author:** ![GSA\_IxD](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/gsa_ixd/32/7554_2.png) [@GSA\_IxD](https://discourse.processing.org/u/GSA_IxD)\
**Post date:** [December 20, 2019, 12:15pm UTC](https://discourse.processing.org/t/did-macos-catalina-or-something-break-the-video-library/14699/11 "2019-12-20T12:15:46Z")

</div>

Hey Neil. Thanks for getting back. It may well be something like this – it would be great if it was simple. While I understand what is required, I am not in a position to implement anything within any codebase. I’m dependent upon good people like yourself! If there was something I could call from Processing to force the permission that would be fine. Or a flag I could set (like in Android mode), or something.

---

<div class="post-metadata">

**Author:** ![neilcsmith](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/neilcsmith/32/144_2.png) [@neilcsmith](https://discourse.processing.org/u/neilcsmith)\
**Post date:** [December 20, 2019, 2:51pm UTC](https://discourse.processing.org/t/did-macos-catalina-or-something-break-the-video-library/14699/12 "2019-12-20T14:51:44Z")

</div>

> [@GSA\_IxD](#):
>
> While I understand what is required, I am not in a position to implement anything within any codebase.

If this is the answer I think it just involves adding the `NSCameraUsageDescription` key (with some String value) in to the `Info.plist` file inside the Processing app download (eg. `Processing.app/Contents/Info.plist` ) No coding, just a couple of lines of XML.

---

<div class="post-metadata">

**Author:** ![jeremydouglass](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/jeremydouglass/32/20_2.png) [@jeremydouglass](https://discourse.processing.org/u/jeremydouglass)\
**Post date:** [December 20, 2019, 4:31pm UTC](https://discourse.processing.org/t/did-macos-catalina-or-something-break-the-video-library/14699/13 "2019-12-20T16:31:32Z")

</div>

> [@neilcsmith](#):
>
> NSCameraUsageDescription

In which case, possibly related: [ios - Xcode: Missing Info.plist key for NSCameraUsageDescription - Stack Overflow](https://stackoverflow.com/questions/44690075/xcode-missing-info-plist-key-for-nscamerausagedescription/44690185)

(I am not on Catalina)

---

<div class="post-metadata">

**Author:** ![neilcsmith](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/neilcsmith/32/144_2.png) [@neilcsmith](https://discourse.processing.org/u/neilcsmith)\
**Post date:** [December 20, 2019, 6:02pm UTC](https://discourse.processing.org/t/did-macos-catalina-or-something-break-the-video-library/14699/14 "2019-12-20T18:02:25Z")

</div>

Yes, good link - hopefully just a case of adding lines similar to [https://stackoverflow.com/a/44690785](https://stackoverflow.com/a/44690785)

---

<div class="post-metadata">

**Author:** ![GSA\_IxD](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/gsa_ixd/32/7554_2.png) [@GSA\_IxD](https://discourse.processing.org/u/GSA_IxD)\
**Post date:** [December 22, 2019, 10:29pm UTC](https://discourse.processing.org/t/did-macos-catalina-or-something-break-the-video-library/14699/15 "2019-12-22T22:29:28Z")

</div>

Hi. I tried simply copying a couple of lines into the Info.plist:

```auto
    <key>NSCameraUsageDescription</key>
    <string>APPNAME requires access to your phone’s camera.</string>

```

… but Processing fails to launch

---

<div class="post-metadata">

**Author:** ![neilcsmith](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/neilcsmith/32/144_2.png) [@neilcsmith](https://discourse.processing.org/u/neilcsmith)\
**Post date:** [February 15, 2020, 8:54pm UTC](https://discourse.processing.org/t/did-macos-catalina-or-something-break-the-video-library/14699/16 "2020-02-15T20:54:00Z")

</div>

Did you ever get this working? Just saw this looking back (someone asked elsewhere). I have a feeling editing the .info file might break the signing on the app?!

---

<div class="post-metadata">

**Author:** ![enigmeta](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/enigmeta/32/5213_2.png) [@enigmeta](https://discourse.processing.org/u/enigmeta)\
**Post date:** [February 19, 2020, 9:23am UTC](https://discourse.processing.org/t/did-macos-catalina-or-something-break-the-video-library/14699/17 "2020-02-19T09:23:16Z")

</div>

Here’s what I did to solve this issue.

1. Download the latest video release from from the [releases page](https://github.com/processing/processing-video/releases).
2. Unzip the folder into `~/Documents/Processing/libraries`. (Remove the existing `video` folder if it’s there)
3. Open the Terminal, type `cd`, a space, and dragging in the `video` folder. Then press enter. It should look like this:

```auto
cd /Users/YOUR_USER_NAME/Documents/Processing/libraries/video

```

1. Type `xattr -r -d com.apple.quarantine *` — this deletes the quarantine flags that cause the “gstreamer is not signed” error.
2. The basic `GettingStartedCapture` example should work out of the box. All other examples require an extra step.
3. In each example, the `Capture` constructor requires the name of the camera. Adapt each example like so:

```auto
  // old code
  video = new Capture(this, 640, 480);

  // new code
  String[] cameras = Capture.list();
  video = new Capture(this, 640, 480, cameras[0]);

```

---

<div class="post-metadata">

**Author:** ![neilcsmith](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/neilcsmith/32/144_2.png) [@neilcsmith](https://discourse.processing.org/u/neilcsmith)\
**Post date:** [February 19, 2020, 10:50am UTC](https://discourse.processing.org/t/did-macos-catalina-or-something-break-the-video-library/14699/18 "2020-02-19T10:50:55Z")

</div>

Great info!

> [@enigmeta](#):
>
> In each example, the `Capture` constructor requires the name of the camera.

I reported that last year and it’s been fixed in master for months - time to nag for a new release! 😄

---

<div class="post-metadata">

**Author:** ![GSA\_IxD](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/gsa_ixd/32/7554_2.png) [@GSA\_IxD](https://discourse.processing.org/u/GSA_IxD)\
**Post date:** [February 19, 2020, 5:31pm UTC](https://discourse.processing.org/t/did-macos-catalina-or-something-break-the-video-library/14699/19 "2020-02-19T17:31:07Z")

</div>

Hi all. Thanks for your help in trying to get video capture working. [enigmeta](https://discourse.processing.org/u/enigmeta) I followed you excellent instructions but instead of GettingStartedCapture failing by reporting:

> libc++abi.dylib: terminating with uncaught exception of type NSException

… it now reports there being no cameras available:

> Processing video library using GStreamer 1.12.4  
> There are no cameras available for capture.

`String[] cameras = Capture.list();`  
is empty!

I checked my System Prefs in Privacy and ensured Processing is granted access to the camera. I’m using Processing 3.5.4 and the ‘Video Library Release 6 (version 2.0-beta4)’ on MacOS Catalina (10.15.3)

---

<div class="post-metadata">

**Author:** ![jona](https://avatars.discourse-cdn.com/v4/letter/j/3d9bf3/32.png) [@jona](https://discourse.processing.org/u/jona)\
**Post date:** [March 11, 2020, 12:30pm UTC](https://discourse.processing.org/t/did-macos-catalina-or-something-break-the-video-library/14699/20 "2020-03-11T12:30:04Z")

</div>

Hi thanks for your instructions!

I also added

```auto
<key>NSCameraUsageDescription</key>
<string>APPNAME requires access to your phone’s camera.</string>

```

in Processing.app/Contents/Info.plist

console output

> Processing video library using GStreamer 1.16.0  
> Available cameras:  
> [0] “FaceTime HD Camera (Built-in)”

So my camera is getting detected. If I execute cam.start() - the light of my camera shortly turns on and off.

I never get any image from the camera → black screen

Any ideas?

[Next page](https://discourse.processing.org/t/did-macos-catalina-or-something-break-the-video-library/14699.md?page=2)
