社区
多媒体/流媒体开发
帖子详情
网络播放MPEG4问题:如何设置MediaType?
eego
2003-08-21 10:43:22
小弟用Memfile例子实现了网络播放MPEG流,现在想播放MEPG4流,但是不知Mediatype应该设置为什么?
修改Async例子,把MediaType 改为
majortype = MEDIATYPE_Stream
subtype = MEDIASUBTYPE_Avi
后,使用该Filter可以播放MPEG4的文件,但是在播放MEPG4流时却不行,
各位给点意见,,,
...全文
100
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(今天人)试过吗?
VLC 参数详解
它们将被加入
播放
列表队列。 指定的首个项目将被首先
播放
。 选项风格: –选项 用于
设置
程序执行期间的全局选项。 -选项 单字母版本的全局 --选项。 :选项 仅对此选项之前的单条流生效, 且优先级高于先前的
设置
。 流...
vlc 详细使用方法:libvlc_
media
_add_option 函数中的参数
设置
H.264/
MPEG
4 AVC 编码器 (x264) –sout-x264-keyint=<整数> 最大 GOP 大小
设置
IDR 帧之间的最大间隔。较大的帧将节省大小,巍 ¶改进在给予为率下的搜索精确性质量。 –sout-x264-min-keyint=...
Media
Coder压缩参数
设置
常规选项
设置
在常规选项栏中的参数
设置
及含义如下: 输出路径:
设置
最后生成的MP4-AVC所在的目录。 建议:
设置
到的分区有较大的剩余空间 保持文件夹结构:减少文件碎片。 建议:勾选 在...
WinCE开发流媒体
播放
器--
MPEG
4
在过去的10年里,移动技术已经取得了令人难以置信的进步和成就。...最新的Windows CE设备中加入了Windows
Media
Player 10 Mobile,它提供了和PC上的WMP控件一样强大的功能。你可以为你的移动设备增
linux
mpeg
4ip 编译,[操作系统]CentOS6.2下编译
mpeg
4ip
[操作系统]CentOS6.2下编译
mpeg
4ip02012-06-29 01:00:09一、环境1、操作系统版本CentOS 6.2 64位uname -a的输出:Linux localhost.localdomain 2.6.32-220.17.1.el6.x86_64 #1 SMP Wed May 16 00:01:37 BST 2012 x86...
多媒体/流媒体开发
2,541
社区成员
20,280
社区内容
发帖
与我相关
我的任务
多媒体/流媒体开发
专题开发/技术/项目 多媒体/流媒体开发
复制链接
扫一扫
分享
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章