1

嗨,正如我在标题中所说,我正在尝试使用 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 也会填满它并最终崩溃。这是文件大小中的旧缓冲视频吗?

4

0 回答 0