Ciao a tutti cari lettori e lettrici, per motivi di studio mi sono trovato nella necessità di dover mandare indietro, di alcuni secondi, un video ogni qualvolta lo mettevo in pausa, in modo da non perderne il filo del discorso. Come fare?
Utilizzeremo il noto player di video “VLC”, gratuito.
1. Installa VLC (lo scarichi qua: https://www.videolan.org/vlc/download-windows.it.html).
2. Crea un file vuoto sul desktop e chiamalo ” rollback.lua ” .
3. Apri blocco note e visualizza questo file rollback.lua appena creato.
4. Copia nel file rollback.lua questo lungo script (realizzato da Tidsfisk e pubblicato qua: https://stackoverflow.com/questions/44014632/how-can-i-skip-back-a-few-seconds-after-pause-in-vlc-media-player ) :
micro_second_unit = 1000000
TIME_DELTA = 1 --Default,
SHOW_OUTPUT = true
TIME_TO_DISPLAY = 1.5 --Default
function descriptor()
return {
title = "Rollback X Seconds",
capabilities = {"input-listener", "playing-listener"}
}
end
function activate()
dlg = vlc.dialog("Rollback X Seconds")
rollback_input = dlg:add_text_input("1", 2, 1 )
rollback_input_label = dlg:add_label("Seconds to back", 1, 1)
checkBox = dlg:add_check_box("Show output time ", wasChecked, 3, 3 )
timeTo_display_box = dlg:add_text_input(1.5, 2 ,3)
timeTo_display_box_label = dlg:add_label("Seconds To Display", 1, 3)
w2 = dlg:add_button("Save settings", change_step, 3, 4, 1, 1)
w2 = dlg:add_button("Save and close", updateAndClose, 3, 5, 1, 1)
done = dlg:add_label( "" , 3, 6)
end
function close()
end
function deactivate()
vlc.deactivate()
end
function input_changed()
end
function playing_changed()
if vlc.playlist.status()=="paused" then
local timePassed = tonumber(vlc.var.get(vlc.object.input(), "time"))
local newTime = timePassed - seconds_to_microsecond(TIME_DELTA)
local newTime_inSeconds = (newTime/1000000)
local newTime_inMinutes = (newTime_inSeconds/60)
local newTime_inSeconds_restOfMin = math.fmod(newTime_inSeconds,60)
local newTime_str = math.floor(newTime_inMinutes) .. "min " .. round(newTime_inSeconds_restOfMin,1) .."sec"
local timePassed_inSeconds = (timePassed/1000000)
local timePassed_inMinutes = (timePassed_inSeconds/60)
local timePassed_inSeconds_restOfMin = math.fmod(timePassed_inSeconds,60)
local timePassed_str = math.floor(timePassed_inMinutes) .. "min " .. round(timePassed_inSeconds_restOfMin,1) .."sec"
if SHOW_OUTPUT == true then
vlc.osd.message("Seconds to Back:" .. TIME_DELTA .. "sec", vlc.osd.channel_register(), "top-right", seconds_to_microsecond(TIME_TO_DISPLAY))
vlc.osd.message("New time:" .. newTime_str, vlc.osd.channel_register(), "top-left", seconds_to_microsecond(TIME_TO_DISPLAY))
vlc.osd.message("Old time:" .. timePassed_str, vlc.osd.channel_register(), "bottom-left", seconds_to_microsecond(TIME_TO_DISPLAY))
end
vlc.var.set(vlc.object.input(), "time", newTime)
end
end
function updateAndClose()
change_step()
dlg:delete()
end
function change_step()
done:set_text("Saved")
TIME_DELTA = tonumber(rollback_input:get_text())
SHOW_OUTPUT = checkBox:get_checked()
if SHOW_OUTPUT == true then
TIME_TO_DISPLAY = tonumber(timeTo_display_box:get_text())
end
end
function round(num, numDecimalPlaces)
local mult = 10^(numDecimalPlaces or 0)
return math.floor(num * mult + 0.5) / mult
end
function microsecond_to_seconds(timeToConvert)
return timeToConvert / micro_second_unit;
end
function seconds_to_microsecond(timeToConvert)
return timeToConvert * micro_second_unit;
end
4. Il file così ottenuto lo puoi copiare dentro il percorso C:\Program Files (x86)\VideoLAN\VLC\lua\extensions
5. Apri il file video con VLC.
6. Visualizza.
7. Rollback X Seconds.
8. Nel campo “Seconds to back” scrivi di quanti secondi desideri far tornare indietro il video quando lo metti in pausa.
9. Clicca su “Save and close“.
Da questo momento in poi, ogni volta che metterai il video in pausa, andrà indietro dei secondi da te scelti!
Ricordo che se chiudi VLC dovrai comunicare di nuovo a VLC di quanti secondi andare indietro quando premi pausa, in sostanza dallo step 6.
GUARDA LA MIA VIDEO-SPIEGAZIONE
Ciao dal Doc!