将HLS流转换为旧收音机支持的流

问题描述 投票:0回答:1

我有一台旧的网络收音机,不支持 HLS 流。 因此我无法通过此网址收听我最喜欢的广播: https://streamcdnf31-4c4b867c89244861ac216426883d1ad0.msvdn.net/radiodeejay/radiodeejay/master_ma.m3u8

我找到了一个使用付费软件的解决方案https://minimradio.com/它基于minimserver和minimstreamer。

如果我在本地计算机上安装 mininmserver 和 minimstreamer 并使用网络收音机指向转换器流,则此解决方案有效,但如果我想使用它,我将必须付费。

检查 minimradio 和 ministreamer 的文档我可以看到以下内容:

*某些网络电台可以播放以前的 AAC ADTS 流,但无法播放这些新的 HLS 流 ...

如果网络流 URL 指向 HLS .m3u8 主播放列表或媒体播放列表文件,MinimStreamer 会读取该文件并使用 HLS 协议读取流音频数据并将其作为常规 HTTP 流发送到音乐播放器。这使得流可以在不支持 HLS 协议的音乐播放器上播放。流中的音频数据必须以 AAC 格式编码。* 我应该使用流(广播)服务器,而不是单个目标接收器。我可以用什么来做到这一点?

我的问题如下: 有没有办法复制 minimstreamer 使用 ffmpeg 所做的事情? 我试过这个:

ffmpeg -re -i https://streamcdnf31-4c4b867c89244861ac216426883d1ad0.msvdn.net/radiodeejay/radiodeejay/master_ma.m3u8 -c 复制 -listen 1 -f mpegts http://192.168.1.9:10000

在同一台计算机上的本地 vlc 中可以正确播放。但是当我停止 VLC 时,ffmpeg 出现这个错误:

[https @ 00000291de047400] Cannot reuse HTTP connection for different host: StreamCdnG20-4c4b867c89244861ac216426883d1ad0.msvdn.net:-1 != 4c4b867c89244861ac216426883d1ad0.msvdn.net:-1
[hls @ 00000291dd96d140] keepalive request failed for 'https://4c4b867c89244861ac216426883d1ad0.msvdn.net/radiodeejay/radiodeejay/play1.m3u8' with error: 'Invalid argument' when parsing playlist
[hls @ 00000291dd96d140] Opening 'https://4c4b867c89244861ac216426883d1ad0.msvdn.net/radiodeejay/radiodeejay/play1.m3u8' for reading
[hls @ 00000291dd96d140] Skip ('#EXT-X-DISCONTINUITY-SEQUENCE:0')
[hls @ 00000291dd96d140] Skip ('#EXT-X-PROGRAM-DATE-TIME:2024-11-29T06:36:56.926Z')
[hls @ 00000291dd96d140] Skip ('#EXT-X-PROGRAM-DATE-TIME:2024-11-29T06:37:07.314Z')
[hls @ 00000291dd96d140] Skip ('#EXT-X-PROGRAM-DATE-TIME:2024-11-29T06:37:17.571Z')
[https @ 00000291de4e00c0] Opening 'https://StreamCdnG20-4c4b867c89244861ac216426883d1ad0.msvdn.net/radiodeejay/radiodeejay/20240722T095729_p1s_001086632.ts' for reading
[aost#0:0/copy @ 00000291de1c4f40] Error submitting a packet to the muxer: Error number -10054 occurred
    Last message repeated 1 times
[out#0/mpegts @ 00000291deaa7e40] Error muxing a packet
[out#0/mpegts @ 00000291deaa7e40] Task finished with error code: -10054 (Error number -10054 occurred)
[out#0/mpegts @ 00000291deaa7e40] Terminating thread with return code -10054 (Error number -10054 occurred)
[out#0/mpegts @ 00000291deaa7e40] Error writing trailer: Error number -10054 occurred
[http @ 00000291de8870c0] URL read error: Error number -10054 occurred
[out#0/mpegts @ 00000291deaa7e40] Error closing file: Error number -10054 occurred
[out#0/mpegts @ 00000291deaa7e40] video:0KiB audio:797KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 21.849292%
size=     971KiB time=00:00:50.98 bitrate= 156.0kbits/s speed=1.01x
Conversion failed!

如果我尝试从网络收音机连接,我立即收到此错误:

[aost#0:0/copy @ 0000027081584a40] Error submitting a packet to the muxer: Error number -10053 occurred
    Last message repeated 1 times
[out#0/mpegts @ 0000027081e684c0] Error muxing a packet
[out#0/mpegts @ 0000027081e684c0] Task finished with error code: -10053 (Error number -10053 occurred)
[out#0/mpegts @ 0000027081e684c0] Terminating thread with return code -10053 (Error number -10053 occurred)
[out#0/mpegts @ 0000027081e684c0] Error writing trailer: Error number -10053 occurred
[http @ 0000027081c47680] URL read error: Error number -10053 occurred
[out#0/mpegts @ 0000027081e684c0] Error closing file: Error number -10053 occurred
[out#0/mpegts @ 0000027081e684c0] video:0KiB audio:46KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 13.917515%
size=      52KiB time=00:00:02.94 bitrate= 145.1kbits/s speed= 1.2x
Conversion failed!

在本地播放此节目以便在我的网络广播中收听的正确方法是什么? 我应该使用 ffmpeg 还是直接使用 ngnix 完成?或者我应该两者都使用?

nginx ffmpeg http-live-streaming audio-streaming internet-radio
1个回答
0
投票

我不知道为什么你的 FFmpeg 命令对你不起作用......它对我来说工作得很好。 不过,我建议删除

-re
参数。 您不希望 FFmpeg 重新计时流。 您希望它能像源代码一样快地被读入。 对于 HLS 来说,这是一个相当大的缓冲区,但这很正常。 该数据将被刷新到播放器,播放器将根据需要进行缓冲。

我应该注意的另一件事是,您希望在 FFmpeg 开始监听后立即连接到它。 不要让它坐在那里并尝试无限期地缓冲。

另一种方法是在 FFmpeg 和旧收音机之间运行 Icecast 作为互联网广播服务器。

最后,这是什么渠道? 我真的很喜欢音乐!

© www.soinside.com 2019 - 2024. All rights reserved.