【发布时间】:2021-04-02 01:49:40
【问题描述】:
我正在发送设备中将传入的流录制到 mp3 文件的 20 秒部分。之后,我将此文件上传到 Google Drive(使用 RCLONE)。然后我将此文件下载到接收器设备。我在接收方等待了一段时间(缓冲)。然后我开始从命令行使用 VLC-player 播放这个文件并听这首歌。在媒体播放器中跳到另一个 m3 文件时出现问题,出现大约 0.1 秒的静音。我试图将这些 mp3 文件连接到一个文件中,但同样的问题又出现了。
我该如何处理这个问题?
这是部分代码;
def Sound(self):
t1=threading.Thread(target=self.read_playlist) # update playlist file continuously
t1.start()
vlc_instance = vlc.Instance()
player = vlc_instance.media_player_new()
i=0
while 1:
media = vlc_instance.media_new(self.playlist[i].strip())
player.set_media(media)
duration=self.len_mp3(self.playlist[i].strip())
player.play()
time.sleep(duration)
i=i+1
【问题讨论】:
-
整个过程存在固有的延迟。坦率地说,我很惊讶您将跳过时间缩短到 0.1 秒。 :-) VLC 尤其不能从一首曲目无缝播放到下一首曲目。我不完全确定您要做什么,但我建议您重新访问整个堆栈。
-
实际上当媒体播放器换成另一个mp3时会很明显,但延迟时间可以少于或多于0.1秒。我的目的是进行一些延迟(2-3 分钟)的直播,因为当互联网中断 0-2 分钟时,广播不应该停止。这就是为什么,首先我将 mp3 文件上传到驱动器,然后我将这些文件下载到广播设备并等待 2-3 分钟(缓冲)。然后我开始广播了。
-
您是否考虑过简单地使用具有显着缓冲区大小的 HLS? VLC 可以直接播放。
-
我没有关于 HLS 的信息,但我现在正在搜索它
标签: stream mp3 playback python-vlc