工做中習慣在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
能夠看到有四路流在後臺同時在推: