关于cvCreateFileCapture以及cvCreateVideoWriter的avi读写方法(Xcode)

Mac下用Xcode编译OpenCV时avi文件总会出问题,主要还是视频编码方式的原因,在此我来总结一下这两个函数在Mac下的具体使用方法:


1、cvCreateFileCapture

使用格式:

    char name[]="/Users/sean/Documents/untitled folder/2.avi";
    CvCapture* capture = cvCreateFileCapture(name);

文件路径必须填写完整,Xcode不用考虑转义字符,能成功读写出来。

常见问题:avi文件打不开

解决办法:用视频转码工具转换成mac能识别的码字,工具连接(链接: http://pan.baidu.com/s/1XZtSU 密码: ny43)

使用方法:下载“soccer.avi”、“ha-virtualdub.zip”解压,并打开“VirtualDub.exe”。

(1)File--->open video file--->打开“soccer.avi”;

(2)Video--->Compression--->选择“Microsoft Video 1”--->OK;

(3) File--->save as AVI,接下来保存好的就是解码过的视频啦,OpenCV能直接打开。



2、cvCreateVideoWriter

使用格式:

CvVideoWriter* write = cvCreateVideoWriter
    (
     "/Users/sean/Documents/untitled folder/3.avi",
     CV_FOURCC('r', 'p', 'z', 'a'),
     fps,
     size
    );

同样路径需要完整。

常见问题:cvWriteFrame写出的文件大小只有414kb

解决办法:这个是由于write在创建的时候参数fourCC的使用不当造成的,此处必须使用mac支持的编码方式才行,在此我来给出mac可用的编码:


大部分都能用,毕竟现在QuickTime都到V.10了。

使用方法:

    CvVideoWriter* write = cvCreateVideoWriter
    (
     "/Users/sean/Documents/untitled folder/3.avi",
     CV_FOURCC('r', 'p', 'z', 'a'),
     fps,
     size
    );
    CvVideoWriter* re_write = cvCreateVideoWriter
    (
     "/Users/sean/Documents/untitled folder/re3.avi",
     CV_FOURCC('j', 'p', 'e', 'g'),
     fps,
     size
     );

只需改变CV_FOURCC后面的参数即可。



补充说明:

有人说安装Xvid解码器就能用了,不过个人尝试后发现xcode对这个解码器貌似不感冒,我来贴出官方链接(http://www.xvidmovies.com/codec/)毕竟这个code已经13年没更新过了,可以下载下来看


还有人问网上下载的 “ .sit ” 文件我打不开,正如我所说,这个文件是2003年最后一次更新的,所以它是个相当老的一种压缩方式,需要下载专门的解压软件来解压

不想下软件的可以去我的百度云连接里下载.zip文件,我已经解压好了。Xvid这个方法应该只对win奏效,mac添加的第三方编码方式好像都不能在编写OpenCV的时候使用,也有可能是我在Xcode工程选项中没有配置好吧,若有人成功希望在评论中告诉我,我会继续完善OpenCV在Mac中各项功能的使用。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值