avi codec issues in 64-bit Windows 7 environment

8 ビュー (過去 30 日間)
Chris Taylor
Chris Taylor 2011 年 5 月 10 日
コメント済み: Brad 2015 年 4 月 17 日
Hello all,
In an algorithm I am collaborating on the data sequence is outputted as an avi file with the line
film = avifile([PathName,FileName],'compression','Indeo5','quality', 100,'fps',fps);
While this algorithm runs fine on 32-bit Windows XP I am trying to modify it to run on 64-bit Windows 7 as the Indeo codecs are not available. I have read various MathWorks articles that seem to skip over what is the preferred codec for this OS, and it seems other people have similar problems.
I have tried the following codecs:
- The Cinepak codec is not available for use on 64-bit Windows 7
- The MSVC and RLE codecs create errors as they do not work for truecolour images
- Indeo 2, 3, 5 codecs have been tested and they create errors as are not supported by 64-bit Windows 7
- FFDShow (FFDS) has been installed and tested, and while this produces a video it is skewed and stretched at 45 degrees (this was suggested as a solution for another user on the google group for MATLAB but has failed)
As it stands I can currently only output an avi file using no compression ('None'). Is there are codec that will output avi files correctly on 64-bit Windows, or a workaround that does not include post-processing by third party software?
Thanks for your time,
Chris
  2 件のコメント
David Tarkowski
David Tarkowski 2011 年 5 月 11 日
What version of MATLAB are you using?
Chris Taylor
Chris Taylor 2011 年 5 月 12 日
I am running MATLAB R2010a.

サインインしてコメントする。

回答 (3 件)

bram desmet
bram desmet 2011 年 8 月 15 日
Hi,
I work on a Win7 64 bit machine with Matlab R2009a, and I am able to compress avi files using the Intel Indeo4 codec, referring to it with the appropriate fourcc code 'i420':
movie2avi(mov,'test.avi','Compression','i420');
I don't remember how I got a hold of the 64 bit version of the Indeo4, though, ... could have been in some codec package
good luck
bram
  2 件のコメント
Wyken Seagrave
Wyken Seagrave 2014 年 5 月 14 日
The secret of creating high quality videos on Windows is to use VideoWriter, an object compressed with Motion JPEG, and not movie2avi, which produces low quality video.
Brad
Brad 2015 年 4 月 17 日
Bram, agreed. I, too, use a Windows 7, 64-bit machine running R2012b. In an effort to get any compression out of the movie2avi function I utilized the same Intel CODEC you did, i420 - and it finally worked!!
I then produced the same AVI file using VideoWriter. Both methods produced quality videos. But the VideoWriter file was 883KB vs. 37.5MB for the movie2avi file.

サインインしてコメントする。


Nick Haddad
Nick Haddad 2011 年 5 月 19 日
編集済み: John Kelly 2013 年 11 月 13 日
Chris,
Unfortunately in R2010a and earlier there is no strong compressed solution using avifile on 64-bit windows.
If you are able to upgrade to R2010b, you'll have access to the new VideoWriter object, which supports Motion JPEG AVI files across all platforms.
  1 件のコメント
leila
leila 2014 年 5 月 16 日
編集済み: leila 2014 年 5 月 16 日
I encounter this error and I have R2010b, Do you know how to change and fix the code?
mov = avifile(outFile, 'COMPRESSION', 'Indeo5', 'FPS', iftp.FramesPerSecond, 'QUALITY', 100);
Error
Indeo codecs are not supported in this version of Windows. Please specify a different codec.

サインインしてコメントする。


Martijn
Martijn 2011 年 5 月 12 日
The Xvid codec works pretty well in combination with MATLAB. A 64-bit version can be downloaded from:
Note that you cannot configure all setting of Xvid from within MATLAB, but the Xvid settings are persistent so you could for example first configure it from inside VirtualDub.
  1 件のコメント
Chris Taylor
Chris Taylor 2011 年 5 月 12 日
Hi Martijn,
After installing XViD 1.3.1 and changing the codec from 'None' to 'XVID' in the algorithm, I've encountered the following error:
--------------------
??? Error using ==> avi
Failed to set stream format. Try specifying a different codec.
Error in ==> avifile.addframe at 188
avi('addframe',rot90(frame,-1), aviobj.Bitmapheader, ...
Error in ==> BF_experiment_rotation at 671
film = addframe(film,F);
--------------------
The final part of this error in BF_experiment_rotation is not my code, so I'll have to chase up with the person responsible any potential reason why it could be throwing up this error for the XViD codec. However, I've not seen this error before for any of the other codecs I've tried and so am at a loss to explain what could be causing it. Any ideas?

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeAudio and Video Data についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by