Ahorrando tiempo de compilación con make -j

A la hora de compilar una libreria, un programa o el propio kernel de Linux, el comando make por defecto utiliza un sólo procesador lógico (thread) del sistema.
Para acelerar los tiempos podemos utilizar el parámetro -j e indicar la cantidad de procesadores lógicos que queremos utilizar.

Ejemplo:

make -j 8

¿Cómo saber que cantidad de procesadores lógicos o threads tengo disponible?

cat /proc/cpuinfo | grep processor | wc -l

En el siguiente video les mostraré como compilar el kernel con un servidor Dell con doble procesador Intel(R) Xeon(R) CPU E5-2698 v4 @ 2.20GHz

 

Aprovechamos este post para invitarlos a participar de la edición 2017 de NAB SHOW en Las Vegas.

Se pueden registrar en el siguiente link: http://www.3way.com.ar/nab2017.php

Acceso remoto por tunel SSH inverso cuando no hay acceso

Cuantas veces han querido tener acceso SSH a un servidor dentro de una red privada de una empresa y no han logrado que el encargado en redes les haga un NAT hacia el puerto SSH (22) del servidor requerido.

A veces por políticas de seguridad o por inconvenientes en la configuración no logran redirigir algún puerto público al puerto 22 del servidor que queremos tener acceso.

Hay una solución, no temas tener que caer en las manos de un TeamViewer sin licencia.

Si Mahoma no va a la montaña, la montaña va a Mahoma.
Hay una posibilidad de hacer un SSH inverso (o túnel SSH).

¿Cómo?

Solo hay que acceder una única vez al servidor (el día de la instalación, o pedirle a alguien que ejecute una línea) y tener desde la pc que estamos intentando conectarnos el servidor de SSH corriendo, como también conocer la ip pública.
Sabiendo

esto, sólo es necesario ejecutar un comando de SSH:

ssh -N -f -R {puerto_destino}:localhost:22 {ip_publica_nuestra}

Ej: ssh -N -f -R 22022:localhost:22 200.142.168.151

Este comando se conecta por SSH a nuestra PC (pide login a nuestra pc) y deja un túnel creado asociado al localhost de nuestra pc, para que si luego nos queremos conectar a ese servidor lo podamos hacer con este simple comando:

Ej: ssh -p 22022 root@localhost

De esta manera tenemos creado un túnel constante a nuestra pc y nos podemos conectar sin necesidad de que haya que redirigir ningún puerto 22 desde el router.

* El servidor debe tener configurada correctamente la salida a Internet.
* Debe estar corriendo el servidor SSH desde la ip pública que estamos saliendo a Internet.
* Dicho script remoto podría quedar configurado al inicio con un  certificado SSH para que la conexión se restablezca sola si el servidor se reinicia.

Codec vs Format: Parte 1

Comúnmente, cuando hablamos de formatos de video, se suele confundir el concepto de codec con el de formato .

La diferencia es simple: El codec hace referencia al tipo de algoritmo que se utilizó para comprimir vídeo (o audio, subtitulos), mientras que la palabra formato suele referirse a la combinación de transporte (o encapsulamiento) que se utilizó para almacenar audio y video sumado a los codecs que se utilizaron para comprimirlos.

Formato = Transporte + codecs

Ejemplo: XDCAM es un formato que utiliza el transporte MXF, el codec de video MPEG2Video y el audio en PCM

No hay convenciones para todas las combinaciones posibles de manera que por lo general el formato hace referencia al transporte y comunmente se manifiesta en la extensión del archivo.

Por ejemplo: MP4. Cuando se habla de formato MP4 suele asociarse a que el transporte es MP4, que el codec de video es H264 y el codec de audio es AAC, pero los codecs podrían ser otros también.

Ejemplos de transportes:
MP4, AVI, MOV, MKV, MPEG-TS, OGG, WMV

Ejemplos de códecs:
H264, MPEG4, WMV, MPEG2-VIDEO, AAC, AC3

No todos los transportes pueden contener todos los codecs, y puede suceder que un reproductor reconozca el transporte pero no algunos de los códecs.

Imagínense al transporte justamente como un medio de transporte de carga (avion, tren, autobus) y al codec como los tipos de cargamento que podrían ir en su interior. Por los general son independientes unos de otros, salvo algunas excepciones que determinados transportes son exclusivos para determinados codecs como por ejemplo el FLV

AVI y MP4 son transportes.

A mi entender AVI podría ser un tranporte antiguo, limitado e inseguro como este tren:

Resultado de imagen para tren

y MP4 podría ser algo así:

Resultado de imagen para tren

 

¿WMV es un codec o un formato?

WMV es el nombre de un formato pero también es el nombre del codec ambos creado por Microsoft. Como formato solo puede contener en su interior codec de video WMV y codec de audio WMA. El codec WMV de video a su vez puede estar contenido dentro de un formato AVI

Cuando alguien dice que tiene un archivo de formato MP4, en realidad no se sabe que codec de video va a tener en su interior, hay una cantidad de codec soportados como MPEG2VIDEO y H264, pero en realidad sólo está haciendo referencia al tranporte.

Es muy importante saber entonces que cuando hablamos de formato generalmente hablamos de transporte, y que dentro del mismo existen videos y/o audios comprimidos con algún codec.