ffmpeg的使用

当初毕业设计的题目选了视频直播,真是一时冲动啊。

于是想到用ffmpeg,它太出名了。找到的资料一大堆,看了一下又没有自己想要的,那时候的自己只是想了解如何入门,如何使用ffmpeg。如今毕业答辩已过,分数以出,空闲之余记录下心得。


ffmpeg开源,下载到源码后,编译是个问题。特别是在window下编译花费了很多时间,具体步骤有人已经总结了:http://www.360doc.com/content/12/0719/18/2660674_225285935.shtml

其实window下的编译不是必要的,因为已经有人帮忙编译了,http://ffmpeg.zeranoe.com/builds/

static版本是静态编译版本,shared是有动态链接库,dev这个是开发版本。


linux下的编译就简单了,装好yasm这些环境,对ffmpeg源码configure,make,make install,make clean就好了。


目标:搭建一个视频直播系统,c/s架构,服务端运行在linux系统下,录制客户端和播放客户端都在window下。

测试环境:window系统,linux虚拟机。

程序:window需要ffmpeg.exe(可以在static那里得到),播放器(ffplay.exe,vlc等都可以)

linux需要ffserver。


首先要编写好配置文件ffserver.conf:

Port 9999
BindAddress 0.0.0.0
MaxClients 1000
MaxBandwidth 100000

<Feed feed1.ffm>
File feed1.ffm
noAudio
FileMaxSize 100K
</Feed>

<Stream test.flv>
Feed feed1.ffm
Format flv
noAudio
StartSendOnKey
</Stream>

<Stream movie.flv>
file /root/work/rtspSer/vod/movie.flv
Format flv
</Stream>

<Stream stat.html>
Format status
</Stream>

9999是服务端口,feed1.ffm和test.flv是直播部分,movie.flv是点播部分,stat.html是一个概览页面,可以用http://ip:9999/stat.html来访问它。

更多配置可以参考http://www.ffmpeg.org/ffserver.html

然后运行ffserver -f ffserver.conf



接着在window下录制视频,并上传到服务器,vfwcap是采集设备设备,也可以用dshow,具体可以用那些设备,参考http://www.ffmpeg.org/ffmpeg-devices.html

还可以指定分辨率和码率等各种参数,这里用默认的参数。


注意这里只采集了视频,没有音频。


最后一步,播放



直播效果如下,时延根据ffserver.conf里的

FileMaxSize 100K

数据不同而有不同的影响。



总之,这是利用ffmpeg现有程序搭建直播系统的最简单的例子。(简单到我后来舍弃掉它,因为毕业题目要自己写代码)

而ffmpeg.exe,ffserver这些都是利用ffmpeg库写出来的程序,我们可以参考它里面的代码,完成自己的程序。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值