社区
图象工具使用
帖子详情
YV12序列如何让directshow直接播放?
nodirection
2012-11-01 03:30:37
在不对YV12序列进行变换的前提下如何才能让VMR直接播放出正常的视频?
调试发现在Graph Run之后改变了之前连接时协商好的媒体类型(图像尺寸变了),导致最终播放出来的现象是条纹.
输出是YV12,开始协商的媒体类型是352x288,等Run之后,媒体类型就变成了:384x-288,图像就是条纹,如果是YUY2输出的话,就会变成:512x-288
各位大牛,怎么办啊。
...全文
414
15
打赏
收藏
YV12序列如何让directshow直接播放?
在不对YV12序列进行变换的前提下如何才能让VMR直接播放出正常的视频? 调试发现在Graph Run之后改变了之前连接时协商好的媒体类型(图像尺寸变了),导致最终播放出来的现象是条纹. 输出是YV12,开始协商的媒体类型是352x288,等Run之后,媒体类型就变成了:384x-288,图像就是条纹,如果是YUY2输出的话,就会变成:512x-288 各位大牛,怎么办啊。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
rageliu
2012-11-23
打赏
举报
回复
就是一个格式动态变化的问题. 你在filter里响应它的新格式请求,按新格式排列就行了 或是直接向上游filter递交新格式请求,让它直接按新格式给你传数据,这样你都不用自己排列
nodirection
2012-11-13
打赏
举报
回复
非常感谢guyue6670大哥,他告诉我数据对齐的问题。 无意中发现了一个帖子,里面有一个对齐算法。一试竟然成功显示了。 代码: if(nWidth == nWidthRender) { memcpy(pOutData, pData, lOutLen); } else { for(int i = 0; i < nHeight; i++) { memcpy(pOutData, pData, nWidth); pData += nWidth; pOutData += nWidthRender; } for(int i = 0; i < (nHeight >> 1) * 2; i++) { memcpy(pOutData, pData, nWidth >> 1); pData += nWidth >> 1; pOutData += nWidthRender >> 1; } } 我是在我source filter里的fillbuffer里加这段代码 谢谢这个帖子:http://blog.csdn.net/xuxinhua/article/details/6858304
jjjweiren
2012-11-13
打赏
举报
回复
为了将结果告诉大家,只好用另一个号回复一下。
nodirection
2012-11-05
打赏
举报
回复
继续在线等。
nodirection
2012-11-05
打赏
举报
回复
我的代码,大牛帮我看看啊。我真的好急啊。 HRESULT CBallStream::GetMediaType(int iPosition, CMediaType *pmt) { CheckPointer(pmt,E_POINTER); CAutoLock cAutoLock(m_pFilter->pStateLock()); if(iPosition < 0) { return E_INVALIDARG; } // Have we run off the end of types? if(iPosition > 0) { return VFW_S_NO_MORE_ITEMS; } pmt->InitMediaType(); pmt->SetType(&MEDIATYPE_Video); pmt->SetSubtype(&MEDIASUBTYPE_YV12); pmt->SetFormatType(&FORMAT_VideoInfo2); //pmt-> SetType (&MEDIATYPE_Video); //pmt-> SetSubtype (&MEDIASUBTYPE_RGB24); //pmt-> SetFormatType(&FORMAT_VideoInfo); pmt->SetTemporalCompression(false); VIDEOINFOHEADER2 *pvi = (VIDEOINFOHEADER2 *)pmt->AllocFormatBuffer(sizeof(VIDEOINFOHEADER2)); ZeroMemory(pvi, sizeof(VIDEOINFOHEADER2)); pvi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER); pvi->bmiHeader.biPlanes = 1; pvi->bmiHeader.biBitCount = 24; pvi->bmiHeader.biWidth = 704; pvi->bmiHeader.biHeight = 576; pvi->bmiHeader.biSizeImage = DIBSIZE(pvi->bmiHeader); pvi->bmiHeader.biCompression = MAKEFOURCC('Y','V','1','2'); pvi->AvgTimePerFrame = /*10000000 / 60;*/333667; pvi->dwInterlaceFlags = 0; //AMINTERLACE_IsInterlaced | AMINTERLACE_Field1First; // | AMINTERLACE_FieldPatBothIrregular | AMINTERLACE_DisplayModeBobOnly; pvi->dwCopyProtectFlags = AMCOPYPROTECT_RestrictDuplication; pvi->dwPictAspectRatioX = (DWORD)pvi->bmiHeader.biWidth; pvi->dwPictAspectRatioY = (DWORD)pvi->bmiHeader.biHeight; pmt->SetSampleSize(pvi->bmiHeader.biSizeImage); SetRect(&pvi->rcSource, 0, 0, 704, 576); SetRect(&pvi->rcTarget, 0, 0, 704, 576); return NOERROR; } // GetMediaType
nodirection
2012-11-02
打赏
举报
回复
谢谢,谢谢sure
帅惊联合国
2012-11-02
打赏
举报
回复
有心无力。。。 不过帮顶 !
nodirection
2012-11-02
打赏
举报
回复
自己顶一下。
nodirection
2012-11-02
打赏
举报
回复
难得的友情哦。呵呵
nodirection
2012-11-02
打赏
举报
回复
感谢顶我。
nanjun520
2012-11-02
打赏
举报
回复
汗 真心的不懂 顶一下
nodirection
2012-11-02
打赏
举报
回复
回帖都有分,谢谢。
mindsky
2012-11-02
打赏
举报
回复
不懂,但是路过帮顶!
nodirection
2012-11-01
打赏
举报
回复
好无助啊。
Elecard StreamEye Studio 3.1(含2.9.0)
媒体开发人员强烈推荐! Elecard.Streameye.v3.1,是一个强大的视频
序列
或码流分析软件,YUV分析,264文件分析软件,H.264视频编解码学习必备的东西,Elecard StreamEye Suite是一套用于专业视频压缩领域的功能强大的工具 ,能够帮助用户进行有效的对于视频
序列
的深入分析,搞流媒体/音视频开发不可缺少的工具!。 所包含软件支持的格式如下: Elecard StreamEye o System Stream MPEG-1 o Video Only MPEG-1/2 o Program Stream MPEG-2 o Transport Stream MPEG-2 o AVC/H.264 Video stream o MP4 (Intermedia Fomat) o H.263 Video stream Elecard YUV Viewer o IYUV o
YV12
o UYVY o YV16 Elecard Video QuEst o
YV12
o UYVY Note: Elecard Video QuEst allows the video quality metrics calculation for any video stream, if the corresponding
DirectShow
?compatible decoder supporting the
YV12
or UYVY output is registered in the system. Elecard Stream Analyzer o MPEG-1 System Stream (ISO/IEC 11172-1) o MPEG-1 Video (ISO/IEC 11172-2) o MPEG-2 Video (ISO/IEC 13818-2) o MPEG-2 Program Stream (ISO/IEC 13818-1) o MPEG-2 Transport Stream (ISO/IEC 13818-1) o AVC/H.264 Video (ISO/IEC 14496-10) o MPEG-1/2 Audio Layer 1/2/3 (ISO/IEC 11172-3 and ISO/IEC 13818-3) o Dolby Digital (ATSC A-52) o AAC (Advanced audio coding) o MPEG-4 Video o VC-1 Video
DirectShow
过滤器开发-H264解码器
介绍H264视频解码过滤器的开发。
视频基础知识汇总
了解视频图像数据的基础
DirectShow
过滤器开发-H264编码器
介绍“H264视频编码过滤器”的开发。
FFmpeg学习(音视频理论知识)
FFmpeg 是一个开源框架,可以运行音频和视频多种格式的录影、转换、流功能,包含了 libavcodec:这是一个用于多个项目中音频和视频的解码器库,以及 libavformat 一个音频与视频格式转换库。
图象工具使用
1,450
社区成员
24,332
社区内容
发帖
与我相关
我的任务
图象工具使用
多媒体/设计/Flash/Silverlight 开发 图象工具使用
复制链接
扫一扫
分享
社区描述
多媒体/设计/Flash/Silverlight 开发 图象工具使用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章