Скрипт для использования ffmpeg или Liquidsoap в качестве вещателя для автоматизации видео?
Я хотел бы создать модуль для динамической широковещательной передачи плейлиста на сервер rtmp. Может существовать вещательный плейлист, такой как Xsplit, VirtualCam с FFMLE, Wirecast, но каждому из них нужна хорошая графическая карта для работы, в то время как облачный сервер может не иметь графических карт. Я попробовал оба Liquidsoap со следующим congif:
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 секунды до конца текущего файла или что-то в этом роде?
3 ответа
Может быть, это может помочь вам
Libav/FFMPEG потоковое решение для RTMP с динамическим списком воспроизведения.
Я использую это так:
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)