目錄
前言
RTMP是Real Time Messaging Protocol(實時消息傳輸協議)的首字母縮寫。該協議基於TCP,是一個協議族,包括RTMP基本協議及RTMPT/RTMPS/RTMPE等多種變種。RTMP是一種設計用來進行實時數據通信的網絡協議,主要用來在Flash/AIR平臺和支持RTMP協議的流媒體/交互服務器之間進行音視頻和數據通信。——摘錄自百度。 如果大家想對RTMP有更深的認識,可以參看這篇文章:《帶你喫透RTMP》。
本文要處理的是:用crtmpserver搭建服務器,用來做推拉流的中轉。也就是ffmpeg推流到crtmpserver服務器,然後VLC從服務器拉流播放。那麼這個服務器怎麼搭建呢,下面就詳細的記錄一下。
環境準備及編譯
1、win10上,裝VMWare Workstation, 然後安裝Ubuntu16.04.
2、準備各種工具,看看是否需要更新。
// 如果沒有cmake, 那就安裝
apt-get install wget cmake
// 如果沒有libssl-dev , 通信用到的庫, 就先安裝
apt-get install libssl-dev
3、 準備文件並編譯
// 新建一個文件夾
mkdir crtmp
// 進入這個文件夾
cd ctrmp
// 然後下載文件:
wget https://codeload.github.com/j0sh/crtmpserver/zip/centosinit
// 解壓
unzip centosinit
// 得到 crtmpserver-centosinit, 進入這個文件夾
cd crtmpserver-centosinit
// 進入到builder
cd builders
// 進入到cmake
cd cmake
// 可以看到這裏有Makefile文件,執行
cmake
make
// 編譯完之後,執行下面這句話,就可以執行了
./crtmpserver/crtmpserver ./crtmpserver/crtmpserver.lua
// 在上面那句話執行的過程中,不要中斷,就可以進行測試了。
// 如果想要結束,直接ctrl+c ,就能中斷
測試
方式一:
準備好我們下載的ffmpeg—shared版本,進入bin,找到 ffmpeg.exe, 在這個文件中放一個flv文件。
然後在這個文件夾的目錄欄中,輸入 cmd, 進入命令行:
ffmpeg -i China.flv -f flv rtmp://192.168.87.6/live/test1
打開VLC, 媒體——>打開網絡串流,輸入:rtmp://192.168.87.6/live/test1, 播放。
可以看到推流的文件,進行播放了。
方式二:
準備好ffmpeg-dev版本,建一個win32的控制檯工程,將include lib dll等,都包含進去。然後寫代碼,把文件讀入,進行推流。拉流依然用VLC。
播放文件推流:推流端需要控制進度、速度。根據文件的fps進行控制。這一部分,還是需要特別注意的。
稍後上傳代碼。