我想构建一个模块,将动态播放列表动态地广播到rtmp服务器。可能有播放列表播放器,如Xsplit,VirtualCam和FFMLE,Wirecast,但每个都需要一个好的图形卡才能工作,而云服务器可能没有图形卡。我用以下的congif试了两个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秒更改源或类似的东西?
答案 0 :(得分:1)
答案 1 :(得分:0)
我这样使用它:
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)
答案 2 :(得分:-1)
尝试
playlist.safe("/home/user/playlist.m3u")