標籤:build add 跳轉 logs 環境 linu 進程 分享 pat
使用FFMPEG在windows平台下推rtmp流
工作中習慣在Linux下面使用FFmpeg類比推rtmp流,無奈家中的電腦都是windows系統,需要利用家中的頻寬來測試流媒體伺服器的效能。所以研究了一下如何在windows系統中快速推流。
首先下載安裝ffmpeg
下載windows下的FFMPEG壓縮包,解壓到目前的目錄,見(如何快速並上傳到圖傳?)
我們使用的是ffmpeg-20180429-19c3df0-win64-static\bin路徑下的ffmpeg.exe檔案。
寫兩個指令碼實現推流
可以使用windows批處理或者powershell指令碼,但都得實現兩份,所以最好能夠重用Linux下的shell指令碼。
安裝Cygwin
下載安裝Cygwin。
兩個Cygwin命令
$ cd /cygdrive/f
- 設定環境變數,將ffmpeg的bin目錄加到環境變數中
$ export PATH=$PATH:/cygdrive/f/Harlan/Software/ffmpeg-20180429-19c3df0-win64-st atic/bin/
迴圈推流shell指令碼
建立一個shell指令檔pushstream.sh,內容如下
#!/bin/bashfor((;;)); 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。
推多路流的shell指令碼
將推流的進程啟動為守護進程,建立一個指令碼push_all.sh:
#!/bin/bashsetsid ./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
可以看到有四路流在後台同時在推:
使用FFMPEG在windows平台下推rtmp流