and_cesbo icon

Astra FFmpeg-input

and_cesbo | PRO | 12/31/14 07:37:49 AM UTC | 0 ⭐ | 982 👁️ | Never ⏰ | []
Lua |

1.44 KB

|

None

|

0 👍

/

0 👎

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