ffserver与x264

      最近打算学习h264,用windows版的git把x264的整个开源工程下载下来了,打算去看一下,同时尽量多做一些实践运用,这个工程应该和介绍h264的标准文档结合起来看,其中涉及很多图像处理的专业和技术性问题,涉及linux和一些数学知识(离散余弦变换DCT,傅里叶变换等)的运用,我对linux和这些数学知识都比较陌生,看来要花很多时间去学习了。

      windows版的git我使用的是msgit,在http://code.google.com/p/msysgit/downloads/list下载,安装后在Git Bash使用命令git clone git://git.videolan.org/x264.git下载开源工程。

    在linux下使用ffplay播放视频时,需要安装sdl库,要让sdl支持ffplay,又要先安装xorg-dev。安装xorg-dev的方法是在liunx终端输入sudo apt-get install xorg-dev(ubuntu发行版)

      ffserver是ffmpeg开源工程的一部分,主要用于把经过ffmpeg程序格式转换和编码后的数据(包括视频、音频、字幕、元数据等)流化,将数据封装在NAL包中便于网络传输,目前支持TCP和RTP协议。

      ffserver的配置文件如下:

打开linux下的一个终端(相当于打开windows下的一个命令行窗口),进入ffmpeg工程的目录,输入./ffserver -f doc/ffserver.conf &

按回车,就把ffserver启动了,如果启动不了,可以改一下ffserver.conf 文件中的端口号配置试一下。

      这时在浏览器地址栏输入http://localhost:8090/stat.html就可以看到打开的ffserver的概况,就现在这个配置文件而言,从这个网页上可以看到有两个流被ffserver输出,一个是test.flv,一个是cloudTest.flv,其中test.flv流需要ffmpeg先把数据编码放在/tmp/feed1.ffm文件中,然后ffserver把feed1.ffm文件中的数据流化成test.flv;而cloudTest.flv流则是最简单的,ffserver直接把本地文件cloud.flv流化为cloudTest.flv,其中不需要ffmpeg参与格式转换和编码,所以这个流比test.flv流要流畅很多

     再打开一个linux终端,在其中输入./ffplay http://localhost:8090/cloudTest.flv就可以直接播放视频文件了。但是输入./ffplay http://localhost:8090/test.flv则访问不了,因为这时ffmpeg还没有开始编码数据,这时tmp/feed1.ffm文件都不存在。

     再打开一个linux终端,在其中输入./ffmpeg -i dog.avi http://localhost:8090/feed1.ffm,同时在另一个终端输入./ffplay http://localhost:8090/test.flv,这时才能访问这个流,观看视频的时候会发现视频播放的很不流畅

     ffserver.conf文件有几个特别关键的配置,一个是输出流的格式,目前的格式是flv,如果是avi或者asf就不行,就访问不了输出流,其他的格式还没有试过;一个是FileMaxSize,如果它小于了本地文件dog.avi文件的大小,则只能播放dog.avi文件的一部分

     此外,ffserver还能流化摄像头实时采集的视频,但我还没尝试过。

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值