ffdshow如何进行H264编码

kimkorj 2011-10-27 04:57:47
希望利用ffdshow、directshow进行视频的压缩与传输,在graphEdit下建立验证性filter graph如下:视频采集filter-》ffdshow编码filter-》ffdshow解码filter-》视频显示filter,但是查看‘ffdshow编码filter’时发现没有H264编码器,请问如何用ffdshow进行H264编码?请各位指教~
...全文
487 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
greenfloweryeahnet 2011-10-31
  • 打赏
  • 举报
回复
我这里也有问题阿:
客户端用CSocket接收服务器端的发送的H264流媒体信息,刚开始可以,多次Receive后返回10054错误

主要有两个问题:
1>如果每次receive完后,sleep(1)后,客户端用CSocket接收服务器端的发送的H264流媒体信息,刚开始可以正确,多次Receive后返回10054错误,就是服务器端关闭了连接,感觉好像自己发送receive请求的速度达不到服务器端的要求.
2>如果每次receive完后,不用sleep(1)后,客户端到可以一直receive,不会返回10054,但问题是刚接收的数据可以正确解析,但以后接收到的长度信息解析出来就出错了,好像自己发送receive请求的速度超过了服务器端的要求

因为服务器端的数据发送软件是厂商提供的EXE,自己没有代码,如果解决的话,除了这一百分,还会有其它的言谢,如果需要服务器端的发送软件和自己写的客户端代码,请加我QQ:1214615347,可以大家一起讨论下

客户端代码如下:

AfxSocketInit(NULL);
CSocket sockClient;
sockClient.Create();
sockClient.Connect("127.0.0.1", PORT);

char sendbuf[38]=........;//走TCP给服务器发送连接信息
sockClient.Send(sendbuf,38);

unsigned short ltemp;
sockClient.Receive(<emp, 2);//接收确认包长度

byte* data=new byte[ltemp];
sockClient.Receive(data, ltemp);//接收确认包提供媒体信息

int j=0;

unsigned short mylen=0;


while((j++)<1500)
{

int error=sockClient.Receive(&mylen, 2); //Get length

printf("sock return %d;\n",error);

int geterror=GetLastError();

printf("sock get last error %d;\n",geterror);

printf(" %d original length is %d;\n",j,mylen);

mylen=(mylen<<8)+(mylen>>8);

printf("length is %d;\n",mylen);


byte* data2 = new byte[mylen];

sockClient.Receive(data2, mylen);

int geterror2=GetLastError();

printf("sock get 2 last error %d;\n",geterror2);

printf("pt is %d;\n",data2[1]);

//..................接收的数据处理

delete[] data2;
Sleep(1);//如果不做延时的话,接收完几笔数据后,就会出现接收到的长度信息不正确

}//1500 times



//发送退出包
pt->RequestData=2882338816;
sockClient.Send(sendbuf,38);

sockClient.Close();
kimkorj 2011-10-28
  • 打赏
  • 举报
回复
编译X264后生成一个lib文件,一个X264.exe文件,请问怎么使用呀?如何添加进ffdshow?
kimkorj 2011-10-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zoulie 的回复:]

ffdshow用的是x264,你自己封装下也可以
[/Quote]
X264的源代码拿到了,格式是tar.bz2的,是要在Linux下,或者windows下的minGW中编译么?不知道该怎么理解封装的意思,请赐教,谢谢你的回答。
kimkorj 2011-10-28
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 vansbluge 的回复:]

http://ffdshow-tryout.sourceforge.net/download.php
里的安装文件是完整版的,支持H264编解码
[/Quote]
请问你下载的是那个文件呀?我从那个网站下的,安装完还是不行。。
kimkorj 2011-10-28
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 vansbluge 的回复:]

http://ffdshow-tryout.sourceforge.net/download.php
里的安装文件是完整版的,支持H264编解码
[/Quote]
有点事儿,稍后回来结贴~非常感谢~
kimkorj 2011-10-28
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 vansbluge 的回复:]

http://ffdshow-tryout.sourceforge.net/download.php
里的安装文件是完整版的,支持H264编解码
[/Quote]
谢谢你啊~我再看看,难道是安装过程出问题了~
vansbluge 2011-10-28
  • 打赏
  • 举报
回复
http://ffdshow-tryout.sourceforge.net/download.php
里的安装文件是完整版的,支持H264编解码

kimkorj 2011-10-28
  • 打赏
  • 举报
回复
也就是说只有自己编译源文件才能选择编译上h264的编码功能,直接下的安装文件就不能扩展对H264编码的支持了?
kimkorj 2011-10-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 vansbluge 的回复:]

ffdshow里并不直接使用x264项目出来的库, 而是ffdshow修改过的,在ffdshow工程目录下

ffdshow\trunk\src\codecs\x264执行里面的Makefile
[/Quote]
我的ffdshow是下载的安装包,并不是工程编译来的,找不到这个文件,
我的ffdshow下载网址是http://ffdshow-tryout.sourceforge.net/download.php,好像只提供安装包的下载啊。。
vansbluge 2011-10-28
  • 打赏
  • 举报
回复
ffdshow里并不直接使用x264项目出来的库, 而是ffdshow修改过的,在ffdshow工程目录下

ffdshow\trunk\src\codecs\x264执行里面的Makefile
zoulie 2011-10-27
  • 打赏
  • 举报
回复
ffdshow用的是x264,你自己封装下也可以
kimkorj 2011-10-27
  • 打赏
  • 举报
回复
大家帮帮忙呀~在线等~~
H264编码器标准草案发布时,很多人都觉得H.264太复杂,不宜实用。眨眼间3年过去了,以往的论断、疑惑被如今的现实冲洗的干干净净。一张7.92G的1小时50分的av,分辨720*480,用Ahead dvd ripper,现在用最新的ffdshow h264编码(4线程,码率1500k),需要1小时10分左右。cpu吃不完,占用率在50%左右。 采用H.264编码,将视频文件压缩转换为MP4/3GP/F4V/AVI格式.绿色软件,使用方便,压缩速度快,图像质量好. 本软件使用Windows系统注册解码器进行视频解码.Windows Media Player能够播放的视频格式,本软件都可以进行压缩.对于不支持的视频格式,可以安装解码包,如ffdshow, 影音风暴等. H264编码器功能: 1、四路视频实时预览,也可利用Web界面对多路直播信号远程集中管理进行配置管理, 2、领先的码率控制技术(CBR/VBR),使其能轻松运作于280Kbps~ 6000Kbps之间。 3、可变的GOP结构:I,IP,IBP,IBBP。 4、PCM音频信道。 5、指纹式植入的视频流的音频处理技术,使得视音频实时同步。 6、支持输出文件格式:FLV,MPEG-4,MPEG-2及HTTP,RTSP,UDP网络协议。 7、支持VBR及CBR压缩方式。 8、支持多种分辨率:FULL,D1等; 9、可将录制FLV格式文件再转换为MP4格式文件进行存储; 10、支持自动录制和手工录制; 11、能设定自动录制计划,时间设定为某月某周某日时分秒,自动进行录制; 12、每路直播信号,能设定不同时段的定时任务; 13、可设定录制文件保存路径; 14、支持网络存储,如NASNAS SAN等网络环境。 H264编码器截图:

2,553

社区成员

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

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