Difference between revisions of "Time2Clipboard"

From Wiki4Intranet
Jump to: navigation, search
 
(One intermediate revision by the same user not shown)
Line 8: Line 8:
  
 
Работает под Windows.
 
Работает под Windows.
 +
 +
{{warning}} Не работает с VLC>2.0.8
  
 
<code-lua>
 
<code-lua>
 +
 
-- Time2Clipboard.lua -- VLC extension --
 
-- Time2Clipboard.lua -- VLC extension --
 
--[[
 
--[[
Line 15: Line 18:
 
Activate extension by menu "View -> Time2Clipboard"
 
Activate extension by menu "View -> Time2Clipboard"
  
When activated, listen keyboard, and on "Ctrl-T"
+
When activated, listen keyboard, and on "Ctrl-?"
 
put formatted time to clipboard.
 
put formatted time to clipboard.
  
Line 23: Line 26:
 
function key_press( var, old, new, data )
 
function key_press( var, old, new, data )
 
   local key = new
 
   local key = new
 
+
 
   if key == 67108980 then
+
   if key == 67108911 or key == 67108910  then
 
       local input = vlc.object.input()
 
       local input = vlc.object.input()
 
       if input then
 
       if input then
Line 30: Line 33:
 
             local elapsedHour = math.floor(elapsed_time / 3600)
 
             local elapsedHour = math.floor(elapsed_time / 3600)
 
             local elapsedMinute = math.floor((elapsed_time % 3600) / 60)
 
             local elapsedMinute = math.floor((elapsed_time % 3600) / 60)
             local elapsedSecond = math.floor(elapsed_time % 60)    
+
             local elapsedSecond = math.floor(elapsed_time % 60)  
 
             local elapsed_time_str = string.format("%02d:%02d:%02d", elapsedHour, elapsedMinute, elapsedSecond)
 
             local elapsed_time_str = string.format("%02d:%02d:%02d", elapsedHour, elapsedMinute, elapsedSecond)
 
             strCmd = 'echo '..elapsed_time_str..' |clip'
 
             strCmd = 'echo '..elapsed_time_str..' |clip'
Line 36: Line 39:
 
       end
 
       end
 
   end
 
   end
 +
  -- strCmd = 'echo '..key..' |clip'
 +
  -- os.execute(strCmd)
 
end
 
end
  
Line 52: Line 57:
 
   vlc.var.add_callback( vlc.object.libvlc(), "key-pressed", key_press )
 
   vlc.var.add_callback( vlc.object.libvlc(), "key-pressed", key_press )
 
end
 
end
 +
 
</code-lua>
 
</code-lua>
  
 
В идеале, хотелось бы как-то посадить это на глобальные хоткеи, чтобы не переключаться между, например,
 
В идеале, хотелось бы как-то посадить это на глобальные хоткеи, чтобы не переключаться между, например,
 
текстовым редактором и видеоплеером на отдельном мониторе, но не вижу как это сделать → хук на клавиатуру не посадить, а хоткеи, почему-то, нельзя замаппить на вызов расширения, даже баг давно есть → https://trac.videolan.org/vlc/ticket/3883
 
текстовым редактором и видеоплеером на отдельном мониторе, но не вижу как это сделать → хук на клавиатуру не посадить, а хоткеи, почему-то, нельзя замаппить на вызов расширения, даже баг давно есть → https://trac.videolan.org/vlc/ticket/3883

Latest revision as of 02:02, 17 October 2013

VLC — медиаплеер, оптимальный для активного просмотра, с клавиатурной быстрой навигацией для поиска интересующих моментов.

И часто нужно очень быстро брать время этих моментов. Например, если видео нужно разметить (указать время начала глав для ссылок на Vimeo/YouTube/с корпоративной MediaWiki), либо при видеомонтаже, с использованием SeminarAssembler.

Для решения этой задачи я набросал небольшой LUA-скрипт для VLC, который после активации, на каждое нажатие «CTRL-T» сбрасывает отформатированное время в клипборд.

Работает под Windows.

Не работает с VLC>2.0.8

 
-- Time2Clipboard.lua -- VLC extension --
--[[
Put the file in the VLC subdir …/lua/extensions.
Activate extension by menu "View -> Time2Clipboard"
 
When activated, listen keyboard, and on "Ctrl-?"
put formatted time to clipboard.
 
Windows only, because of "clip" command-line utility.
--]]
 
function key_press( var, old, new, data )
   local key = new
 
   if key == 67108911 or key == 67108910  then
       local input = vlc.object.input()
       if input then
            local elapsed_time = vlc.var.get(input, "time")
            local elapsedHour = math.floor(elapsed_time / 3600)
            local elapsedMinute = math.floor((elapsed_time % 3600) / 60)
            local elapsedSecond = math.floor(elapsed_time % 60)    
            local elapsed_time_str = string.format("%02d:%02d:%02d", elapsedHour, elapsedMinute, elapsedSecond)
            strCmd = 'echo '..elapsed_time_str..' |clip'
            os.execute(strCmd)
       end
   end
   -- strCmd = 'echo '..key..' |clip'
   -- os.execute(strCmd)
end
 
function descriptor()
   return {
      title = "Time2Clipboard";
      version = "1.0";
      author = "stanislav.fomin@gmail.com";
      url = 'http://wiki.4intra.net/Time2Clipboard';
      shortdesc = "Time2Clipboard";
      description = "paste formatted time of current media frame to clipboard";
}
end
 
function activate()
   vlc.var.add_callback( vlc.object.libvlc(), "key-pressed", key_press )
end
 

В идеале, хотелось бы как-то посадить это на глобальные хоткеи, чтобы не переключаться между, например, текстовым редактором и видеоплеером на отдельном мониторе, но не вижу как это сделать → хук на клавиатуру не посадить, а хоткеи, почему-то, нельзя замаппить на вызов расширения, даже баг давно есть → https://trac.videolan.org/vlc/ticket/3883