在广播监测接收机系统中实现音频实时播放
2020-02-02熊爱金刘奇冯艳清赵怀玉
熊爱金 刘奇 冯艳清 赵怀玉
(1.同方电子科技有限公司 江西省九江市 332000 2.天津航海仪器研究所 天津市 300131)
(3.南昌师范学院 江西省南昌市 330000)
1 引言
广播监测接收机可完成对无线电信号监测、管理等任务,形成独立的无线电监测管理系统,提高无线电监测工作的准确性和可靠性,适用于国家无线电管理、民航、广电等部门的无线频谱监测系统。对进行频管资源规划,频率审批,台站设置、验收、调整,为查处违法行为提供技术依据,在无线电信号和电磁环境的监听、监测等工作中发挥重要作用。广播监测接收机工作中产生的原始音频数据尤其重要,利用开源的免费软件FFmpeg 中的ffmpeg.exe 和ffserver.exe 实现实时播放功能。
2 FFmpeg简介
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所示。
3 实现过程
大概实现过程如下:
图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 地址、配置路径等信息。
4 实验
在本系统中,将广播监测接收机的工作频率置为一个调频广播的频点,比如91.000000MHz,同时解调方式为FM 调频状态,其他参数且用接收机工作默认的参数,并分别启动ffserver.exe 和ffmpeg.exe 后,运行界面分别如图4所示和如图5所示,远程联网的客户端打开系统自带的应用软件Windows Media Player,打开菜单项“文件”->“打开URL”,输入“ http://200.200.221.22:8090/live.mp3”后按回车或者点击确定即可实现在线收听,如图6所示。
5 结束语
在广播监测接收机系统中,利用FFmpeg 中的ffmpeg.exe 实现实时音频网络流格式转换为mp3 格式,同时利用ffserver.exe 实现实时发布播放音频。同时FFmpeg 是一个开源免费跨平台的软件,属于自由软件,这样一来便于系统的维护和二次开发。