Difference between revisions of "Time2Clipboard"
(Created page with "VLC — медиаплеер, оптимальный для активного просмотра, с клавиатурной быстрой навигацией для по...") |
|||
(2 intermediate revisions 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- | + | 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 == | + | 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 |
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