Archivi tag: linux

Convertire i filmati H.265/HEVC

La codifica H.265/HEVC porta con sé numerosi vantaggi, come il supporto a risoluzioni 8K, ma non viene ancora supportato a dovere dai Mac

Il successore della codifica H.264/MPEG-4 AVC (Advanced Video Coding), H.265/HEVC per l’appunto, offre la possibilità di comprimere i dati in modo efficace, senza perdere di qualità, o la possibilità di supportare risoluzioni 4K e 8K UHD fino a 8192 x 4320. Tuttavia, non viene ancora supportato a dovere e richiede inoltre molte risorse per la loro risoluzione. VLC, che spesso ci viene in aiuto, ancora non li riproduce in maniera fluida e senza artefatti.

Ecco allora la necessità di convertirli in un formato  più compatibile. Possiamo utilizzare FFmpeg a riga di comando:

$ ffmpeg -i inputfilename_h265.mp4 -c:a copy -c:v libx264 -preset slow -crf 18 outputfilename.mp4

sostituendo inputfilename_h265.mp4 con il nome del file H.265 nativo che si desidera convertire, e outputfilename.mp4 con il nome del file di destinazione che vogliamo creare in H.264.

Per chi non ce lo avesse già installato sul proprio Mac, è possibile farlo tramite MacPorts:

$ sudo port install ffmpeg +nofree

Il pacchetto si porta con sé molte dipendenze e a seconda dei casi l’installazione richiederà alcuni minuti.

Login remoto via SSH senza password

Per effettuare il login da remoto su un sistema Linux senza digitare ogni volta la password bastano i comandi ssh-keygen e ssh-copy-id e seguire le istruzioni descritte in questo articolo.

ssh-keygen permette di creare le chiavi pubbliche e private, mentre ssh-copy-id copia la chiave publica del client nella lista degli host autorizzati sul server remoto.

1° passo: creare le chiavi pubbliche e private sul client

Per prima cosa creiamo le nostre chiavi pubbliche e private sulla macchina client. Apriamo la console a riga di comando e digitiamo il comando ssh-keygen:

mark@local-host$ [Nota: qui siete nella console del client]
mark@local-host$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/mark/.ssh/id_rsa):[Premere il tasto Enter]
Enter passphrase (empty for no passphrase): [Premere il tasto Enter]
Enter same passphrase again: [Premere il tasto Enter]
Your identification has been saved in /home/mark/.ssh/id_rsa.
Your public key has been saved in /home/mark/.ssh/id_rsa.pub.
The key fingerprint is:
33:b3:fe:af:95:95:18:11:31:d5:de:96:2f:f2:35:f9
mark@local-host

2° passo: copiare la cave pubblica sul server remoto

A questo punto copiamo la chiave pubblica appena creata sul server remoto tramite il comando ssh-copy-id:

mark@local-host$ ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host
mark@remote-host's password: [Inserisci la password del server remoto seguito dal tasto Enter]
Now try logging into the machine, with "ssh 'remote-host'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.

3° passo: login sul server remoto

Non ci resta che effettuare il login sul server remoto senza che ci venga richiesta la password di accesso:

mark@local-host$ ssh remote-host
Last login: Sun Nov 16 17:22:33 2008 from 192.168.1.2
[Nota: SSH non richiederà di inserire la password.]
mark@remote-host$ [Nota: adesso sei nel prompt del server remoto]

Come cercare la posizione geografica di un indirizzo IP dalla riga di comando

Se si desidera cercare la posizione geografica di un indirizzo IP esistono diversi servizi online, come ad esempio Geo IP Tool. Tra questi è possibile provare il servizio ipinfo.io. A differenza di altri, ipinfo.io fornisce API di geolocalizzazione basate su JSON, quindi puoi facilmente cercare la geolocalizzazione dalla riga di comando, usando strumenti come curl.

Per esempio:

$ curl ipinfo.io/216.58.205.163

{
"ip": "216.58.205.163",
"hostname": "mil04s28-in-f3.1e100.net",
"city": "Mountain View",
"region": "California",
"country": "US",
"loc": "37.4192,-122.0570",
"postal": "94043",
"org": "AS15169 Google LLC"
}

Linux Mint Cinnamon con Enlightenment E21

Già da un po’ di tempo Linux Mint Mint 18 è diventata ufficialmente la mia distro linux preferita. Derivata da Ubuntu, ne eredita la semplicità e l’ottimo supporto all’hardware ma utilizza come interfaccia grafica Cinnamon che trovo davvero ben fatto per le esigenze di chi utilizza il PC come “desktop”, ovvero nella maniera più classica.

Di recente ho avuto modo di provare l’ultima versione di Enlightenment che ho sempre trovato fantastica anche se più adatta all’utente esperto. Si discosta molto da Cinnamon ma merita senz’altro di essere provata da chi, come me, programma. Aggiungerla al sistema tramite apt e i repository PPA è davvero semplice, basta aprire un Terminale e digitare:

$ sudo add-apt-repository ppa:niko2040/e19
$ sudo apt-get update
$ sudo apt-get install enlightenment terminology

A questo punto disconnettersi e avviare una nuova sessione selezionando Enlightenment come display manager (se si usa LightDM cliccare sull’icona a fianco del nome utente prima di confermare la password con il tasto INVIO).

Queste istruzioni sono valide ovviamente anche per Ubuntu.

Unire due o più avi o altri formati video da terminale

Per unire due o più video in unico in un unico file è sufficiente eseguire i seguenti comandi da Terminale:

$ cat video1.avi video2.avi > out.avi
$ mencoder -forceidx -oac copy -ovc copy out.avi -o out_final.avi
$ rm out.avi

Il comando cat legge il contenuto di ciascun file, byte per byte, e lo riscrive nel file di output accordandoli nell’ordine specificato. Si potrebbe pensare erroneamente che sarebbe sufficiente questo ma se si prova ad aprire il file out.avi il lettore video utilizzato indicherà come durata totale quella del primo video. Questo perché legge l’header del primo file. In effetti cat non rielabora il flusso dati in ingresso trattando ogni tipo di file allo stesso modo, a prescindere dalla sua natura.

Pertanto è necessario riscrivere l’header del file in uscita. Ecco quindi il motivo del secondo comando: mencoder rilegge tutto lo stream, sia audio che video, e scrive un nuovo header nel file di output finale. Le opzioni -oac copy e -ovc copy indicano al programma di copiare i flussi audio e video senza rielaborarne il formato, così da rendere il processo estremamente veloce.

Un’ultima nota: mentre cat fa parte del set di comandi standard unix ed è quindi già presente in OS X, mencoder richiedere l’installazione a parte. Io uso MacPorts ed è stato sufficiente installare il pacchetto mplayer:

$ sudo port selfupdate
$ sudo port upgrade outdated 
$ sudo port install mplayer

Tutto qui.