發現好久沒有寫部落格了,最近一直在糾結著sdio wifi的驅動,至此還沒有完美的解決問題,雖然可以串連上網路,但是其傳輸速度之慢,讓人難以接受。不過對於網路,不管是底層驅動,還是一些網路基礎知識,路由器,伺服器等等也學了不少東西了。更加深入學習後,可以分享學習過程。
期間,用6410來驗證代碼和sdio的硬體,還受高人指點,順帶玩了下ffmpeg+ffserver流媒體的傳輸。確實很不錯。因為這條路通了之後,那麼網路攝影機採集到資料,通過ffserver可以直接網路傳輸,然後client就可以收到其資料,那麼網路監控也就可以通了。哈哈哈,下面還是把這個過程記錄下來。有高手指導,這個確實花了一點點時間就搞定了。
首先當然就是下載ffmpeg了。git clone或者直接官網http://ffmpeg.org/下載都可以。,下載好了,那麼首先就是配置下了。下面是我的配置:參照高手的,不用動態庫,直接靜態庫,所以編譯好以後可以直接拷貝一個應用程式就可以在ok6410上面跑了。
./configure --disable-shared--enable-static --prefix=/home/eastmoon/ok6410/rootfs/ffmpg--cross-prefix=/usr/local/arm/4.2.2-eabi/usr/bin/arm-linux- --arch=arm--target-os=linux --enable-gpl --disable-bzlib --disable-zlib
這樣編譯後就有了ffmpeg和ffserver了,然後把這兩個拷貝到ok6410的rootfs/bin下(我是用網路掛載nfs的),那麼在開發板上就可以直接ffserver命令試試可不可以成功運行了。
既然可以運行這個程式,那麼還是缺少一個ffserver.conf設定檔。在ffmpeg源碼中的doc目錄下就有這個了。主要拿來就可以用了。主要就是添加了下面這個,因為要播放本地的資料。然後把一個mpeg格式的源test1.mpeg和這個設定檔ffserver.conf一起放在rootfs/ffserver檔案夾下。
<Stream test2.mpg>File /ffserver/test1.mpegFormat mpeg</Stream>
好了,一切準備就緒,那麼接下來就是要開始串連測試下ffserver這個服務有沒有運行了。在開發板上運行ffserver –f /ffserver/ffserver.conf
可以看到下面這個,
接著在pc機上就可以用瀏覽器開啟了,因為我的板子的ip是192.168.5.120,ffserver啟動配置裡面的連接埠號碼是8090.所以在瀏覽器裡面輸入:
http://192.168.5.120:8090/stat.html就可以看到下面的網頁,那就表示ffserver正常運行了。
既然ffserver正常了,那麼接著去試試播放吧。
在pc機上用ffplay接可以嘗試了(事先要裝好)。
ffplay http://192.168.5.120:8090/test2.mpg。
看到播放的視頻了,也聽到了聲音。
這裡只是簡單的使用了ffmpeg,以後還是需要看看其源碼,因為他是專門用來編解碼的。所以,很多音視頻都是可以從這裡裁剪的。很好,很強大。等有時間得把網路攝影機搞進去。Wifi已經木有什麼問題了。所以,搞定網路攝影機資料擷取編碼後剩下的就很簡單了。