Newsgroup: it.comp.os.linux.iniziare
Titolo: [OT] ffmpeg Timer per registrazione

Datemi una mano...
 
Come si può dire a ffmpeg di iniziare a registrare uno streaming video 
ad una certa ora e di smettere ad un'altra?
 
Ovviamente parlo di comandi nel terminale.
 
Grazie


buongiorno,
 
così su due piedi mi viene in mente che potresti usare crontab.
in attesa di ricevere qualche info più dettagliata e/o specifica se vuoi 
fare qualche test/esperimento ti suggerisco questo tool [1] che ho sempre 
trovato estremamente utile.
 
[1] 
http://corntab.com/
 
 
saluti.
 
-- 
||---> WinterMute <---||
38A4 5354 30C5 E86F 9AA8  
B234 7227 D71D A547 39E0

 
 
Vorrei semplicemente lanciare la registrazione di uno streaming video ad 
un orario specifico, nulla di più.
 
Conosco concettualmente crontab ma non l'ho mai usato...
 
Saresti così gentile di indicarmi come potrei lanciare lo shell script 
'pippo' alle ore 12:00 di oggi?
 
Ovviamente non ho bisogno di farlo ogni giorno, posso benissimo attivare
il tab quando mi serve e poi eventualmente cancellarlo.
 
Grazie 1000

 'pippo' alle ore 12:00 di oggi?
 
https://tecadmin.net/crontab-in-linux-with-20-examples-of-cron-schedule/
 
 
qui è spiegato bene cone si fa.
 

 il tab quando mi serve e poi eventualmente cancellarlo.
 
Se non lo devi lanciare periodicamente conviene usare il comando 'at'
Il comando ha una sintassi molto ampia, vedi la man-page at(1) ma quella 
più intuitiva è:
 
$ at 22:00 jan 22 path_allo_script_da_eseguire_per_avviare
$ at 23:00 jan 22 path_allo_script_da_eseguire_per_fermare
 
Questo esempio manda in esecuzione l'avvio alle 22:00 del giorno 22 
gennaio e lo stop alle 23:00 dello stesso giorno.  Tieni però presente 
che, rispetto a cron, i comandi da eseguire con at vengono cancellati da 
un reboot
 
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   < 
http://giovanni.homelinux.net/
 >

 spiegato bene
 
Spiegato bene per chi sa gia bene come si fa...
 
Se digito crontab -l mi dice che non c'è niente di programmato e va bene.
 
Se digito crontab -e mi escono una sfilza di ~ uno sotto l'atro per 
parecchie righe...
 
Mettiamo che digito 10 11 * * * ~/desktop/prova.command per tentare di 
far partire lo shell script 'prova' alle 11 e 10 di oggi poi come gli 
confermo il comando ed esco dalla gestione di crontab ?!?

 Giovanni
 
Provo subito questo che mi sembra FENOMENALE!
 
Nello script ho già indicato il tempo di registrazione a ffmpeg,
quindi posso usare solo il comando di lancio, giusto?
 
Grazie

 $ at 22:00 jan 22 path_allo_script_da_eseguire_per_avviare
 
E te pareva...
 
Se digito at 10:50 jan 13 /path dello script
il terminale mi risponde: at: garbled time
e ovviamente non lancia lo script...

 at 22:00 jan 22 (questa non funzia)
 
Se il terminale risponde così:
 
at: out of range or illegal time specification: [[CC]YY]MMDDhhmm[.SS]
 
Come la si deve inserire la data e l'ora ?!?
 
 
 
  -t      Specify the job time using the POSIX time format.  The 
argument should be in the form [[CC]YY]MMDDhhmm[.SS] where each
              pair of letters represents the following:
 
              CC      The first two digits of the year (the century).
              YY      The second two digits of the year.
              MM      The month of the year, from 1 to 12.
              DD      the day of the month, from 1 to 31.
              hh      The hour of the day, from 0 to 23.
              mm      The minute of the hour, from 0 to 59.
              SS      The second of the minute, from 0 to 61.
 
If the CC and YY letter pairs are not specified, the values default to 
the current year.  If the SS letter pair is notspecified, the value 
defaults to 0.

 confermo il comando ed esco dalla gestione di crontab ?!?
 
sei dentro l'editor di testo, suppongo vi. quindi devi salvare e uscire 
come da un qualsiasi editing: <esc>:x
quindi è fatto.
assicurati che il file abbia i permessi di esecuzione, inoltre meglio se 
metti il path assoluto completo. 
inoltre aggiungi la redirezione dell'output verso un file, es:
 
10 11 * * * /full/path/prova.command >/full/path/out 2>&1
 
ti aiuterà a debuggare eventuali problemi.


 
La man page della mia slackware indica:
 
"at allows fairly complex time  specifications,  extending  the  POSIX.2 
standard.   It  accepts  times of the form HH:MM to run a job at a 
specific time of day.
[...omissis..]
For example, to run a job at 4pm three days from now, you would  do
at 4pm  + 3 days, to run a job at 10:00am on July 31, you would do
at 10am Jul 31 and to run a job at 1am tomorrow, you would do at 1am 
tomorrow."
 
Ma potrebbe essere che hai una versione diversa.  Inoltre il nome del 
mese se hai impostato la lingua italiana potrebbe essere "gen" non 
"jan".  Non ho mai usato l'opzione -t con quel formato.  Devi vedere 
bene cosa dice la man-page della *tua* installazione. Non tutte le 
versioni hanno la stessa versione di at.
 
PS:  Se lo script imposta da se lo stop allora basta dare il solo 
comando di avvio.


 come da un qualsiasi editing: <esc>:x
 
In realtà devo usare esc ZZ.
 
Testato il crontab ora sembra funzionare.
 
Voglio approfondire il discorso at che sarebbe più funzionale e comodo 
per le mie esigenze, ma credo di aver capito che at viene lanciato da 
atrun che di default non è attivo. Ho provato a fare delle modifiche ma 
credo di dover riavviare per vedere se funzionano, e in questo momento 
non posso riavviare. Vedremo...
 
Per il momento 1000 grazie

 comando di avvio.
 
Sì, con ffmpeg gli puoi dire per quanto tempo deve durare la 
registrazione, quindi uso questa funzione che è già impostata nello 
script da lanciare. Non vorrei che ffmpeg si incazzasse se lo si 
stoppasse di colpo.
 
Sono riuscito a trovare la giusta sintassi x ora e data ma ho scoperto, 
credo, che at è lanciato da atrun che di default nel mio sistema non è 
attivo. Ho fatto delle modifiche ma credo che per vedere se funzionano 
dovrei riavviare e in questo momento non lo posso fare.
 
Dopo vari tentativi sono riuscito a lanciare la registrazione con 
crontab, ma preferirei usare at che mi sembra più semplice e più adatta 
al mio scopo. (se mi dimentico di modificare o cancellare tra 1 anno 
crontab mi rilancia lo script...)
 
Le faremo sapere ;-)
 
Grazie ancora
 

 posso fare.
 
Qualsiasi distribuzione tu abbia dovrebbe essere possibile lanciarlo 
senza riavviare.  Se non ricordo male atrun non è altro che uno script 
che attiva il demone atd che può essere attivato/disattivato in 
qualsiasi momento senza fare il reboot.


 $ at 23:00 jan 22 path_allo_script_da_eseguire_per_fermare
 
 Manca l'opzione -f per indicare il file eseguibile:
 
 
at 22:00 jan 22 -f path_allo_script_da_eseguire_per_avviare
 
 
  Ciao,
 
 
Alessandro
 

Il 13/01/20 23:39, Alessandro Selli ha scritto:

Così infatti finalmente funziona!
 
Grazie