使用FFmpeg将视频推流到crtmpserver,通过vlc拉流播放(通过命令的方式)

  安装完FFmpeg,crtmpserver,vlc后就可以进行推流、拉流测试了。博主的crtmpserver安装在VMWare的Ubuntu中(安装方法可以参考https://blog.csdn.net/u014552102/article/details/86552823),ffmpeg和vlc都安装在windows中(win10)。

 

一、推流

  推流,指的是把采集阶段封包好的内容传输到服务器的过程,主播端把本地采集的语音视频流推送到媒体服务器。就是将现场的视频信号传到网络的过程。在本博文中我们会将主机windows中的媒体文件video5.mp4推流到虚拟机Ubuntu的流媒体服务器crtmpserver中,然后通过windows下的vlc播放出来。

 

 首先启动Ubuntu,在Ubuntu中执行命令:

ifconfig

 

如下图所示,可以看到Ubuntu的ip地址是192.168.1.108。记住这个地址。推流和拉流都要用到这个地址。

 然后启动crtmpserver,在Ubuntu中执行命令:

./crtmpserver/crtmpserver ./crtmpserver/crtmpserver.lua

 

当出现如下界面时,表示crtmpserver启动成功了。

 

然后我们来到FFmpeg安装目录。博主的FFmpeg安装在主机的win10下,如下图所示,文件夹里面有ffmpeg.exe和其依赖的dll,还有媒体文件video5.mp4。我们通过ffmpeg将video5.mp4推流到流媒体服务器crtmpserver中。

 

在windows的命令提示符中执行命令:

ffmpeg -i video5.mp4  -f flv rtmp://192.168.1.108/live/test1

其中-i 表示输入流。这里的输入流是video5.mp4。-f 表示设定的输出格式。这里因为要推流,推流得使用flv格式,所以设成-f flv。192.168.1.108是要推流到的流媒体服务器所在的Ubuntu的ip地址。上述语句的意思是通过ffmpeg将媒体文件video5.mp4推流到ip地址为192.168.1.108的平台中。

 

执行完上述命令,会出现如下界面,表示推流成功了。

 

二、拉流

  拉流指的是用户端从服务器拉取语音视频流到客户端播放。在本博文中我们会通过vlc拉流Ubuntu的crtmpserver中的语音视频流,然后在vlc播放。

 

执行完上述推流的步骤后,我们在windows中打开vlc,点击“打开网络串流”,如下图所示:

 

输入网络URL,如下图所示:

 

可以看到在vlc中出现视频画面了,表示拉流成功了

 

三、遇到的问题:

1.视频模糊:执行上述推流、拉流的流程,我们可能会发现在vlc播放出来的视频很模糊。这个时候我们可以在使用ffmpeg推流时加入-c -copy参数。-c -copy表示拷贝所有流。如下所示:

ffmpeg -i video5.mp4  -f flv -c copy rtmp://192.168.1.108/live/test1

如下图所示,我们会发现画面清晰很多:

 

2.执行推流命令显示:Cannot open connection tcp://XXX,如下图所示:

 

产生这个问题的原因很可能是因为网络问题,或者输入的ip地址不对。我们得检查一下主机是否能ping通虚拟机,是否能连接上网络,输入的ip地址是否是服务器所在的平台的ip地址,流媒体服务器是否被成功启动了。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值