ffmpeg_instance_list = {}
init_input_module.ffmpeg = function(conf)
-- conf.addr - значение после ffmpeg://
-- в данном пример используется как порт для обмена данными между
-- ffmpeg и udp_input
local instance = ffmpeg_instance_list[conf.addr]
-- пример адреса источника ffmpeg://5001#option=123
-- conf.format = ffmpeg
-- conf.addr = 5001
-- conf.option = 123
if not instance then
instance = {}
ffmpeg_instance_list[instance_id] = instance
-- запуск ffmpeg
-- скрипт ffmpeg.sh в данном примере принимает два параметра:
-- 1. start или stop - запуск или остановка скрипта
-- 2. номер порта на который передавать данные
os.execute("ffmpeg.sh start " .. conf.addr)
-- приём данных с ffmpeg
instance.input = udp_input({
addr = "127.0.0.1", port = conf.addr,
})
end
return instance.input
end
kill_input_module.ffmpeg = function(module)
local conf = module.__options
local instance = ffmpeg_instance_list[conf.addr]
if instance then
os.execute("ffmpeg.sh stop " .. conf.addr)
instance.input = nil
ffmpeg_instance_list[conf.addr] = nil
end
end
Comments