社区
多媒体/流媒体开发
帖子详情
请问如何将解码得到的yuv420图像在窗口显示?
FirstTime
2008-12-08 01:29:28
用户要我实现的函数如下:
STDMETHODIMP CComDemo::Play( long hHandle, long hWnd )
{
return S_OK;
}
意思是我调用之前创建的解码器句柄hHandle解出yuv图像,再调用他传给我的窗口句柄hWnd显示。请问如何显示?要说的具体一些,我编解码还凑合,windows不懂。
...全文
478
17
打赏
收藏
请问如何将解码得到的yuv420图像在窗口显示?
用户要我实现的函数如下: STDMETHODIMP CComDemo::Play( long hHandle, long hWnd ) { return S_OK; } 意思是我调用之前创建的解码器句柄hHandle解出yuv图像,再调用他传给我的窗口句柄hWnd显示。请问如何显示?要说的具体一些,我编解码还凑合,windows不懂。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
勇往直前之人
2012-05-25
打赏
举报
回复
偶也在着急!
hamilton_chz
2012-04-05
打赏
举报
回复
怎么搞定的啊?有没有思路或者简单的代码?能不能分享一下。。。
FirstTime
2008-12-24
打赏
举报
回复
最后还是用directdraw搞定了,结贴。
FirstTime
2008-12-19
打赏
举报
回复
用direct3d9基本搞定
SoftSoftSoft2008
2008-12-10
打赏
举报
回复
采用DirectDraw可以显示。
FirstTime
2008-12-10
打赏
举报
回复
据说这样速度会慢,应该利用硬件直接显示yuv的能力。我总觉得这么通用的功能应该有例子的。
cici2006
2008-12-10
打赏
举报
回复
继续帮你顶,看有没有人出来说。。。
FirstTime
2008-12-09
打赏
举报
回复
利用directShow或者直接用DrawDibDraw就可以在窗口上画出来了
==================================================================
能不能说的再清楚点?最好有例子。
xl5338870
2008-12-09
打赏
举报
回复
encoded data -> ffmpeg decoding -> raw video data(YUV) --> ffmpeg libswscale --> RGB24
找个时候利用利用directShow或者直接用DrawDibDraw就可以在窗口上画出来了
xl5338870
2008-12-09
打赏
举报
回复
encoded data -> ffmpeg decoding -> raw video data(YUV) --> ffmpeg libswcale --> RGB24
找个时候利用利用directShow或者直接用DrawDibDraw就可以在窗口上画出来了
cici2006
2008-12-09
打赏
举报
回复
我建议你是把YUV420的改成RGB32,再用BIT画到窗口上实一下。这样会好些。
FirstTime
2008-12-08
打赏
举报
回复
directx显示怎么做呢?最好有个现成的例子。我有5天时间写这个解码器,再来一天做显示,就这么多时间了。
FirstTime
2008-12-08
打赏
举报
回复
用vfw可不可以搞定?有这方面的例子吗?
Carmack Jiang
2008-12-08
打赏
举报
回复
[Quote=引用楼主 FirstTime 的帖子:]
用户要我实现的函数如下:
STDMETHODIMP CComDemo::Play( long hHandle, long hWnd )
{
return S_OK;
}
意思是我调用之前创建的解码器句柄hHandle解出yuv图像,再调用他传给我的窗口句柄hWnd显示。请问如何显示?要说的具体一些,我编解码还凑合,windows不懂。
[/Quote]
转换成RGB格式
用GDI+画吧
android2008
2008-12-08
打赏
举报
回复
up
FirstTime
2008-12-08
打赏
举报
回复
能不能说得清楚点?我现在一头雾水。另外,用户要我实现的是个com控件,好像不能用mfc。
seforna
2008-12-08
打赏
举报
回复
yuv图像显示有很多种方法,如果简单的话直接用vc的cImage等函数,或者directX或者SDL都可以,只是显示还是比较容易的
MFC
窗口
显示
YUV
数据的两种方法
将
解码
出来的
YUV
数据直接
显示
在MFC的
窗口
上,包含了两种
显示
方式,能自动选择最佳方式。只需要创建一个类并调用一个接口就可以
显示
。
采用DirectDraw的H264解压缩源代码和
YUV
视频播放源代码
采用DirectDraw的H264解压缩源代码和
YUV
视频播放源代码 从FFMPEG中摘录出来并且调试通过的H264
解码
的源代码(c文件),没使用FFMPEG编译出来的lib和dll库,可以直接在VS2010环境下单步调试以跟踪解压缩的所用过程细节,对于想学习和掌握H264编
解码
的标准的同学们非常有用. 读取h264格式的文件并进行实时解压缩和播放,解压缩后的
图像
格式是
YUV
,在一个对话框的控件中逐帧
显示
,程序在VS2010下编译链接通过,可直接使用. 视频播放是采用
窗口
式的基于DirectDraw方法,基于DirectDraw的
图像
播放是Windows平台下很高效的方法,已经封装成CDirectDraw类,可以很方便地直接应用到别的
图像
和视频处理工程中。 使用时打开h264文件或
yuv
文件(工程中有test.h264,encode.h264和FOREMAN_176x144_15.
yuv
三个测试文件),单击[Play File]即可进行播放,播放的帧率可以更改定时器时间调整。可以很方便的更改
图像
的宽度和高度以便播放不同分辨率的视频。
OpenCV
图像
处理基础——基于C++实现
除此之外课程包含如下的内容:
图像
颜色空间及类型转换及应用(BGR、
YUV
、YCrCb颜色空间、人像肤色检测)、
图像
直方图及其应用(直方图均衡化、色阶及对比度调节)、
图像
几何变换(平移、翻转、缩放等)、
图像
滤镜...
linux下opengl加载bmp、png、jpg格式图片
下载时请注意:这是我写的一个简单的测试程序,注释很少,代码比较乱,可读性低,但里面所含的技术,作为初学者了解一下是很有必要的。 程序功能:通过glx将x11和sdl创建的
窗口
联系起来(不是sdl-opengl的东西)供opengl渲染
显示
的小程序,其中bmp的是通过分析bmp文件格式读取位图数据和sdl_image两种方式加载,Png和Jpg文件格式比较复杂,所以直接使用libpng和libjpeg库加载。 程序实现了glsl的简单使用,从加载glsl文件、编译、创建对象到使用。 程序还包含了ffmpeg的完整的
解码
过程。 程序的初衷是打算实现通过这个过程创建opengl的渲染环境,ffmpeg
解码
播放视频,但在调用函数sws_getContext时出错,无法将
解码
出来的
Yuv
格式数据转换为opengl所能使用的rgb格式,不过这个转换过程我想用glsl实现的,现在还有其它更重要的事情,所以这个只能先放一放了。 包含文件:Makefile、mini.frag、mini.vert、test.bin、test.o、test.bmp、test.png、test.jpg、TestPic.cpp
H264_ddraw.rar_askgi9_ffmpeg file_ffmpeg vs2010工程_nestgld_vs2010
从FFMPEG中摘录出来并且调试通过的H264
解码
的源代码(c文件), 没使用FFMPEG编译出来的lib和dll库,可以直接在VS2010环境下单步调试以跟踪解压缩的所用过程细节, 对于想学习和掌握H264编
解码
的标准的同学们非常有用. 读取h264格式的文件并进行实时解压缩和播放, 解压缩后的
图像
格式是
YUV
,在一个对话框的控件中逐帧
显示
, 程序在VS2010下编译链接通过,可直接使用. 视频播放是采用
窗口
式的基于DirectDraw方法, 基于DirectDraw的
图像
播放是Windows平台下很高效的方法,已经封装成CDirectDraw类, 可以很方便地直接应用到别的
图像
和视频处理工程中。 使用时打开h264文件或
yuv
文件(工程中有test.h264,encode.h264和FOREMAN_176x144_15.
yuv
三个测试文件), 单击[Play File]即可进行播放,播放的帧率可以更改定时器时间调整。 可以很方便的更改
图像
的宽度和高度以便播放不同分辨率的视频。
多媒体/流媒体开发
2,543
社区成员
20,281
社区内容
发帖
与我相关
我的任务
多媒体/流媒体开发
专题开发/技术/项目 多媒体/流媒体开发
复制链接
扫一扫
分享
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章