工做中习惯在Linux下面使用FFmpeg模拟推rtmp流,无奈家中的电脑都是windows系统,须要利用家中的带宽来测试流媒体服务器的性能。因此研究了一下如何在windows系统中快速推流。html
下载windows下的FFMPEG压缩包,解压到当前目录,见下图(如何快速截图并上传到图传?)shell
咱们使用的是ffmpeg-20180429-19c3df0-win64-static\bin路径下的ffmpeg.exe文件。windows
能够使用windows批处理或者powershell脚本,但都得实现两份,因此最好可以重用Linux下的shell脚本。bash
下载安装Cygwin。服务器
跳转到其余盘符ide
$ cd /cygdrive/f
性能
设置环境变量,将ffmpeg的bin目录加到环境变量中测试
$ export PATH=$PATH:/cygdrive/f/Harlan/Software/ffmpeg-20180429-19c3df0-win64-st atic/bin/
ui
建立一个shell脚本文件pushstream.sh,内容以下3d
#!/bin/bash for((;;)); do \ ffmpeg -re -i "..\videos\test-$1.mp4" -c copy -f flv "rtmp://stream_media_server_address:1935/live/test-$1/test-$1" sleep 1; \ done
注意添加了一个参数$1。
将推流的进程启动为守护进程,建立一个脚本push_all.sh:
#!/bin/bash setsid ./pushstream.sh 20 >/dev/null 2>&1 < /dev/null & setsid ./pushstream.sh 30 >/dev/null 2>&1 < /dev/null & setsid ./pushstream.sh 40 >/dev/null 2>&1 < /dev/null & setsid ./pushstream.sh 60 >/dev/null 2>&1 < /dev/null &
执行下面的命令启动脚本:
$ ./push_all.sh
能够看到有四路流在后台同时在推: