我有一个运行在Nginx上的Ruby On Rails应用程序,它使用JW播放器提供MP3。 我需要能够设置播放列表项目的开始时间和持续时间。 从我可以告诉做到这一点,我需要streamMP3文件。 我如何设置Nginx来做到这一点?
Nginx已经支持通过HttpFlvStreamModulestream式传输FLV文件。 在编译/重新编译Nginx时,你可以指定模块。
# ./configure --with-http_flv_module ...SOME-OTHER-OPTS...
然后你可以configuration你的nginx.conf来传输FLV文件,如下所示:
... http { ... server { ... location ~ \.flv$ { flv; } ... } ... }
现在,由于原始问题是关于stream式传输MP3文件,这对于什么有所帮助? 那么你可以使用FFMPEG将MP3转换为FLV文件,如下所示:
ffmpeg -y -i /home/song.mp3 -f flv -acodec mp3 -ab 64 -ac 1 /home/song.flv
AFAIK,Nginx是一个HTTP服务器。 要stream式传输audio,您需要Icecast: http : //www.icecast.org/
stream媒体和下载技术的区别主要在于客户端和服务器。 对于最终用户来说,stream媒体意味着他们可能无法将媒体保存在他们的机器上。 下载和最终用户可能无法立即开始观看。 尽pipe在实践中,大多数数据只要第一位到达客户端就可以被查看。
话虽如此,你确定你需要一个stream媒体服务器来使用JWplayer吗? 你能不能把它指向一个URL,让JW去取? 在这种情况下,Nginx会提供audio。
事实上,我很确定我之前用Apache做过这个。 video在缓冲之后开始播放 – 就像Youtube一样。