熊愛金 劉奇 馮艷清 趙懷玉
(1.同方電子科技有限公司 江西省九江市 332000 2.天津航海儀器研究所 天津市 300131)
(3.南昌師范學院 江西省南昌市 330000)
廣播監測接收機可完成對無線電信號監測、管理等任務,形成獨立的無線電監測管理系統,提高無線電監測工作的準確性和可靠性,適用于國家無線電管理、民航、廣電等部門的無線頻譜監測系統。對進行頻管資源規劃,頻率審批,臺站設置、驗收、調整,為查處違法行為提供技術依據,在無線電信號和電磁環境的監聽、監測等工作中發揮重要作用。廣播監測接收機工作中產生的原始音頻數據尤其重要,利用開源的免費軟件FFmpeg 中的ffmpeg.exe 和ffserver.exe 實現實時播放功能。
FFmpeg 是一個知名的開源自由軟件,它提供了錄制,轉換和流化音視和視頻的開放源代碼的解決方案[1]。主要由libavformat、libavcodec、ffmpeg、ffserver 和ffplay 等組成,項目主要組成[3]如表1所示。FFmpeg 其本身是在Linux 平臺下開發[2],事實上FFmpeg 兼容性和移植性也很好,支持在非常普及的Windows、Mac OS X 等平臺下編譯并在應用中使用。這個命名中的前面部分是英文“Fast Forward”的首字母縮寫,后面部分源于MPEG 視頻編碼標準。FFmpeg 支持直接使用可執行文件,同時由于源代碼開放又支持源代碼操作;FFmpeg 不僅可以用來處理本地流,同時也可以用來處理實時的網絡流。本文應用的是在Windows 平臺下編譯FFmpeg 產生的可執行文件,ffmpeg.exe 和ffserver.exe,即命令行操作,實現轉換實時的網絡流及網絡傳輸和實時發布。FFmpeg項目的主要組成如表1所示。
大概實現過程如下:

圖1:啟動ffmpeg.exe 后的運行界面

圖2:啟動ffserver.exe 后的運行界面

圖3:ffserver.conf 文件的主要配置

表1:FFmpeg 項目的主要組成

圖4:ffserver.exe 運行界面

圖5:ffmpeg.exe 的運行界面

圖6:遠程在線監聽
首先,準備工作。到官網下載Windows 下的一套源碼并解壓,同時下載編譯環境cygwin 和編譯工具gcc 并安裝,然后在cygwin環境下對ffmpeg 源碼進行編譯,按所需參數的格式,利用命令行“ ./configure --enable-memalign-hack --enable-ffserver --enablenetwork --enable-protocols --enable-muxers --enable-demuxers --enablelibmp3lame --enable-protocol=file --enable-protocol=pipe --enableprotocol=udp --enable-protocol=tcp --enable-protocol=http --disableyasm”,和“ make &make install”,生成所需的可執行文件:ffmpeg.exe 和ffserver.exe 即可。
第二,實時音頻格式轉換并轉發。ffmpeg.exe 用來實現將實時音頻原始數據轉換成.mp3 格式的數據。由于FFmpeg 的常用編碼器中并不支持MP3 音頻編碼器,為此,需要在編譯過程中加入動態庫cygmp3lame-0.dll 支持MP3 編碼。在此過程中我們需要將通過網口接收到來自廣播監測接收機的實時原始音頻數據轉換成.mp3 數據,并同時將轉換后的.mp3 數據實時發送到feed1.ffm。按實際音頻數據格式配置各所需參數項,利用命令行“D:RemoteCtrlManageffmpegffmpeg.exe -f s8 -ac 1 -ar 56000 -acodec pcm_s8 -i udp://200.200.221.22:5566 -ar 56000 http:// http://200.200.221.22:8090/feed1.ffm”即可實現。其中200.200.221.22:5566 為計算機與接收機通信使用的本地IP 和端口號,可按實際配置使用;200.200.221.22:8090為計算機與ffserver.exe 產生的進程通信時ffserver 進程所使用的IP地址和端口號,參見后面ffserver.conf 中的具體配置。若計算機具有唯一IP 地址,則IP 地址可用127.0.0.1。成功啟動ffmpeg.exe 的運行界面,如圖1所示。
第三,服務器實時播放。ffserver.exe 實現實時播放.mp3 數據,以便遠程通過實時音頻流播放地址實現在線收聽。按參數格式設置命令行并運行“D:RemoteCtrlManageffmpegffserver.exe -f D:RemoteCtrlManageffmpegffserver.conf”即可實現,成功啟動ffserver.exe 后的運行界面如圖2所示。其中ffserver.conf 文件的主要配置如圖3所示。在實際使用中根據實際具體使用情況,配置實際使用的端口號、IP 地址、配置路徑等信息。
在本系統中,將廣播監測接收機的工作頻率置為一個調頻廣播的頻點,比如91.000000MHz,同時解調方式為FM 調頻狀態,其他參數且用接收機工作默認的參數,并分別啟動ffserver.exe 和ffmpeg.exe 后,運行界面分別如圖4所示和如圖5所示,遠程聯網的客戶端打開系統自帶的應用軟件Windows Media Player,打開菜單項“文件”->“打開URL”,輸入“ http://200.200.221.22:8090/live.mp3”后按回車或者點擊確定即可實現在線收聽,如圖6所示。
在廣播監測接收機系統中,利用FFmpeg 中的ffmpeg.exe 實現實時音頻網絡流格式轉換為mp3 格式,同時利用ffserver.exe 實現實時發布播放音頻。同時FFmpeg 是一個開源免費跨平臺的軟件,屬于自由軟件,這樣一來便于系統的維護和二次開發。