问题描述
我正在将传入流录制到 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
解决方法
先生布拉德,我这么晚才收到反馈,抱歉。问题已根据您的建议解决,我的做法是:
首先我用这个命令创建一个 HLS 段;
ffmpeg -f alsa -i plughw:1,0 -c:a libmp3lame -f segment -strftime 1 -segment_time 1 -segment_format mpegts path/%Y%m%d%H%M%S.ts
这会根据时间戳创建一个长度为 1 秒的“.ts”文件
在接收端,我将这个“.ts”文件下载到我的设备上。在下载这些“.ts”文件时,我正在等待创建一个“.m3u8”文件,例如,让我们说, 缓冲时间是 3 分钟,然后我开始下载过程并等待 3 分钟来创建“.m3u8”文件。 3 分钟后,我开始手动创建“.m3u8”文件,并且我正在启动 mpv-player(python 界面)来播放“.m3u8”文件。我在接收端每隔一秒更新“.m3u8”文件