如何用FFmpeg将本地MP4推流至Wowza服务器并查看流?
嘿,既然你已经确认笔记本和Wowza服务器能互相ping通,那基础网络链路没问题,接下来我给你一步步梳理从本地用FFmpeg推流到Wowza的完整流程,以及在Wowza端查看、测试流的方法:
一、先搞定Wowza端的前置配置(确保能接收你的流)
首先得在Wowza上创建一个能接收直播流的应用,步骤很简单:
- 打开浏览器访问Wowza管理控制台:
http://192.168.1.22:8088/enginemanager,用管理员账号登录(默认账号密码一般是admin/admin,改过的话用自己设置的即可)。 - 创建直播应用:
- 左侧导航栏点「Applications」,然后点「Add Application」。
- 选择「Live」类型(专门用于直播推流的应用类型),输入一个应用名称(比如
my_live_stream,或者用默认的live也可以),一路点下一步完成创建。
- 确认推流权限:
进入刚创建的应用,切换到「Setup」标签页,找到「Stream Sources」部分,确保「Allow incoming streams」是开启状态(默认是开的,但最好确认下避免踩坑)。暂时先做无验证测试,后续需要的话再配置流验证。
二、FFmpeg本地推流命令(针对你的.mp4文件)
直接用下面的命令,记得替换成你本地视频的实际路径:
ffmpeg -re -i /home/yourname/videos/test.mp4 -c:v libx264 -preset medium -b:v 2000k -c:a aac -b:a 128k -f flv rtmp://192.168.1.22/live/stream_demo
给你拆解下每个参数的作用,方便按需调整:
-re:强制FFmpeg按照视频的实际帧率推流,避免推流速度过快导致Wowza端处理不过来。-i /home/yourname/videos/test.mp4:替换成你本地.mp4文件的绝对路径,别写错了。-c:v libx264:用H.264编码视频,这是Wowza支持最好的视频编码格式,兼容性拉满。-preset medium:平衡编码速度和视频质量,适合直播场景——如果笔记本CPU性能一般,可以换成fast;追求质量的话用slow,但编码速度会变慢。-b:v 2000k:视频比特率设为2Mbps,可根据网络带宽调整,网络好可以升到3000k,卡顿的话降到1500k。-c:a aac:用AAC编码音频,是Wowza支持的标准音频格式。-b:a 128k:音频比特率128kbps,这个参数一般不用改,足够清晰。-f flv:指定输出格式为FLV,这是RTMP推流的标准容器格式,Wowza完美支持。rtmp://192.168.1.22/live/stream_demo:推流地址,其中live是你刚才创建的应用名称,stream_demo是自定义的流名称(可以改成任何你喜欢的名字,比如my_first_stream)。
执行命令后,如果终端里不断输出帧率、比特率的实时统计信息,说明推流已经正常运行;如果有错误,直接看终端的报错提示就能定位问题(比如路径不对、编码不支持等)。
三、Wowza端查看流状态+播放测试
推流成功后,你可以在Wowza端确认流的状态,还能直接测试播放:
查看推流状态
- 回到Wowza管理控制台,进入你创建的应用,切换到「Stream Manager」标签页:
如果推流成功,这里会显示你设置的流名称(比如stream_demo),状态是「Active」,还能看到流的比特率、帧率、连接时长等详细信息。 - 日志排查问题:如果推流没成功,左侧导航栏点「Server」→「Logs」,查看
access.log或者error.log,里面会记录推流的连接请求和错误信息,方便定位问题。
播放测试流
有两种方式可以测试播放:
- 用Wowza自带的播放器:
在「Stream Manager」里找到对应的流,点击「Play」按钮,会弹出播放器窗口,选择想要的播放协议(比如RTMP、HLS),就能直接播放。 - 用第三方播放器(比如VLC):
- RTMP播放地址:
rtmp://192.168.1.22/live/stream_demo - HLS播放地址:
http://192.168.1.22:1935/live/stream_demo/playlist.m3u8(默认HLS端口是1935,确保Ubuntu服务器的防火墙开放了这个端口)
- RTMP播放地址:
一些额外的注意事项
- 确保Ubuntu服务器的防火墙开放必要端口:用
ufw allow 1935/tcp开放RTMP端口,ufw allow 8088/tcp开放管理控制台端口,需要UDP推流的话再加ufw allow 1935/udp。 - 如果你的.mp4文件本身就是H.264+AAC编码,FFmpeg会直接封装成FLV推流,不用转码,速度很快;如果是其他编码,FFmpeg会自动转码,但会占用更多CPU资源。
- 如果推流过程中卡顿,可以降低视频比特率,或者把
-preset改成fast来提升编码速度。
内容的提问来源于stack exchange,提问作者ST94
相关产品推荐
相关产品推荐

