⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_32902.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:32902 发表者:magic 发表日期:2003-03-16 09:35:21
<br>主题:请教关于视频播放的问题
<br>内容:我最近在编写一个AVI文件的播放器<BR>基本流程是这样的<BR>1。用AVIFileGetStream(m_pFile,&amp;m_pStream,streamtypeVIDEO,0)得到指向视频流的指针<BR>m_pStream.<BR>2.获取一些信息<BR>3。AVIStreamRead将视频流每帧的图像数据读取到一个缓冲区内<BR>4。用DrawDibDraw函数进行绘图<BR>注:为了简化,我没有考虑音频<BR><BR>现在的问题是:<BR>1。播放没有声音的文件时,总是不能完整播放,到最后就没有图像了<BR>&nbsp;&nbsp;这是不是与缓冲区有关?<BR>2。播放一般的文件,例如mtv就只能看到第一幅画面<BR> 这是不是没有考虑声音的缘故<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:鸡蛋壳 回复日期:2003-03-19 19:49:37
<br>内容:你好,你是用AVI API编程吗?如果只是播放器的话,我建议你使用DirectShow编程。那要比AVI API方便的多。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:magic 回复日期:2003-03-20 08:19:33
<br>内容:我主要的目的就是提取出每一帧的图像数据以便处理<BR>经过改进以上问题已基本解决<BR>但是<BR>在播放mtv或电影的时候<BR>画面不连续<BR>而且文件越大<BR>画面月不连续
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:鸡蛋壳 回复日期:2003-03-20 08:51:04
<br>内容:用DirectShow也可以很方便的得到电影的每一帧啊。越大越不连续?没道理的,肯定有什么问题。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:magic 回复日期:2003-03-20 17:11:50
<br>内容:非常感谢你的回答<BR><BR>现在的问题就是<BR>在播放某些avi文件的时候会有那种现象<BR><BR>我只是vc的菜鸟<BR>用directshow是不是要花很多时间去学?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:鸡蛋壳 回复日期:2003-03-20 18:25:59
<br>内容:播放器很简单
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:鸡蛋壳 回复日期:2003-03-20 18:27:45
<br>内容:YUV图象其实没有那么难,只不过YUV图象本来不是用于计算机的,而是用于电视领域,所以我们都比较陌生.<BR>YUV有很多种格式,常见的有UYVY, YUYV等等,简单介绍一下UYVY:<BR>本来RGB24的点格式相信你知道: R8 G8 B8, 每个颜色分量占8位,一个字节. 一个点要3个字节表示.<BR>而UYVY是用32位,4个字节表示2个点,这相邻的两个点公用U(红色色差),V(蓝色色差)分量,却拥有自己的Y分量(亮度),所以它的格式是: U12 Y1 V12 Y2<BR>U12: 相邻2个点的红色色差<BR>V12: 相邻2个点的蓝色色差<BR>Y1, Y2: 2个点各自的亮度<BR>(YUYV: 就是把上述的几个东西反过来)<BR><BR>至于为什么YUV比RGB快,我想是这样的:<BR>1. 现在的显卡基本都支持RGB, YUV的硬件加速Blit, 所以不存在解码时间.<BR>2. YUV平均每个点只占2个字节, 而RGB一个点要3个字节,从复制角度说,同样大小的YUV图象比RGB小1/3,所以快.<BR><BR>其实最简单的办法就是用DrawDibDraw, 在制定BITMAPINFOHEADER的时候,把biCompression设为mmioFOUCC('U','Y','V','Y'),这样简单.<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:magic 回复日期:2003-03-22 16:54:49
<br>内容:你说的是什么意思?<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -