Directshow接受rtp流后加自定义transform filter无法播放

姚小白 2016-09-27 02:49:12
如下图是链路,可以看到在还没接受的时候ffdhsow 的 output pin的大小是320*160,应该是一个默认值:


当接受到流后,可以看到,ffdshow输出变成了视频流的大小:1920*960,然后视频能播放:


然后我在ffdshow后加上自己的transform filter,却无法播放,在接受到流后仍为320*1670:


当打开本地文件后,通过我自己的transform filter也能播放,就是通过网络传输得到的H264流就无法播放,应该是媒体格式的问题吧? 求指点
...全文
726 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
姚小白 2016-09-29
  • 打赏
  • 举报
回复
引用 1 楼 rightorwrong 的回复:
自己的transform filter播放H264流有问题,你是怎么调试的。自己filter的输入pin媒体格式是什么 你知道输入pin的媒体格式么
自己filter的输入格式我限定为了 rgb32,输入pin的媒体格式我不知道,只有在运行的时候Recv filter就受到,然后通知ffdshow,ffdshow通知renderer成功,但自己的filter好像就不行
姚小白 2016-09-28
  • 打赏
  • 举报
回复
引用 1 楼 rightorwrong 的回复:
自己的transform filter播放H264流有问题,你是怎么调试的。自己filter的输入pin媒体格式是什么 你知道输入pin的媒体格式么
没有处理输入pin的格式。首先在链接这个graph的时候显示ffdshow输出320*160,然后我的transformfilter输入也是320*160。 如果不加transfoerm filter,直接在ffdshow后加video renderer,链接的时候也是320*160.但当有媒体流发送过来后ffdhsow 输出及video renderer输入自动变成了1920*960,即媒体流的大小。 我的问题是加入自己的transform filter后即使有流来了,也不会改变大小,始终是320*160。 刚开始写filter,不知道自动改变大小是如何实现的。 我的理解是RecvFilter接受到流里面的格式信息后通知ffdshow,ffdshow又重新和下游video renderer商议格式,所以改变了大小,不知道这样理解对不对
rightorwrong 2016-09-28
  • 打赏
  • 举报
回复
自己的transform filter播放H264流有问题,你是怎么调试的。自己filter的输入pin媒体格式是什么 你知道输入pin的媒体格式么

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧