社区
多媒体/流媒体开发
帖子详情
网络播放MPEG4问题:如何设置MediaType?
eego
2003-08-21 10:43:22
小弟用Memfile例子实现了网络播放MPEG流,现在想播放MEPG4流,但是不知Mediatype应该设置为什么?
修改Async例子,把MediaType 改为
majortype = MEDIATYPE_Stream
subtype = MEDIASUBTYPE_Avi
后,使用该Filter可以播放MPEG4的文件,但是在播放MEPG4流时却不行,
各位给点意见,,,
...全文
139
11
打赏
收藏
网络播放MPEG4问题:如何设置MediaType?
小弟用Memfile例子实现了网络播放MPEG流,现在想播放MEPG4流,但是不知Mediatype应该设置为什么? 修改Async例子,把MediaType 改为 majortype = MEDIATYPE_Stream subtype = MEDIASUBTYPE_Avi 后,使用该Filter可以播放MPEG4的文件,但是在播放MEPG4流时却不行, 各位给点意见,,,
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xielm
2003-08-26
打赏
举报
回复
// Setup data
//mpeg4
DEFINE_GUID(MEDIASUBTYPE_MPEG4,
0x3447504D, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);
const AMOVIESETUP_MEDIATYPE sudVideoPinTypes =
{
&MEDIATYPE_Video, // Major type
&MEDIASUBTYPE_MPEG4 // Minor type
};
HRESULT CVAVideoRecverStream::GetMediaType(int iPosition, CMediaType *pmt)
{
CheckPointer(pmt,E_POINTER);
CAutoLock cAutoLock(m_pFilter->pStateLock());
HRESULT hr ;
if (iPosition == 0) {
ASSERT (pmt) ;
pmt->InitMediaType () ;
pmt->SetType(& MEDIATYPE_Video) ;
pmt->SetSubtype(&MEDIASUBTYPE_MPEG4);
pmt->SetFormatType(&FORMAT_VideoInfo);
VIDEOINFOHEADER vih;
memset( &vih, 0, sizeof( vih ) );
vih.bmiHeader.biCompression = 0;//BI_RGB;
vih.bmiHeader.biBitCount = 24;
vih.bmiHeader.biSize = 40;//sizeof(BITMAPINFOHEADER);
vih.bmiHeader.biWidth = 352;
vih.bmiHeader.biHeight = 288;
vih.bmiHeader.biPlanes = 1;
vih.bmiHeader.biSizeImage = 304128;//GetBitmapSize(&vih.bmiHeader);
vih.bmiHeader.biClrImportant = 0;
vih.AvgTimePerFrame = 666670;
vih.dwBitRate = 34062336;
pmt->SetFormat((unsigned char *)&vih,sizeof(VIDEOINFOHEADER));
pmt->SetTemporalCompression(TRUE);
hr = S_OK ;
}
return NOERROR;
} // GetMediaType
eego
2003-08-25
打赏
举报
回复
gxqcdit(都市旷野):CSource使用Push Model,它连接什么Filter呢?难道直接把数据传到Decoder Filter? 可否解释一下。
eego
2003-08-25
打赏
举报
回复
gxqcdit(都市旷野):有没有CSource的实例提供参考??
eego
2003-08-25
打赏
举报
回复
PlayStation: 在GF里调试时,SOURCEFILTER怎么也无法同AVI SPLITTER 打通,但却没有任何出错信息.不知道你那边是否有什么出错信息.
-------
我试过的,没有问题。可以直接连接播放。
另外,MediaType设置为
majortype = MEDIATYPE_Stream
subtype = MEDIASUBTYPE_Avi
后,如果把整个文件都接收完整,播放流没有问题。(MPEG4文件开头部分好像是必需的)
但是,如果仅接收部分内容(即发送一段时间后再开始接收),就无法播放。而这种情况,对于MPEG1文件来说是没有问题的。
那位有好建议?
eego
2003-08-25
打赏
举报
回复
gxqcdit(都市旷野): 你的说法与我的想法一致,就不知道实现起来是否可行。检查一下类似的Filter,发现使用CSource的有 "Avi/Wav File Source" Filter.
但是细想一下,CSource Filter是否收到数据就向下送,有没有时间控制的概念?
大家再讨论一下,就结贴拉。
gxqcdit
2003-08-25
打赏
举报
回复
连接Filter Graph其实说到底就是媒体类型一致.
gxqcdit
2003-08-25
打赏
举报
回复
从CSource继承的源Filter从网络接收数据,然后直接连接到Decoder Filter,它们之间Pin的媒体类型就是在采集端的压缩Filter的输出Pin的媒体类型.
gxqcdit
2003-08-22
打赏
举报
回复
从CSource和CSourceStream继承相对简单一点.
PlayStation
2003-08-22
打赏
举报
回复
我把你给我的那个文件试了一下,当以流的形式播放时确实不行.
在GF里调试时,SOURCEFILTER怎么也无法同AVI SPLITTER 打通,但却没有任何出错信息.不知道你那边是否有什么出错信息.
另外,我还发现一个比较奇怪的现象,那就是我把那个文件扩大两倍后,播发时居然还是原来的长度,我觉得很奇怪,因为对于MPEG1或者MPEG2类型的文件,当我扩大两倍播放时,播放长度也就自然扩大成了两倍
forestassure
2003-08-21
打赏
举报
回复
应该可以
eego
2003-08-21
打赏
举报
回复
forestassure(今天人)试过吗?
常用网页
播放
器代码
原地址:http://blog.csdn.net/scs2000/archive/2007/04/02/1548973.aspx常用网页
播放
器代码 我们在网页上看到的
播放
器无外乎WMP/RealOne/Macro
media
Flash Player,其他的无非是面板不同,或者添加了其他控件,对于计算机上安装的一些
播放
器也都是编码和解码器的整合,其最核心的编码和解码技术是相同的。例如:
网络
上最流
ts怎么转换成m3u8直播源_HLS及M3U8介绍
背景 MP4是我们常见的视频格式,往往我们在
播放
服务器视频时直接就是请求的MP4视频源。但其实这样并不好,MP4头文件[ftyp+moov]较大,初始化的
播放
需要下载完整的头文件并进行解析,之后再下载一定长度的可播视频片段才能进行
播放
。另外随着视频尺寸的增大头文件也会不断变大,这个初始
播放
时间也会更长。针对这种情况需要一种能加快视频初始解析的方法,HLS就是苹果提出的用于解决这种
问题
的方...
HLS及M3U8介绍
背景 MP4是我们常见的视频格式,往往我们在
播放
服务器视频时直接就是请求的MP4视频源。但其实这样并不好,MP4头文件[ftyp+moov]较大,初始化的
播放
需要下载完整的头文件并进行解析,之后再下载一定长度的可播视频片段才能进行
播放
。另外随着视频尺寸的增大头文件也会不断变大,这个初始
播放
时间也会更长。针对这种情况需要一种能加快视频初始解析的方法,HLS就是苹果提出的用于解决这种
问题
的方案。...
HLS协议实现多码率和多音轨
多码率和多音轨
探索 HTML5 多媒体世界:从零开始添加视频与音频元素
这篇文章主要介绍了如何在 HTML 文档中添加视频和音频元素,包括使用 `` 和 `` 标签,以及如何处理浏览器的兼容性
问题
。通过学习这篇文章,读者可以了解到 HTML5 中多媒体的基本知识,并能够在实际项目中应用这些知识。
多媒体/流媒体开发
2,554
社区成员
20,277
社区内容
发帖
与我相关
我的任务
多媒体/流媒体开发
专题开发/技术/项目 多媒体/流媒体开发
复制链接
扫一扫
分享
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章