新手问一个关于使用DirectShow 实现实时流接收、解码、播放的问题
本学期做毕业设计,和几位师兄共同完成,我的部分是在PC机端做一个播放器,可以实时接收前边传来的RTP封装的H264视频数据流 ,并完成实时解码播放功能
请问用 DirectShow 可以实现吗?若可以,需要用到和自己编写哪些Filter 呢?
谢谢:)
[解决办法]
可以,需要自己包装“网络数据接收”、“音视频分离”、“音频解码”、“视频解码”这些Filter。
其余的根据具体需要,如果只是解码显示上面四个再加上默认的RenderFilter就够了。
[解决办法]
rtp source filter 是用来接受网络数据的源filter,你可以构建这样的graph链路
-->h264 video decoder ->video render
rtp source filter-->h264 spliter filter
--> audio decoder ->audio render
如果h264的流是用ts打包的,h264 spltser filter,j就用 ts demux可以了
[解决办法]
可以不用filter 直接搞定
接收是一部分 解码时一部分 显示是一部分
接收可以用jrtplib,解码可以用ffmpeg 显示可以用directdraw
filter可以直接用ffdshow就可以
[解决办法]
我的建议是sourcefilter自己写,因为以后功能的扩充大多在source filter一级。
[解决办法]