写入应该是只支持avi,因为其他格式一般都是压缩格式,压缩格式一般都有帧间压缩,也就是不能只写一帧,可以保存为avi后,转码.

以AVI结尾的视频文件有以下几种:

1、非压缩格式的AVI文件(或是MPEG1格式的),这个不需要装任何插件就可以播放了。

2、DIVX格式的AVI,这也是MPEG4的一种,安装最新的DIVX 5.21(目前最新版),就可以播放了,不过缺点是在播放之初会有一个DIVX的标记显示几秒。

下载地址: http://gupin.fangdown.com/soft/138.htm

3、XVID格式的AVI,这也是MPEG4的一种,可以说是从DIVX变种而来的,据说是XVID原作者不满意DIVX商业化收费的行为,而开发的一个全Free的MPEG4编码核心,安装最新的XVID(1.02版)就可以播放。

下载地址: http://gupin.fangdown.com/soft/45.htm

4、ffdshow MPEG-4格式的AVI,现在越来越多的AVI都采用ffdshow MPEG-4来,集成了DIVX与XVID的一种东西(好象还支持WMV与AC3音频),因此如果你装了ffdshow MPEG-4,就可以不用装XVID与DIVX等编码核心了。另外ffdshow MPEG-4也提供丰富的滤镜功能比如增亮,增加锐度等,最新的ffdshow MPEG-4 Video Decoder 20041012。

下载地址:http://gupin.fangdown.com/soft/383.htm

5、WMV9格式的AVI,微软自己推出的MPEG4编码标准,使用Windows Media 9.0就可以播放,如果没有的话,也可以下载一个Windows Media Encoder 9.0,使你的系统支持WMV 9.0的格式。

下载地址:http://www.ogg.cn/Software/view-software-62.html

6、VP6格式的AVI,也是一种MPEG4的编码格式,On2 Technologies开发的编码器,VP6号称在同等码率下,视频质量超过了Windows Media 9、Real 9和H.264。VP6视频编码器目前被中国的EVD所采用。说真的,现在用这个不多。最新版本是VP6 vfw Codec 6.2.6.0。

下载地址:http://www.ogg.cn/Software/view-software-56.html

7、其它格式的AVI,现在看来还有一些如MKV、OGG等格式的视频编码文件也会使用AVI的结尾名。

其实AVI只是一个外壳。里面的东西可不一样的!

问题:为什么我的电脑支持AVI或者能够播出AVI,但为什么使用cvCreateFileCapture函数总返回NULL呢?

答案:尽管是AVI文件,但也可能使用了某种codec,例如:MJPEG Decompressor。需要把它转换OpenCV

支持的AVI文件. OpenCV支持的AVI如下:

Container

FourCC

Name

Description

AVI

'DIB '

RGB(A)

Uncompressed RGB, 24 or 32 bit

AVI

'I420'

RAW I420

Uncompressed YUV, 4:2:0 chroma subsampled

AVI

'IYUV'

RAW I420

identical to I420

转换格式解决方法:

解决方法1:下载mencoder.exe, 在window命令行下使用:

mencoder in.avi -ovc raw -vf format=i420 -o out.avi

(注:我测试了这个方法,没有成功,原因不详,希望有朋友们能够详细讨论一下。)

解决方法2:下载VitualDub, 我使用1.9.4版本

a. File->Open Video File;

b. Video->Filters->Add->Convert format; 选择4:2:0 Planar YCbCr (YV12)或者 32-Bit RGB。

c. Save as AVI. 保存完毕。

(注:成功使用。)

(1)cvCreateVideoWriter

创建视频文件写入器

typedef struct CvVideoWriter CvVideoWriter;

CvVideoWriter* cvCreateVideoWriter( const char* filename, int fourcc, double fps, CvSize frame_size,

int is_color=1 );

filename

输出视频文件名。

fourcc

四个字符用来表示压缩帧的codec 例如,CV_FOURCC('P','I','M','1')是MPEG-1 codec, CV_FOURCC

('M','J','P','G')是motion-jpeg codec等。 在Win32下,如果传入参数-1,可以从一个对话框中选择压缩方

法和压缩参数。 其它的编码器代号包括:

CV_FOURCC('P','I','M','1') = MPEG-1

codec CV_FOURCC('M','J','P','G') = motion-jpeg

codec (does not work well) CV_FOURCC('M', 'P', '4', '2') = MPEG-4.2

codec CV_FOURCC('D', 'I', 'V', '3') = MPEG-4.3

常见的有1.0、2.0、3.0三种版本,当然是基于MPEG-4技术的,其中3.0并不能用于AVI的编码,只能用于生成支持“视频流”技术的ASF文件

codec CV_FOURCC('D', 'I', 'V', 'X') = MPEG-4

codec CV_FOURCC('U', '2', '6', '3') = H263

H.263适用于局域网,不过一般机器上这种Codec是用来播放的,不能用于编码。H.263的编码速度快,其设计编码延时不超过150ms;码率低,在512 K 乃至 384K 带宽下仍可得到相当满意的图像效果,十分适用于需要双向编解码并传输的场合(如:可视电话)和网络条件不是很好的场合(如:远程监控)。

codec CV_FOURCC('I', '2', '6', '3') = H263I

codec CV_FOURCC('F', 'L', 'V', '1') = FLV1 codec

FLV 是FLASH VIDEO的简称,FLV流媒体格式是一种新的视频格式。由于它形成的文件极小、加载速度极快,使得网络观看视频文件成为可能,它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件体积庞大,不能在网络上很好的使用等缺点。

若编码器代号为 -1,则运行时会弹出一个编码器选择框.

fps

被创建视频流的帧率。

frame_size

视频流的大小。

is_color

如果非零,编码器将希望得到彩色帧并进行编码;否则,是灰度帧(只有在Windows下支持这个标志)。

函数cvCreateVideoWriter创建视频写入器结构。

(2) AVI到BMP

读入avi,提取每一帧,存成BMP
CvCapture* capture = cvCreateFileCapture("filename.avi");
int i;
CString str;
IplImage* frame;
for (i=0;i<30;i++)
{
frame = cvQueryFrame(capture);
str.Format("%d.bmp",i);
cvSaveImage(str,frame);
}
cvReleaseCapture(&capture);

BMP到AVI :依次读入BMP,写入avi

MPEG1:

是目前实时视频压缩的主流,可适用于不同带宽的设备,如CD-ROM、Video-CD、CD-I与M-JPEG技术相比较,在实时压缩、每帧数据量、处理速度上均有显著的提高。MPEG1可以满足多达16路以上25帧/秒的压缩速度,在500kbit/s的压缩码流和352像素×288行的清晰度下,每帧大小仅为2k。若从VCD到超级VCD到DVD的不同格式来看,MPEG1的352 ×288格式,MPEG2可有576×352、704 ×576等,用于CDROM上存储同步和彩色运动标视频信号,旨在达到VCR(模拟式磁带录放机Video Cassette Recorder;VCR)质量,其视频压缩率为26:1。MPEG1可使图像在空间轴上最多压缩1/38,在时间轴上对相对变化较小的数据最多压缩1/5。MPEG1压缩后的数据传输率为1.5Mbps,压缩后的源输入格式SIF(Source Input Format),分辨率为352像素×288行(PAL制),亮度信号的分辨率为360×240,色度信号的分辨率为180×120,每秒30帧。MPEG1对色差分量采用4:1:1的二次采样率。MPEG1、MPEG2是传送一张张不同动作的局部画面。在实现方式上,MPEG1可以借助于现有的解码芯片来完成,而不像M-JPEG那样过多依赖于主机的CPU。与软件压缩相比,硬件压缩可以节省计算机资源,降低系统成本。

M-JPEG:

MPEG压缩是根据运动图像相邻帧之间有一定的相似性原则,通过运动预测,参考前一帧图像与这一帧图像的相似情况,去掉与前一帧相似的冗余数据,而只记录这一帧与上一帧不同的数据,从而大大提高了视频数据的压缩效率,这种压缩方法也称为帧相关压缩。 MPEG压缩是以图像组(GOP)为一个单元的,由I帧B、P帧构成。一般情况下一个图像组(GOP)由15帧组成,第一帧为一个I帧,依次为1个P帧,2个B帧,由此构成I PBB PBB PBB……结构。I帧称为参考帧,所谓参考帧是其它帧都参考的起始帧,所以I帧是一个能够完全记载这一帧全部图像数据的帧。亦称作全帧。P帧是前向预测帧,是根据与前一帧图像的比较,去掉与前帧相似的数据而构成的帧。B帧是双向预测帧,是根据与前后一帧图像的比较而得到的帧。P、B帧是一个不完全帧,它需要依靠I帧而成立。可见MPEG有二大特点:

· 第一、 因为采用运动预 测帧压缩方式,针对视频压缩有很好的效果,在获得广播级数字视频质量的前提下,可以实现20:1的压缩效率,数据率可降至1M Byte/s(8M bit/s),一小时视频节目占用3.6GB空间。数据存储空间利用率高,网络传输效率是M-JPEG系统的5倍以上。

· 第二、 由于MPEG-II格式只有I帧是一个完整的帧。所以在电视需要帧精确 地进行剪接时会带来一的困难

opencv支持多种流行视频格式文件的读取相关推荐

  1. 支持avi mkv的html视频插件,PS4更新加入媒体播放器 支持多种音频视频格式

    就在今天E3之后,PlayStation官方博客发表了公告称,新的媒体播放器功能已更新至PS4之中.这样使得你的PS4可以成为一个玩游戏之外的综合媒体播放设备,玩家可以通过Wifi或使用USB将电影和 ...

  2. [转载]流行视频格式讲解

    *. MPEG/.MPG/.DAT MPEG也是Motion Picture Experts Group 的缩写.这类格式包括了 MPEG-1, MPEG-2 和 MPEG-4在内的多种视频格式.MP ...

  3. Windows 下令 OpenCV 支持 h.264 视频编码的方法

    引言 OpenCV 和 ffmpeg 修改 opencv_ffmepgdll 的步骤 安装 MinGW 编译 x264 编译 ffmpeg 生成 opencv_ffmpegdll 准备 生成 测试 结 ...

  4. 企信下载的文件在哪里_第28期分享:PR如何剪辑MKV视频格式文件?

    很多小伙伴在网上下载的MKV视频格式的文件无法正常编辑,如PR等对于封装格式不支持,为解决这一问题,小编教大家如何使用工具进行格式转换,然后使用PR进行剪辑. 软件简介:格式工厂是套万能的多媒体格式转 ...

  5. Android MediaPlayer支持的音视频格式和协议

    Android MediaPlayer支持的音视频格式和协议 2018年04月18日 18:33:42 阅读数:11127 标签: MediaplayerIjkPlayerAndroid音视频Andr ...

  6. 动态html动画是什么格式,gif动态图片制作视频格式文件

    有时我们在视频编辑中想要插入某个GIF动态图片素材,但一些非线性视频编辑软件如Premiere,是不支持直接导入gif格式文件的.这时要能把gif动态图片制作成视频格式文件那就好办多了.方法是有滴,看 ...

  7. 【githubshare】免费开源的视频编辑器,兼容 Windows、macOS、Linux 等主流操作系统。支持最新音视频格式与 4K 分辨率,可实现视频特效

    GitHub 上一款免费开源的视频编辑器:Shotcut,兼容 Windows.macOS.Linux 等主流操作系统. 支持最新音视频格式与 4K 分辨率,可实现视频特效添加.内容剪切.时间轴校对. ...

  8. pydicom读取头文件_.dcm格式文件软件读取及python处理详解

    要处理一些.dcm格式的焊接缺陷图像,需要读取和显示.dcm格式的图像.通过搜集资料收集到一些医学影像,并通过pydicom模块查看.dcm格式文件. 若要查看dcm格式文件,可下echo viewe ...

  9. 阿里云ECS云服务器Windows如何通过IIS配置网站支持flv、mp4等文件访问读取

    阿里云ECS云服务器Windows 如何通过IIS配置网站支持flv,mp4等文件访问读取,通过IIS配置的网站,如果需要播放一些例如flv.mp4的特殊文件,需要在站点配置中添加自定义MIME类型, ...

最新文章

  1. 数据分析IJCAI 2020:录用率12.6%,华人占据半壁江山,表征学习、GNN成热点 | AI日报...
  2. LeetCode: 102. Binary Tree Level Order Traversal
  3. 年终盘点:2021年AI领域值得关注的十件事
  4. wps 选择 高亮_WPS的这些功能,竟然如此好用
  5. OC基础之访问修饰符
  6. Linux通过GPIO状态实现按键上报(按键功能)
  7. 算法笔记_036:预排序(Java)
  8. 数据可视化可视化营养含量
  9. Python学习之解释器的简单使用
  10. Chrome谷歌浏览器 强制跳转https解决方案
  11. Element-UI中el-input输入值不显示
  12. Yii2实现自定义独立验证器的方法
  13. promoter:启动子预测程序(PPPs)软件现状及分析
  14. 商品期货日内 Dual Thrust 交易策略
  15. 怎样用EXCEL对数值型字段进行分组?
  16. git init报错Reinitialized existing Git repository
  17. .asd文件如何恢复
  18. gtk之G_LIKELY(expr)和G_UNLIKELY(expr)
  19. 经典非局部均值滤波(NLM)算法python实现(2)
  20. 解决报错npm ERR request to https://registry.cnpmjs.org/wangeditor failed, reason: Hostname/

热门文章

  1. JavaScript删除对象中某个属性——delete
  2. 电脑端微信设置浏览器+设置截屏快捷键
  3. reverse函数实现逆置
  4. 赵本山2007春节晚会小品
  5. Java使用POI导出Word文档
  6. linux 命令:df 详解
  7. html登陆没反应,点击登录没反应怎么办 点击登录没反应解决方法【步骤】
  8. 内熵减:修炼生命状态
  9. PPT绘图相关,快捷键,美观度
  10. Datastage入门+实例(易理解)