我试图将音频流中的X秒保存到文件中。我有一个RTSP服务器,我在python中创建了一个简单的脚本,从这个服务器节省几秒钟,以便记录在一个文件(.wav)中。
def main():
########################### MAIN INIT ###########################
instance = vlc.Instance("-vvv", "--no-video", "--clock-jitter=0", "--sout-audio", "--sout",
"#transcode{acodec=s16l,channels=2}:std{access=file,mux=wav,dst=test.wav}")
# Create a MediaPlayer with the default instance
player = instance.media_player_new()
# Load the media file
media = instance.media_new("rtsp://XXX.XX.XXX.XX:YYYY/")
# Add the media to the player
player.set_media(media)
# Play for 10 seconds then exit
player.play()
time.sleep(10)
if __name__ == '__main__':
main()
但是当我运行脚本时,它会创建文件" test.wav"但它是一个文本平面文件而不是wav,我在等什么。
Log向我显示下一个信息:
[00000000022aec08] core input error: ES_OUT_RESET_PCR called
[00007f6704040518] core decoder error: cannot continue streaming due to errors
所以我非常感谢能帮助我的人。 非常感谢。
答案 0 :(得分:0)
Wav文件的结构使用不同的字段来表示您可能知道的不同信息 - 请参阅此链接中的示例(https://github.com/kushalpandya/WavStagno):
听起来您的输出格式不正确 - 有可用于检查WAV文件的工具,这是一个很好的起点,或者如果您想分享这里的文件链接,那么人们可以看一看
如果你要做的是收听流并同时保存它,那么你可能想要使用重复的功能 - 这里有一个神的例子(尽管是基于视频的):{{3} }