天天看點

使用nginx+nginx-rtmp-module+ffmpeg搭建流媒體伺服器筆記(十)

第十部分 -- 開發闆測試

前幾天已經分别将nginx和ffmpeg移植到了開發闆上面,但是還是沒有進行任何的測試并不知道移植後的效果如何。

今天分别做了兩個測試,證明移植的結果是可用的。

1、測試ffmpeg

對于nginx的測試在移植完成後就已經進行過了,當然就是簡單的能夠顯示nginx歡迎界面而已,但是對我來講,nginx能用就行,并沒有對他進行深一步的測試。

但是對于ffmpeg不測試下總感覺不放心,雖然移植時運作顯示可以,但是還不知道它能不能工作,是以首先用它進行了視訊格式轉換的測試。

測試很簡單,将sd卡中的一個.264檔案轉換成mp4格式:

[email protected]:/sdcard/Movies # cd /data/misc/ffmpeg/                            
[email protected]:/data/misc/ffmpeg # ll
-rwxrwxrwx root     root      9145536 2015-03-10 10:48 ffmpeg-android
<pre name="code" class="plain">[email protected]:/data/misc/ffmpeg #./ffmpeg-android -i /sdcard/Movies/test.264 /sdcard/Movies/output.mp4                             
           
使用nginx+nginx-rtmp-module+ffmpeg搭建流媒體伺服器筆記(十)
<pre name="code" class="plain">[email protected]:/data/misc/ffmpeg # cd /sdcard/Movies/                            
[email protected]:/sdcard/Movies # ll
-rw-rw-r-- root     sdcard_rw  4473874 2015-03-12 23:51 output.mp4
-rw-rw-r-- root     sdcard_rw  6193066 2015-01-16 14:22 test.264
           

結果成功将将sd卡中test.264檔案轉換成output.mp4格式。

我還嘗試過将.264檔案還原成.yuv格式,結果震驚了:

上述的test.264大小為6.2M,轉換成.yuv格式之後大小為1.6G,着實吃了一驚。這壓縮的太厲害了。

2、測試流媒體伺服器工作情況

最關鍵的地方到了,成敗在此一舉阿。

(1)開啟nginx

[email protected]:/data/misc/nginx-rtmp/sbin #./nginx -p /data/misc/nginx-rtmp -c conf/nginx.conf
           

(2)ffmpeg推流到nginx

[email protected]:/data/misc/ffmpeg #./ffmpeg-android -i  rtsp://admin:[email protected]  -vcodec copy -acodec copy -s 640x480 -f flv rtmp://192.168.1.88:1935/hls/test2
           

結果:

使用nginx+nginx-rtmp-module+ffmpeg搭建流媒體伺服器筆記(十)

程式成功運作,但是存在問題如上圖所示,暫時還不知道怎麼回事并沒有對監控視訊擷取産生影響,在chrom浏覽器中輸入位址

http://192.168.1.88:80/hls/test2.m3u8 
           

可以成功顯示出監控視訊。

使用nginx+nginx-rtmp-module+ffmpeg搭建流媒體伺服器筆記(十)

我的錄影機和開發闆是用網線直接連接配接起來的,開發闆搭載android系統,使用上面的chrom浏覽器播放監控視訊:

使用nginx+nginx-rtmp-module+ffmpeg搭建流媒體伺服器筆記(十)

經過一段時間的測試:延時比在pc機上面測試時要多一點,延時大約在35s左右。這可能會與開發闆性能有關系。

3、總結

到今天為止,終于在arm闆上搭建成功了支援hls的流媒體伺服器,總結一句話:

~~~~移植真蛋疼~~~~