ffmpeg - 使用 ffmpeg 或 Liquidsoap 作为视频自动化广播器的脚本?

标签 ffmpeg playlist liquidsoap

我想构建一个模块来动态地将假直播播放列表广播到 rtmp 服务器。可能有像 Xsplit、VirtualCam with FFMLE、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 秒更改源或类似的内容?

最佳答案

我这样使用它:

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)

关于ffmpeg - 使用 ffmpeg 或 Liquidsoap 作为视频自动化广播器的脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25914369/

相关文章:

build - ffmpeg build - 未知的临时文件夹

javascript - MediaElement.js + jQuery 改进了播放列表(希望如此)

icecast - 将两个icecast流与liquidsoap混合并将其流式传输到icecast服务器

audio - Liquidsoap + JACK延迟

liquidsoap - 使用 Liquidsoap 读取 JSON 文件

ffmpeg 视频连接 - 音频/视频轨道同步

parsing - flac 和 wav 的 ffmpeg 输出不同,为什么?

api - 显示播放列表缩略图 (YouTube API)

javascript - Spotify 应用程序 API - 播放列表订阅

audio - 使用ffmpeg转换多文件夹中的多文件