4

我想构建一个模块来将假直播播放列表动态广播到 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 秒更改源或类似的东西?

4

3 回答 3

1

我这样使用它:

videosource = playlist(reload=3600, "/home/user/videostreams/videos.txt")
videoplaylist = mksafe(videosource)
theoracodec = %ogg(%theora(quality=25), %vorbis)

然后我将它输出到 Icecast:

output.icecast(theoracodec,id="icecast_ogv",host="localhost",port=8000,password="passw",mount="video",description="Description",public=false,url="my_url",videoplaylist)
于 2017-03-12T10:08:39.557 回答
1

也许这可以帮助你

带有动态播放列表的 RTMP 的 Libav/FFMPEG 流解决方案。

https://github.com/fyroc/RTMP-播放列表

于 2017-07-23T03:47:42.093 回答
0

尝试

playlist.safe("/home/user/playlist.m3u")
于 2015-05-08T19:17:17.597 回答