篇二 ffserver打通教程

上一篇,FFmpeg&ffserver安装教程 手动安装 Mac OSX,我们讲解了如何安装FFmpeg和ffserver,但是大家愣是没看到ffserver出场,ffserver是什么,怎么和ffmpeg配合,怎么和播放器使用,一张图看懂。

20190706102130.jpg

简单地说,他可以将FFmpeg输入的视频feed,转换为sream广播出去,供任何播放器和浏览器观看,是不是很酷,现在就来实战下。

基础-广播本地音频

准备配置文件,ffserver.conf

Port 8090
BindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 30000
CustomLog -
NoDaemon

<Stream test.mp3>
File "~/test.mp3"
Format mp2
NoVideo
</Stream>

参数解释:

  • conf根节点配置说明了服务器为本地
  • 服务端口为8090
  • http最大连接数
  • 最大client数
  • 最大带宽
  • 非Daemon模式
  • 使用原始log模式
  • Stream节点为广播内部
  • File标识本地文件地址,文件名为test.mp3
  • 文件格式为mp2
  • 不含有视频

以上都是比较精简的配置,方便演示。详细配置可以man ffserver查阅。

启动ffserver

sudo ffserver -f ffserver.conf

访问音频,你可以直接使用浏览器打开,也可以使用视频软件。

http://localhost:8090/test.mp3

以上是广播本地音频的演示,可以参考这个配置完成本地视频的验证,有问题的可以留言给我。

进阶-广播实时音频

以上只是最基本的样例,现在我们来看如何利用FFmpeg实时录制音频,然后ffserver实时广播音频,达到本地或者内网的任何设备实时监听音频的目的。
ffserver配置ffserver.conf

Port 8090
BindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 30000
CustomLog -
NoDaemon

<Feed 1.ffm>
</Feed>

<Stream audioonline.wav>
Feed 1.ffm
NoVideo
</Stream>

单独解释下Feed,是FFmpeg输出的种子,是ffserver输入的种子。

注意:必须先启动ffserver,然后再启动FFmpeg,否则会找不到数据流源运行失败。

启动ffserver

sudo ffserver -f ffserver.conf

启动ffmpeg向ffserver提供数据流

ffmpeg -f avfoundation -i :0 http://localhost:8090/1.ffm

访问实时音频

http://localhost:8090/audioonline.wav
http://192.168.1.101:8089/audioonline.wav

本机使用localhost访问,局域网的机器可以使用静态IP访问,bingo!

高级-外网广播实时音频

以上都是本地操作,现在我们要做的是外网广播。

举个简单的场景,你的电脑或监控设备在家里,家里是拨号上网,设备在内网。需要将内网设备的视频和音频,甚至是屏幕实时播放给在外面的你,这时候你只需要一个反向代理(具有公网ip),将内网的广播端口8090转发到反向代理80端口,那么你在外网可以使用http://反向代理IP:80/test.mp3 来访问监控设备拉。

architecture.png

以上思路也是远程监控和远程控制的基本思路,下期我们再讲如何利用开源程序+购买公网ECS/VPS进行构建反向代理程序,实现跨网的远程监控。

本次教程结束,欢迎点击头像查看系列教程,持续更新。

广告

vultr

购买vultr ECS/VPS欢迎使用带有优惠的我的链接先注册,支持支付宝付款,以后支付时有优惠5%哦。优惠注册链接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容