bookmark_borderEstrarre immagini da un video con ffmpeg

Se volete ottenere delle foto da un video potete farlo facilmente estrando i frame con il programma ffmpeg (leggete qui come installarlo).

Ecco il comando:

ffmpeg -i video.mp4 frame%05d.png

Al posto di “video.mp4” dovrete scrivere il nome del file del vostro video.
I file delle immagini che verranno estratte verranno nominati con prefisso “frame” + un progressivo. Eventualmente potete cambiarlo.

Se volete invece estrarre le immagini da una determinata porzione del video, potete settare il minuto di inizio e il minuto di fine della parte che avete individuato. In tal caso il comando sarà:

ffmpeg -i video.mp4 -ss 05:00 -to 05:10 frame%05d.png

bookmark_borderTagliare un video con ffmpeg in pochi secondi

Se avete l’esigenza di tagliare un video, in qualsiasi punto, con ffmpeg è possibile farlo in pochi secondi!

Scaricate l’ultima versione dal sito ufficiale oppure, nel caso utilizziate Ubuntu o qualche altra distribuzione di linux, è possibile installarlo da riga di comando:

sudo apt-get install ffmpeg

Una volta individuato il minuto esatto, sia di inizio sia di fine, dell’estratto video che si vuole ottenere dal video originale, basterà lanciare il seguente comando:

ffmpeg -i <nome file video originale> -ss <minuto inizio> -to <minuto fine> -c copy <nome file video ritagliato>

Esempio:

ffmpeg -i input.mp4 -ss 00:46:34.0 -to 01:14:07.0 -c copy output.mp4

In questo esempio dal video originale “input.mp4” si ottiene un estratto, che va dal minuto “00:46:34.0” (46 minuti e 34 secondi) al minuto “01:14:07.0” (1 ora, 14 minuti e 7 secondi), e il risultato sarà salvato in un file di nome “output.mp4”.

Nel caso si voglia indicare un minuto di inizio e una durata dello spezzone, anzichè il minuto di fine, basterà sostituire il parametro -to con -t.

Esempio:

ffmpeg -i input.mp4 -ss 00:46:34.0 -t 00:10:00.0 -c copy output.mp4

In questo caso si otterrà un estratto del video originale che va dal minuto “00:46:34.0” (46 minuti e 34 secondi) a 10 minuti dopo, ovvero fino al minuto “00:56:34” (56 minuti e 34 secondi).

In ogni caso il procedimento richiederà poco tempo, una manciata di secondi.

Se per qualche ragione invece non potete usare o installare ffmpeg, allora dimenticate tutto e usate questo Online-Video-Cutter.com. Ma dovete mettere in conto il tempo per l’upload del vostro video sul sito, e il fatto che state caricando online un eventuale video privato.

BONUS:

Nel caso si voglia ridurre le dimensioni di un video, e quindi la grandezza del file, è possibile scalarlo, ovvero diminuirne la risoluzione:

ffmpeg -i input.mp4 -vf scale=iw/2:-1 output.mp4

In questo modo la risoluzione e le dimensioni del video vengono dimezzate.
Se lo si vuole ridurre di un quarto, ecco il comando: ffmpeg -i input.mp4 -vf scale=iw/4:-1 output.mp4

Questa operazione non sarà veloce come quella del ritaglio, ma comunque non richiederà molto tempo, solo qualche minuto.

bookmark_borderIl lavoro intelligente nel mondo IT

Lavoro da remoto: smart o agile?

Con il termine smart working, spesso usato in maniera intercambiabile con lavoro agile, si indica il lavoro da casa. Erroneamente.
In realtà in inglese “smart working” ha un significato ben più ampio: indica una modalità di lavoro flessibile, che include anche la possibilità di lavorare da casa (o da dove si vuole), e che utilizza processi e strumenti che rendono il lavoro più funzionale e “intelligente” (smart).
Il termine “lavoro agile” invece è la traduzione del termine inglese agile working, derivante dal concetto informatico di metodologia agile, utilizzato nello sviluppo del software, i cui principi, successivamente estesi ad altri ambiti, hanno incluso la location, ovvero la possibilità di lavorare da qualunque posto.


Entrambi i termini inglesi dunque non si riferiscono esclusivamente al “lavoro da casa” o al “telelavoro”, questa confusione avviene solo in Italia. Forse è l’accezione propria dei termini “smart” e “agile”, quali flessibilità, adattabilità e reattività che ha tratto in inganno.

Il lavoro da casa, propriamente chiamato remote working, è una forma di flexible working: si lavora per obiettivi, non a tempo, e dentro le quattro mura di casa, luogo che ovviamente deve essere conforme alle norme di sicurezza.

Se, e soltanto se, alla flessibilità di orario e luogo si aggiunge un’ottimizzazione dei processi, tramite strumenti (connettività, piattaforme collaborative, videoconferenze, etc) che rendono il lavoro più funzionale, allora si parla di smart working.

Se le mansioni da svolgere (cosa fare, come dividere i compiti, come interagire con gli altri) e le risorse umane da impiegare (personale interno/esterno, tipo di collaborazione) sono organizzate individuando la combinazione migliore per portare a termine una determinata attività, nel modo più efficiente e soddisfacente per tutte le parti coinvolte, allora si sta facendo lavoro agile.

In ogni caso il lavoro non è più misurato dal numero di ore seduti davanti al pc, ma dai task portati a termine, secondo una pianificazione personale, concordata eventualmente con il resto del team con cui si lavora. Al netto di sincronismi necessari per determinati eventi, come una videoconferenza, non importa seguire un rigido orario lavorativo, conta consegnare un determinato lavoro entro un tempo previsto. Contemporaneamente ci si può dedicare ad altre attività della vita privata, gestendo quindi il tempo a disposizione e, di conseguenza, migliorando la qualità della vita in generale.

Un limite culturale italiano

Il lavoro da casa negli ultimi anni ha visto crescere la sua adozione nel mondo, grazie al progresso tecnologico e alla conseguente diffusione di strumenti digitali che lo rendono attuabile.
Sono le aziende del settore IT quelle in cui il remote working trova maggiore spazio, proprio per la loro naturale propensione alle interazioni telematiche e la maggiore confidenza con gli strumenti informatici, come le piattaforme collaborative in cui è possibile chattare, scambiare file e fare videochiamate. È qui che il remote working si è evoluto nelle forme “smart working” e “agile working”.

In Italia però lo smart working non trova una larga applicazione, nemmeno tra le aziende del settore informatico. Se questo gap rispetto ad altri paesi sviluppati, fino a diversi anni fa, poteva essere attribuito all’arretratezza sulla banda larga, al digital divide e altre ragioni infrastrutturali, oggigiorno può essere ricondotto esclusivamente ad un limite culturale, tutto italiano.

Limite che include altri aspetti, come quello secondo cui si fa una bella impressione su capi e colleghi a lavorare fino a tardi in ufficio. La logica invece suggerirebbe che quando ciò avviene vuol dire che non si è in grado di organizzare il tempo a disposizione, in relazione ai task da portare a compimento, e che quindi c’è un problema da risolvere.
Indipendentemente dalle cose da finire, non c’è bisogno di dimostrare nulla trattenendosi in ufficio, ancora una volta è una questione di ordine culturale, come dimostra ciò che avviene altrove, come ad esempio in Danimarca.
Spesso si uniscono a questo modo errato, ma largamente diffuso, di concepire l’attività lavorativa anche piccoli comportamenti, sempre con lo scopo di dimostrare maggior dedizione al lavoro, come quello di non fare pause o addirittura mangiare davanti al computer (laddove fosse consentito dall’azienda consumare pasti in postazione).

Dall’altro lato, le aziende dovrebbero acquisire una maggiore apertura mentale nell’accogliere la possibilità che i loro dipendenti possano lavorare lontani dalle sedi e, soprattutto, lontano dai loro occhi. In altre parole il datore di lavoro dovrebbe aver fiducia dei propri dipendenti a prescindere, visto che li ha assunti.

Questi comportamenti non sono i soli a dare una connotazione malsana al lavoro degli informatici. Altri fattori importanti sono l’inquadramento contrattuale dei lavoratori del settore IT e il significato che ha la parola “informatico” (sostantivo).
Con informatico si può indicare uno sviluppatore software, un amministratore di reti, un addetto di un help desk e perfino un tecnico che ripara i computer. Ognuno ricopre una figura completamente diversa dall’altra, ma questa differenza non è assolutamente percepita, se non da quelli del settore. Se è ben chiara la differenza tra un dentista, un cardiologo e un ginecologo, tutti e tre medici, ciò non avviene per le figure professionali informatiche.
Questa mancanza di riconoscimento dei vari ruoli è evidenziata ancora di più dalla forma contrattuale con cui gli informatici vengono assunti nelle aziende italiane: CCNL dei metalmeccanici o dei dipendenti dei settori del commercio.
È abbastanza evidente che uno sviluppatore software non si occupi di lavorazioni meccaniche che trasformano il metallo e neppure della vendita di beni o servizi.
Probabilmente è anche questa collocazione del ruolo dell’informatico, all’interno del mondo del lavoro, che rende più difficile applicare e normare il lavoro da remoto.

Digitalizzazione, quindi remotizzazione

La richiesta di informatici è sempre più alta, sia in Italia sia nel mondo, ed è per questo che l’Italia deve al più presto adeguarsi allineandosi al resto delle nazioni industrializzate.
L’aumento della richiesta è dovuto al particolare periodo storico che viviamo, in cui la tecnologia è entrata a far parte di ogni aspetto della nostra vita. Dietro qualsiasi prodotto tecnologico, servizio telematico e strumento digitale c’è un gruppo di informatici che ci lavora. L’esempio più estremo è quello di un robot: rimpiazza un lavoratore ma occorrono alcune decine di lavoratori per produrlo, svilupparne l’intelligenza artificiale, testarlo, etc.
Non sono solo le aziende IT che aprono posizioni per nuovi candidati, ci sono anche aziende afferenti ad altri ambiti (ristorazione, turismo, immobiliare, etc.) e startup pronte a stravolgere i settori esistenti con idee innovative: sharing economy, food delivery, servizi di dating, etc. Questo avviene anche per via di un fenomeno preciso: il digitale non è più un settore a sé stante dell’industria, ma sta diventando sempre più parte integrante di tutti i settori.

La diffusione di prodotti e servizi digitali e la trasformazione digitale di processi esistenti non possono non includere un cambiamento del modo di lavorare, il cui percorso verso la remotizzazione sembra abbastanza segnato. In quest’ottica, per quanto riguarda l’Italia l’impressione è che molte imprese stiano sciupando un’occasione d’oro. Sebbene ci siano alcune aziende italiane che hanno già integrato la formula dello smart working nei loro contratti di lavoro, concedendo 1 o 2 giorni alla settimana di lavoro da casa, ci sono tante altre aziende che possono farlo ma non lo fanno. Senza nessun valido motivo in termini di impiego delle risorse umane, men che meno per ragioni economiche, spesso si sceglie di non adottare lo smart working. È esclusivamente un problema di mentalità, di abitudini, di concezione obsoleta del lavoro.

Lo smart working conviene

È dimostrato, sia da ricerche sia da report di società in cui è in uso lo smart working, che il lavoro da casa è conveniente sia per le aziende che per i lavoratori. All’estero esistono tante aziende che contemplano lo smart working per i loro dipendenti, oppure figure che possono lavorare sempre da casa, o addirittura start-up con dipendenti assunti esclusivamente in regime di remote working (eventualmente smart working o agile working). Sulle varie piattaforme di recruitment e sui portali per gli sviluppatori si trovano sempre, oltre alle offerte di lavoro tradizionali, opportunità in cui è richiesto di recarsi in sede raramente oppure posizioni full remote.

C’è assolutamente da fare una distinzione, tra concedere qualche giorno di smart working a settimana e operare completamente in regime di full remote ogni giorno, con periodiche occasioni per recarsi in sede. Quest’ultimo caso potrebbe addirittura essere la soluzione in Italia per limitare il fenomeno dell’emigrazione di informatici dal meridione al settentrione.
Il lavoro da remoto totale però potrebbe portare ad un senso di alienazione per i lavoratori, che rimangono sempre nelle proprie quattro mura di casa, anziché vivere la vita lavorativa in ufficio. Ma ciò quasi certamente è un problema minore rispetto a stravolgere la vita di tanti giovani e non, costretti ad allontanarsi dal proprio “habitat” e dai propri cari, in molti casi per sempre (a meno che ciò non sia un desiderio personale per scappare da qualcosa).

Se non si ha bisogno di toccare, annusare e assaggiare un collega di lavoro, bastano gli altri due sensi per effettuare una videochiamata e portare avanti il lavoro. La grande offerta di piattaforme collaborative permette proprio questo, ovvero di lavorare come se si fosse in ufficio, accanto ai propri colleghi, di interagire con loro in call e condividere eventualmente lo schermo per mostrare documenti, slide, codice e qualsiasi altra cosa presente sul proprio desktop.

Chi lavora da casa è più soddisfatto del proprio lavoro, rispetto a chi lavora in ufficio, quindi si registra un vantaggio per il lavoratore, che gode anche di un miglioramento dell’equilibrio tra lavoro e vita privata (fonte). Al contempo esistono vantaggi anche per il datore di lavoro: un incremento di produttività del 15% per lavoratore, una riduzione del tasso di assenteismo pari al 20%, risparmi del 30% sui costi di gestione degli spazi fisici (fonte). E se consideriamo gli spostamenti casa-lavoro, oltre all’ottimizzazione di tempi e costi (e la riduzione di stress per chi vive in città con molto traffico), si registrerebbe anche un vantaggio in termini di ambiente, visto che diminuirebbe l’inquinamento provocato dai mezzi di trasporto.

Lavoro ancora più intelligente?

All’estero, non lontanissimo dall’Italia, esistono forme molto evolute di “lavoro intelligente”, che migliorano notevolmente il work-life balance del lavoratore, tanto da renderlo più felice e al tempo stesso più produttivo.
In Svizzera, per alcuni dipendenti pubblici, gli spostamenti da casa verso l’ufficio saranno considerati alla stregua di orario di lavoro, e quindi retribuito, se i lavoratori effettivamente impiegano il loro tempo sul treno, autobus o tram per svolgere l’attività lavorativa.
In Finlandia la premier (una donna, 34 anni, figlia di due genitori dello stesso sesso, questo per evidenziare quanto l’Italia sia lontana anni luce da questa nazione) ha proposto la settimana corta di lavoro: 4 giorni, 6 ore, stesso stipendio. Idea nata sul modello di Microsoft in Giappone con un obiettivo: rendere più felici le persone, permettendo loro di recuperare il tempo di vivere, e renderle più soddisfatte e meno frustrate quando si recano al lavoro.
In Svezia, altro paese scandinavo con benefit sociali e orari di lavoro ridotti a favore del tempo libero, i dipendenti a tempo indeterminato possono usufruire di un periodo sabbatico*. Hanno diritto ad un periodo di aspettativa di 6 mesi per lanciare un progetto e creare una start-up (che non sia in concorrenza con l’azienda stessa). Se non riescono possono rientrare al lavoro e occupare la posizione che avevano lasciato. Un ottimo modo per aumentare l’appagamento dei lavoratori e al tempo stesso incentivare la nascita di start-up, magari per lanciare progetti innovativi.

*La possibilità di astenersi dal lavoro per creare una start-up potrebbe diventare realtà anche in Italia, dal momento che è attualmente in esame alla Commissione Attività produttive una proposta di legge contenente disposizioni per la promozione delle start-up. All’articolo 9 del testo della proposta si legge: “I dipendenti di datori di lavoro pubblici e privati possono chiedere un periodo di congedo, continuativo o frazionato, non superiore a due anni, nel caso in cui intendano costituire una start-up innovativa o una PMI innovativa […]. Durante il periodo di congedo […] il dipendente conserva il posto di lavoro e non ha diritto alla retribuzione”.

Pronti al cambiamento

Che siano questi o meno i cambiamenti che riguarderanno il lavoro nel settore IT anche in Italia, occorre non indugiare ulteriormente nel cogliere l’opportunità di miglioramento offerto dallo smart working. Quest’ultimo, oltre ai vantaggi sopra descritti, può essere un grande plus in termini di appetibilità agli occhi dei lavoratori. I Millennial e i nativi digitali, che si accingono a divenire, se non lo sono già, professionisti dell’IT, saranno la maggioranza della forza lavoro presente sul mercato. Il loro approccio naturale alla digitalizzazione potrebbe effettivamente essere il propulsore al cambiamento delle abitudini professionali a cui abbiamo assistito fino a oggi.

bookmark_borderBasta con i video verticali!

La diffusione degli smartphone ha decretato gradualmente la fine delle fotocamere compatte, ha reso quasi inutile l’utilizzo di videocamere per usi amatoriali, ma soprattutto ha trasformato tutti i possessori di cellulari in fotografi e videomaker.

L’impugnatura naturale degli smartphone, ovvero il modo in cui li teniamo in mano, però ha determinato la crescita di un fenomeno fastidioso, una brutta abitudine: la registrazione di video verticali, ovvero in modalità “portrait” anzichè “landscape”. Scattare foto di tipo portrait può essere ancora accettabile, se non necessario, per esigenze di inquadratura, ma filmare in maniera verticale, sebbene possa essere comodo, genera un video sgradevole, che molto spesso non è nemmeno in grado di riprendere l’oggetto del video nella sua interezza.

Da anni guardiamo schermi: a casa guardiamo la TV, in ufficio lavoriamo al computer, nel tempo libero andiamo al cinema, ecc ecc. Come mai in questi casi gli schermi sono sempre stati landscape, cioè larghi orizzontalmente?

I nostri occhi sono posizionati in orizzontale, il che crea un angolo di visione più ampio in orizzontale che in verticale. Quindi il motivo per cui gli schermi sono orientati in orizzontale è abbastanza ovvio: uno schermo largo si adatta alla nostra anatomia meglio di uno schermo alto.

Ciò nonostante è abbastanza diffusa l’abitudine di filmare in verticale, rendendo di fatto i video poco usabili quando vengono visualizzati su altri dispositivi. Filmare in maniera verticale marchia i video come fruibili esclusivamente da smartphone e ogni visualizzazione in altri dispositivi li rende inguardabili. Un esempio banale è registrare un video in modalità portrait con il cellulare e poi vederlo al pc o in TV. Un esempio emblematico sono i video amatoriali che spesso vengono mostrati in programmi televisivi, che diventano dei rettangoli verticali su un fondo nero, oppure con dei riempitivi sui lati.

Un altro caso di scarsa usabilità dei video verticali si ha quando vengono caricati su YouTube o altre piattaforme di video streaming, qui un esempio. Come si vede la resa del video non è gradevole, a meno che non venga visualizzato in uno smartphone. Invece filmare come in quest’altro video rende la fruibilità accettabile, sia da computer sia da smartphone (in quest’ultimo caso si può eventualmente ruotare lo schermo per ottimizzare la visualizzazione).

Probabilmente, se per assurdo non fossero stati inventati gli smartphone ma soltanto i tablet, il fenomeno dei video verticali non sarebbe esistito! Realizzare video verticali sarebbero stati dei casi rarissimi perchè si sarebbe scelto sempre l’orientamento orizzontale, sia perchè abituati da sempre a vedere gli schermi così, sia perchè non sarebbe stato possibile impugnarlo verticalmente con una sola mano.

Filmare in verticale è un fenomeno scaturito non soltanto dalla diffusione degli smartphone ma anche dall’utilizzo dei social network, i quali, basandosi sul desiderio di condivisione degli utenti, hanno dato un’ulteriore spinta a registrare dei video… e a farlo in maniera sbagliata, dal momento che sulle varie piattaforme social l’orientamento dei video non è un problema.

Ciò nonostante sarebbe preferibile seguire il naturale orientamento degli occhi piuttosto che il modo naturale di impugnare il telefono. Pertanto, prima di fare un video impiegate un secondo in più per ruotare il telefono!

C’è solo una cosa peggiore di registrare i video in verticale: ruotare il telefono durante la registrazione! In qualsiasi modalità si cominci a registrare, non va fatto assolutamente, altrimenti si costringono i destinatari del video a girare il dispositivo, quando possibile… altrimenti devono girare la testa!

bookmark_borderImpostare http_proxy in caso di password con caratteri speciali

Può capitare di essere connessi ad internet tramite un server proxy e la password del prioprio account contenga, per ragioni di sicurezza, dei caratteri speciali, come ad esempio !, @ ecc.

Se il proprio sistema operativo è una distribuzione Linux, come Ubuntu, per connettersi tramite il proxy può essere necessario impostare le variabili http_proxy e https_proxy, ma il comando per farlo non funziona nel caso di password contenente caratteri riservati, come ad esempio F@oo!B#ar$:

export http_proxy = "http://utente:F@oo!B#ar$@myProxy.myServer.com:3128"

È possibile che venga visualizzato un errore o che il comando non abbia alcun effetto proprio a causa dei caratteri speciali contenuti nella password.

La soluzione è utilizzare l’encoding URL, previsto per i caratteri riservati. Utilizzando strumenti da riga di comando, come unum o gnome-character-map, si può ricavare il codice esadecimale di un carettare speciale:

Partendo dall’hex di un carattere è possibile quindi determinare l’encoding URL corrispondente. Quindi @ diventa %40, : diventa %3A, ! diventa %21, ecc., cosicché la password presa come esempio diventa F%40o%3Ao%21B%23ar%24.

Ora è possibile utilizzare questi codici al posto dei caratteri speciali e settare il proxy senza problemi:

export http_proxy="http://user:F%40o%3Ao%21B%23ar%24@myProxy.myServer.com:3128"

Se PHP è installato sul proprio sistema operativo, per convertire rapidamente caratteri speciali o intere password si può usare il seguente comando:

echo 'F@oo!B#ar$' | php -R 'echo urlencode($argn)."\n";'

Oppure installando gridsite-clients si può scrivere semplicemente urlencode 'F@oo!B#ar$'ed ottenere la password convertita.

Articolo originale: link.