0

我正在发送设备中将传入的流录制到 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
4

1 回答 1

0

布拉德先生,我迟到了,对此我很抱歉。用你的建议解决了问题,我在这里做什么:

首先我用这个命令创建一个 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 

这将创建一个“.ts”文件,根据时间戳,该文件的长度为 1 秒

在接收方,我正在将这个“.ts”文件下载到我的设备上。在下载这些“.ts”文件时,我正在等待创建一个“.m3u8”文件,例如,缓冲时间为 3 分钟,然后我开始下载过程并等待 3 分钟创建“.m3u8”文件. 3 分钟后,我开始手动创建“.m3u8”文件,并开始使用 mpv-player(python 接口)播放“.m3u8”文件。我在接收端每隔一秒更新一次“.m3u8”文件

于 2021-03-11T12:45:16.403 回答