我想构建一个模块来将假直播播放列表动态广播到 rtmp 服务器。可能有像 Xsplit、带 FFMLE 的 VirtualCam、Wirecast 这样的播放列表广播器,但它们每个都需要一个好的图形卡才能工作,而云服务器可能没有图形卡。我用以下配置尝试了 Liquidsoap:
set("frame.video.width", 1280)
set("frame.video.height", 720)
set("frame.video.samplerate", 25)
set("gstreamer.add_borders", false)
s = single("/home/user/singlevideo.mp4")
s = fallback([s, blank()])
output.gstreamer.audio_video(
video_pipeline=
"videoconvert ! x264enc bitrate=2000 ! video/x-h264,profile=baseline ! queue ! mux.",
audio_pipeline=
"audioconvert ! voaacenc bitrate=96000 ! queue ! mux.",
pipeline=
"flvmux name=mux ! rtmpsink location=\"rtmp://127.0.0.1:1930/live/live live=1\"",
s)
这工作得很好,但是当我将它从单一更改为播放列表(“/home/user/playlist.m3u”)时,我只得到一个黑屏(这是后备)。如果有人曾经将 Liquidsoap 与视频播放列表一起使用,那么需要在此配置中进行哪些更改才能使其正常工作?
对于 FFMPEG,它也可以通过无法流式播放列表来处理单个视频文件。如果有人有一个脚本可以监控 ffmpeg 进程并在当前文件结束前 3 秒更改源或类似的东西?