VideoWriter array exceeds maximum array size preference

6 visualizzazioni (ultimi 30 giorni)
I am trying to write a movie to an .avi using the VideoWriter and I get this error:
Error using VideoWriter/writeVideo (line 369)
Requested 685x868x3x9525 (15.8GB) array exceeds maximum array size preference. Creation of arrays greater than this limit
may take a long time and cause MATLAB to become unresponsive. See array size limit or preference panel for more information.
How can I circumvent this and write my video? I am calling writeVideo on a 1x9525 struct array M with
size(M.cdata)= 685 868 3
and M.cdata is of type uint8.

Risposte (2)

Amita Amte
Amita Amte il 8 Ago 2017
This issue could be due to RAM limitations. The following might be helpful:
1. Go to MATLAB > Preferences > Workspace and ensure the Maximum array size limit is set to 100%.
2. Also, check that the Java Heap Memory is not set to a very large value because that might restrict the amount of memory available to perform computations.
  4 Commenti
Shravan Darbhetadka
Shravan Darbhetadka il 20 Apr 2020
My settings are already at 100% but i still get the same error, is there any other way to work around this problem? Also where do i check for the java heap memory and what is the right value to have there?
Thanks
Shravan
Subhash Chandra Ranga
Subhash Chandra Ranga il 19 Lug 2021
Modificato: Subhash Chandra Ranga il 19 Lug 2021
waiting for a reply, I have similar issue. Did You solved it Shravan

Accedi per commentare.


Walter Roberson
Walter Roberson il 19 Lug 2021
VideoWriter can write incrementally. Loop passing it part of the structure array each time
B = 100; %buffer size
nf = numel(M) ;
for K = 1:B:nf-B+1
writeVideo(obj, M(K:K+B+1));
end
K=K+B;
if K<nf
writeVideo(obj, M(K:end));
end
The larger you can make B the more efficient writing can be, but too large may get out of memory.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by