and_cesbo

Astra FFmpeg-input

Dec 31st, 2014
912
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.44 KB | None | 0 0
  1. ffmpeg_instance_list = {}
  2.  
  3. init_input_module.ffmpeg = function(conf)
  4.     -- conf.addr - значение после ffmpeg://
  5.     -- в данном пример используется как порт для обмена данными между
  6.     -- ffmpeg и udp_input
  7.     local instance = ffmpeg_instance_list[conf.addr]
  8.     -- пример адреса источника ffmpeg://5001#option=123
  9.     -- conf.format = ffmpeg
  10.     -- conf.addr = 5001
  11.     -- conf.option = 123
  12.  
  13.     if not instance then
  14.         instance = {}
  15.         ffmpeg_instance_list[instance_id] = instance
  16.  
  17.         -- запуск ffmpeg
  18.         -- скрипт ffmpeg.sh в данном примере принимает два параметра:
  19.         -- 1. start или stop - запуск или остановка скрипта
  20.         -- 2. номер порта на который передавать данные
  21.         os.execute("ffmpeg.sh start " .. conf.addr)
  22.  
  23.         -- приём данных с ffmpeg
  24.         instance.input = udp_input({
  25.             addr = "127.0.0.1", port = conf.addr,
  26.         })
  27.     end
  28.  
  29.     return instance.input
  30. end
  31.  
  32. kill_input_module.ffmpeg = function(module)
  33.     local conf = module.__options
  34.     local instance = ffmpeg_instance_list[conf.addr]
  35.  
  36.     if instance then
  37.         os.execute("ffmpeg.sh stop " .. conf.addr)
  38.         instance.input = nil
  39.         ffmpeg_instance_list[conf.addr] = nil
  40.     end
  41. end
Advertisement
Add Comment
Please, Sign In to add comment