嗨,正如我在标题中所说,我正在尝试使用 Liquidsoap 和 gstreamer 将动态播放列表流式传输到带有 nginx 的 rtmp 服务器。也许这听起来令人困惑,抱歉英语不是我的母语。
无论如何,一切正常,除了一段时间之后,liquidsoap 会填满服务器的所有内存和交换并崩溃,而日志文件中没有任何内容。
服务器有 16GB 内存,因此 Liquidsoap 需要大约 20 小时才能达到 30GB 大小并崩溃。
我以此为例进行流式传输。
#!/usr/bin/liquidsoap
set("frame.video.width", 1280)
set("frame.video.height", 720)
set("frame.video.samplerate", 25)
set("gstreamer.add_borders", true)
s = playlist.safe(mode="normal",reload=1,reload_mode="watch","/opt/playlist.m3u")
s = fallback([s, blank()])
s = video.add_image(
width=150,height=58,
x=10,y=10,
file="/opt/logo.png",
s)
output.gstreamer.audio_video(
video_pipeline=
"videoconvert ! x264enc bitrate=2000 ! video/x-h264,profile=baseline ! queue ! mux.",
audio_pipeline=
"audioconvert ! voaacenc bitrate=128000 ! queue ! mux.",
pipeline=
"flvmux name=mux ! rtmpsink location=\"rtmp://192.168.1.1:1935/live/stream live=1\"",
s)
任何想法这是如何发生的,如果我能在一段时间后找到一种方法来清理内存使用,而不必重新启动液体肥皂和流?我想即使我在服务器上有 60gb 内存,liquidsoap 也会填满它并最终崩溃。这是文件大小中的旧缓冲视频吗?