[HowTo] Trocear un video desde línea de comandos con ffmpeg o mencoder

Posted: sábado, 9 de noviembre de 2019 by Termita in Etiquetas: , , , , , , , ,
0

¿Para qué podemos querer trocear un video?
Por ejemplo, para subirlo a nuestra "nube" de Telegram, que sólo admite un máximo de 1'5gb por archivo.

Debo señalar que cuando a veces he troceado con ffmpeg -probablemente a causa de las características del "ripeo" del video- el resultado tiene un desfase audio-video. Esto es francamente desagradable.

Por otro lado, mencoder a día de hoy ya no es una herramienta que esté siendo mantenida activamente, al contrario de ffmpeg. Esto no resta potencia a mencoder, mas cabe señalarlo.


A. Mediante mencoder

mencoder -noskip -mc 0 -ss hhmmssDeInicio -endpos hhmmssDeFin -oac copy -ovc copy nombredelvideoOrigen.avi -o nombredelvideo_fragmento_xdey.avi

(*) Los tiempos que se asignarán han de ser dados en el formato hh:mm:ss

(**) El parámetro -noskip -mc 0 sirve para que no se salte los frames duplicados ("duplicate frames"). Esto es útil para evitar desincronía audio-video.

---------------------------
por ejemplo:

mencoder -noskip -mc 0 -ss 00:00:00 -endpos 00:40:00 -oac copy -ovc copy historiadelinux.avi -o nombredelvideo_fragmento_1de2.avi

mencoder -noskip -mc 0 -ss 00:40:00 -endpos 01:15:08 -oac copy -ovc copy historiadelinux.avi -o nombredelvideo_fragmento_2de2.avi

De esta forma, dado un video llamado historiadelinux.avi lo partiremos en 2 fragmentos, teniendo en cuenta los frames duplicados. Un fragmento será de exactamente 40' y el otro de 35' y 8''.
---------------------------


B. Mediante ffmpeg


ffmpeg -i nombredelvideoorigen.avi -ss hh:mm:ssDeInicio -to hh:mm:ssDeFin -c:v copy -c:a copy nombredelvideo_fragmento_xdey.avi


(*) Los tiempos que se asignarán han de ser dados en el formato hh:mm:ss

(**) En caso de detectarse desincronización audio-video en el producto resultante se podría añadir el parámetro -async 1 o aresample [ffmpeg -i nombredelvideoorigen.avi -ss hh:mm:ssDeInicio -to hh:mm:ssDeFin -async 1 -c:v copy -c:a copy nombredelvideo_fragmento_xdey.avi]



--------------------------
Fuentes
https://www.linuxadictos.com/cortar-videos.html
http://felinfo.blogspot.com/2016/02/cortar-un-video-desde-el-terminal-linux.html
https://mencoder-users.mplayerhq.narkive.com/f3jEAKxP/mencoder-skips-duplicate-frames-even-with-vf-harddup-and-noskip

https://www.mankier.com/1/mplayer#General_Encoding_Options_(Mencoder_Only)
https://www.mankier.com/1/ffmpeg

[HowTo] Almacenar listado de todas las carpetas, subcarpetas y ficheros

Posted: lunes, 4 de noviembre de 2019 by Termita in Etiquetas: , , , , , , , , ,
0

Este blog se está transportando a un sitio "más libre" y menos intrusivo.
Puede consultarse este artículo en su nueva ubicación:
>>>>>>>>>>>>>>>>>>>>>>

0

El problema que le encuentro a programas como jpegoptim es que la optimización, forzada por el usuario o no, no la aplica a las dimensiones de las imagenes sino que incide sobre otros aspectos como el color y demás. Ocurre que, mediante jpegoptim, fuerces la optimización de una imagen de 4Mb para que se convierta en una de 300Kb y las dimensiones siguen siendo exageradas, pudiendo haber "recortado" ahí también.
Conocí jpegoptim gracias a Atareao, que hace una fabulosa labor de divulgación, y debo decir que es una aplicación excelente a pesar de eso que señalo.

Dicen que hay un programa llamado BIRT (Batch Image Resizing Thing) que permite redimensionar imagenes en masa, automáticamente. Yo no lo he probado, mas dicen que hay formas mucho más rápidas de hacer esto desde línea de comandos:
Y una de esas formas es mediante mogrify.

Mogrify se instala junto al paquete imagemagick, del que ya se ha hablado en este blog [1] [2]
    sudo apt install imagemagick


El procedimiento básico con mogrify es el siguiente:

1. Hacemos copia de seguridad de las imagenes que vamos a procesar,

2. Ejecutamos desde línea de comandos, por ejemplo la siguiente orden:
mogrify -resize 800 /rutadelasimagenes/*.jpg
(*) así se redimensionan todas las imagenes .jpg a una anchura 800 píxeles manteniendo la relación de aspecto, es decir, la proporcionalidad.

También se le puede especificar unas dimensiones concretas de anchura y altura. Así:
mogrifý -resize 800x600! /rutadelasimagenes/*.png

O esto, para redimensionar a la mitad todas las imagenes de una carpeta:
mogrify -resize 50% /rutadelasimagenes/*



(*) mogrify -al contrario que (creo) jpegoptim- no conserva la fecha original de creación o modificación de los ficheros sobre los que actúa.


--------------------
Fuentes:

[HowTo] Una forma de actualizar la versión de Telegram en Linux Mint o similares

Posted: domingo, 3 de noviembre de 2019 by Termita in Etiquetas: , , , , , , ,
0

Me ocurrió que, estando trabajando con Telegram en Linux Mint (supongo en otras distribuciones ocurrirá también), el primero -Telegram- me informó que mi versión estaba desactualizada.
Hice un sudo apt-get update y no parecía que hubiera actualizaciones disponibles para ese software.
Miré y remiré infructuosamente en los ajustes de Telegram buscando un maldito botón de "actualizar".

La solución fue sencilla:

1. Cerramos Telegram, lo apagamos.

2. Buscamos una carpeta llamada /Telegram que se suele encontrar en /home/tuusuario que contiene dos archivos de tipo "Programa (application/x-executable)":
Uno, como no, se llama Telegram.
Y el otro se llama Updater.



3. A continuación bastará con ejecutar el programita llamado Updater y esperar.
Veremos en el monitor del sistema que sube un poco la actividad del procesador y al rato se abrirá Telegram.

En mi caso se actualizó a una versión intermedia, probablemente dado que lo tenía bastante desactualizado, y entonces ya sí aparece en el interface de Telegram un botón de "Actualizar".
Click ahí y Telegram se actualiza definitivamente a su última versión.
Fin.

0

Si vamos a construir una .ISO a partir de un dispositivo de almacenamiento primero comprobaremos su nombre, es decir /dev/xxxx
sudo mount
ô también se puede consultar con un
ls /dev

Y procedemos a construir la .ISO. La nomenclatura es esta:
dd if=/dev/xxxx of=/rutadondequeremosguardarlaiso/nombrearchivo.iso status=progress

(*) El parámetro status=progress nos permite conocer el progreso de la operación de dd, que por defecto es mudo. [@@@ + formas de mostrar el progreso de una operación]

-------------------------------
Por ejemplo:

Si queremos almacenar en nuestro escritorio una .ISO de un dvd que está en /dev/dvd

dd if=/dev/dvd of=/home/usuario/Escritorio/dvdrom.iso status=progress

ô, tratándose de un una unidad lectora de dvd por usb (/dev/sr0):

dd if=/dev/sr0 of=/home/usuario/Escritorio/dvdrom.iso status=progress


Si queremos almacenar en nuestro escritorio una .ISO de un cd que está en /dev/cdrom
dd if=/dev/cdrom of=/home/usuario/Escritorio/cdrom.iso status=progress

-------------------------------

Si queremos crear una .ISO de una carpeta, el procedimiento es el siguiente:
mkisofs -o /rutadondequeremosguardarlaiso/nombredearchivo.iso /carpetaquequeremosrespaldareniso





---------------------------
Fuentes:
https://blog.desdelinux.net/como-crear-un-iso-desde-el-terminal/

[HowTo] Scanner Acer Benq 5000 en Linux Mint y similares

Posted: sábado, 2 de noviembre de 2019 by Termita in Etiquetas: , , , , , , , , , , , , ,
1

El scanner Acer Benq 5000 es un viejo scanner usb de principios de siglo cuyos controladores fueron diseñados para Windows XP.
Actualmente no existe soporte oficial de Acer Benq, y ni siquiera los controladores están disponibles para descargar desde la página oficial del fabricante. MUY MAL.




Al conectar el scanner a un sistema GNU Linux como Linux Mint e intentar digitalizar un documento mediante "Simple Scan", la herramienta que éste -Linux Mint- trae por defecto, constatamos que no funciona.

No queda más remedio que tunear un poco el sistema para que software y hardware trabajen juntos.

1.
Descargamos los controladores para Windows XP oficiales de Benq desde sitios variopintos (mas desgraciadamente no oficiales). Nos interesa la carpeta BIN, que contiene el fichero.bin -que es una especie de firmware- adecuado.
Ni en broma ejecutaría esas aplicaciones -supuestos drivers- en un sistema Windows, porque probablemente -dado que han salido de páginas diferentes a la oficial (que ya no los sirve) los ejecutables, por ejemplo, podrían traer malware incorporado.
Para facilitar más las cosas y que no tengan que andar buscando y descargándose controladores, he aquí los diversos ficheros .bin que contiene el software original de Benq, listos para descargar:

suma de verificación sha256 / archivo.bin
7e03162fd5ebe883e5a56691fb8788917c14d508ef6a0d4a30bdf1a3583b4d24  20F8V116.bin
e5ebf16df0450df668583b669b85910a7552a12d9d73d18b9d1d54e52fd147b5  20F8V119.bin
cdf4fef3a65df5ebd9a2bcf233d01468f6135c97cef3c331c8f177f1741d8d30  20FCV112.bin
6a97d2e43222038d827402f87919e97c6802be804d57088535472c1ebc301e07  u126v041.bin
08facfa90863ae1deb42e8eb605868f0239528bc270b37359a98617319a5f368  U126V043.BIN
1bdd48d7ed7a7cdb5100ca84914978ea0fdac4f0b63121d8a662a38e8326bbb6  U174V041.BIN
754959dd5a858b3bc5094e506bbe620f01b050314c5743fd14e77694d2ba2010  u176v040.bin
3f9b756f55b1bcababefc638f6f6bac062395df72dd273bc8f10c3af849da2e3  U176V042.BIN
02a2d21a4cd5176db6630316257c4944e9919c6c56faca30c844622a6e6f57fd  u190v041.bin
d0570515fc244e92eb715d515120cae760f4da209e782fedc7bdbf5df35b3316  U190V044.BIN
da0e91b95f25842400948b16dbf69192224903c362c6f740bf13519599448ebe  u192v073.bin
a0efa08309bd07c6caadcdba7455362b0df602d009055af8eb93062c0fe496ed  U192V074.BIN
0e674b560354dcae51e02e12dccefc0842d1615a15ee6c4f1f9faeee185e73cc  u222V065.bin
26d5f30582c004fd002c4679fe7e82ef353910c1663e238b3cb89314cee5e0ce  U222V067.BIN
63edc8dfc0b1e1dff59d745b52c1aaa56c4e7ed2e8dc32f763ccc37a5665c480  U252V065.BIN
7146410812f8f366958014ad43eaf661bf8de8e2d04d2c084ba5d876c04421b0  U254V042.BIN
7b5751a0e000f61c1be14165537ea52e99f27ce2ca76ef4da71437a8f891ceae  u34v110.bin
7b5751a0e000f61c1be14165537ea52e99f27ce2ca76ef4da71437a8f891ceae  U34V110.BIN
a69f7885c514e4e1a2069c3cad864c58f3e9203f54252db033a8d224c28bcffa  u64v119.bin
6764df589675b414a789f5af6ba77cc3fff0c7dae818d6722693996e5e60931b  U64V120.BIN
2b635ec0b368654a2b943cd19153a40e12f222fd7fd787df53175da78ddb93bb  u96v121.bin
2b635ec0b368654a2b943cd19153a40e12f222fd7fd787df53175da78ddb93bb  U96V121.BIN

2.
Ejecutamos en línea de comandos la siguiente orden
sudo sane-find-scanner




Nos dará información sobre el "vendor", el "product" y el modelo.
En mi caso es: 04a5 20f8 FlatbedScanner 22

Cada uno de esos archivos .bin que se enuncian más arriba son adecuados para un modelo concreto de scanner Acer Benq.




En mi caso, que tengo un Benq 5000, según la página snapscan.sourceforge.net equivale a un hardware 04a5 20f8 FlatbedScanner 22 y por tanto al fichero 20F8V116.bin

3.
Crearemos la carpeta /usr/share/sane/snapscan/ -si es que no está creada ya- y allí copiaremos el archivo .bin descargado (en mi caso 20F8V116.bin) que nos interese.
sudo cp archivo.bin /usr/share/sane/snapscan/

Hay quien, a continuación, cambia los permisos de /usr/share/sane/snapscan/archivo.bin. Yo no lo hago, mas he aquí los comandos para hacerlo:
sudo chmod 754 archivo.bin
sudo chmod o+r archivo.bin

4.
Editamos el fichero de configuración /etc/sane.d/snapscan.conf
sudo cp /etc/sane.d/snapscan.conf /etc/sane.d/snapscan.conf.bak
sudo nano /etc/sane.d/snapscan.conf

... modificando esta línea:
firmware /usr/share/sane/snapscan/your-firmwarefile.bin
y la dejamos así (en mi caso):
firmware /usr/share/sane/snapscan/archivo.bin
en mi caso quedaría así:
firmware /usr/share/sane/snapscan/20F8V116.bin

También la linea siguiente, que está comentada con un #:
# /dev/usb/scanner0 bus=usb
La descomentamos quitándole el '#' y la dejamos así:
/dev/usb/scanner0 bus=usb

Guardamos con Ctrl+O y salimos con Ctrl+X

5.
Reiniciamos el sistema.

Si queremos podemos ejecutar desde línea de comandos:
sudo scanimage -L




Y también
sudo lsusb

Estos comandos nos darán información.

6.
Lo importante en todo caso es que lanzaremos la aplicación "Simple Scan". En preferencias comprobamos que el scanner es reconocido y procedemos a digitalizar un documento.

En estos momentos en que escribo estas líneas aún estoy probando archivos .bin para quedarme con el que mejor trabaje. Debo decir que todavía no he logrado que el scaner se comporte como lo hacía bajo Windows, aunque hace su trabajo.




----------------------------------

Fuentes
.

StackEdit: escribir en markdown para Blogger

Posted: by Termita in Etiquetas: , , , , , ,
0

StackEdit es un editor MarkDown basado en el navegador que permite publicar documentos (MarkDown o html convertido) en diferentes sitios, entre los cuales está Blogger.
Está desarrollado por un señor llamado Benweet.

Para comenzar a escribir basta con entrar en el editor en: https://stackedit.io/app#

Una vez cargado por primera vez permite su uso offline, tal como señala el autor:

««««««««««««««««««««««««««««


StackEdit stores your documents in your browser, which means all your documents are automatically saved locally and are accessible **offline!**

> **Note:**

> - StackEdit is accessible offline after the application has been loaded for the first time.
> - Your local documents are not shared between different browsers or computers.
> - Clearing your browser's data may **delete all your local documents!** Make sure your documents are synchronized with **Google Drive** or **Dropbox** (check out the [<i class="icon-refresh"></i> Synchronization](#synchronization) section).

#### <i class="icon-file"></i> Create a document

The document panel is accessible using the <i class="icon-folder-open"></i> button in the navigation bar. You can create a new document by clicking <i class="icon-file"></i> **New document** in the document panel.

#### <i class="icon-folder-open"></i> Switch to another document

All your local documents are listed in the document panel. You can switch from one to another by clicking a document in the list or you can toggle documents using <kbd>Ctrl+[</kbd> and <kbd>Ctrl+]</kbd>.

#### <i class="icon-pencil"></i> Rename a document

You can rename the current document by clicking the document title in the navigation bar.

#### <i class="icon-trash"></i> Delete a document

You can delete the current document by clicking <i class="icon-trash"></i> **Delete document** in the document panel.

#### <i class="icon-hdd"></i> Export a document

You can save the current document to a file by clicking <i class="icon-hdd"></i> **Export to disk** from the <i class="icon-provider-stackedit"></i> menu panel.

> **Tip:** Check out the [<i class="icon-upload"></i> Publish a document](#publish-a-document) section for a description of the different output formats.


----------


Synchronization
-------------------

StackEdit can be combined with <i class="icon-provider-gdrive"></i> **Google Drive** and <i class="icon-provider-dropbox"></i> **Dropbox** to have your documents saved in the *Cloud*. The synchronization mechanism takes care of uploading your modifications or downloading the latest version of your documents.

> **Note:**

> - Full access to **Google Drive** or **Dropbox** is required to be able to import any document in StackEdit. Permission restrictions can be configured in the settings.
> - Imported documents are downloaded in your browser and are not transmitted to a server.
> - If you experience problems saving your documents on Google Drive, check and optionally disable browser extensions, such as Disconnect.

#### <i class="icon-refresh"></i> Open a document

You can open a document from <i class="icon-provider-gdrive"></i> **Google Drive** or the <i class="icon-provider-dropbox"></i> **Dropbox** by opening the <i class="icon-refresh"></i> **Synchronize** sub-menu and by clicking **Open from...**. Once opened, any modification in your document will be automatically synchronized with the file in your **Google Drive** / **Dropbox** account.

#### <i class="icon-refresh"></i> Save a document

You can save any document by opening the <i class="icon-refresh"></i> **Synchronize** sub-menu and by clicking **Save on...**. Even if your document is already synchronized with **Google Drive** or **Dropbox**, you can export it to a another location. StackEdit can synchronize one document with multiple locations and accounts.

#### <i class="icon-refresh"></i> Synchronize a document

Once your document is linked to a <i class="icon-provider-gdrive"></i> **Google Drive** or a <i class="icon-provider-dropbox"></i> **Dropbox** file, StackEdit will periodically (every 3 minutes) synchronize it by downloading/uploading any modification. A merge will be performed if necessary and conflicts will be detected.

If you just have modified your document and you want to force the synchronization, click the <i class="icon-refresh"></i> button in the navigation bar.

> **Note:** The <i class="icon-refresh"></i> button is disabled when you have no document to synchronize.

#### <i class="icon-refresh"></i> Manage document synchronization

Since one document can be synchronized with multiple locations, you can list and manage synchronized locations by clicking <i class="icon-refresh"></i> **Manage synchronization** in the <i class="icon-refresh"></i> **Synchronize** sub-menu. This will let you remove synchronization locations that are associated to your document.

> **Note:** If you delete the file from **Google Drive** or from **Dropbox**, the document will no longer be synchronized with that location.

----------


Publication
-------------

Once you are happy with your document, you can publish it on different websites directly from StackEdit. As for now, StackEdit can publish on **Blogger**, **Dropbox**, **Gist**, **GitHub**, **Google Drive**, **Tumblr**, **WordPress** and on any SSH server.

#### <i class="icon-upload"></i> Publish a document

You can publish your document by opening the <i class="icon-upload"></i> **Publish** sub-menu and by choosing a website. In the dialog box, you can choose the publication format:

- Markdown, to publish the Markdown text on a website that can interpret it (**GitHub** for instance),
- HTML, to publish the document converted into HTML (on a blog for example),
- Template, to have a full control of the output.

> **Note:** The default template is a simple webpage wrapping your document in HTML format. You can customize it in the **Advanced** tab of the <i class="icon-cog"></i> **Settings** dialog.

#### <i class="icon-upload"></i> Update a publication

After publishing, StackEdit will keep your document linked to that publication which makes it easy for you to update it. Once you have modified your document and you want to update your publication, click on the <i class="icon-upload"></i> button in the navigation bar.

> **Note:** The <i class="icon-upload"></i> button is disabled when your document has not been published yet.

#### <i class="icon-upload"></i> Manage document publication

Since one document can be published on multiple locations, you can list and manage publish locations by clicking <i class="icon-upload"></i> **Manage publication** in the <i class="icon-provider-stackedit"></i> menu panel. This will let you remove publication locations that are associated to your document.

> **Note:** If the file has been removed from the website or the blog, the document will no longer be published on that location.

----------


Markdown Extra
--------------------

StackEdit supports **Markdown Extra**, which extends **Markdown** syntax with some nice features.

> **Tip:** You can disable any **Markdown Extra** feature in the **Extensions** tab of the <i class="icon-cog"></i> **Settings** dialog.

> **Note:** You can find more information about **Markdown** syntax [here][2] and **Markdown Extra** extension [here][3].


### Tables

**Markdown Extra** has a special syntax for tables:

Item     | Value
-------- | ---
Computer | $1600
Phone    | $12
Pipe     | $1

You can specify column alignment with one or two colons:

| Item     | Value | Qty   |
| :------- | ----: | :---: |
| Computer | $1600 |  5    |
| Phone    | $12   |  12   |
| Pipe     | $1    |  234  |


### Definition Lists

**Markdown Extra** has a special syntax for definition lists too:

Term 1
Term 2
:   Definition A
:   Definition B

Term 3

:   Definition C

:   Definition D

> part of definition D


### Fenced code blocks

GitHub's fenced code blocks are also supported with **Highlight.js** syntax highlighting:

```
// Foo
var bar = 0;
```

> **Tip:** To use **Prettify** instead of **Highlight.js**, just configure the **Markdown Extra** extension in the <i class="icon-cog"></i> **Settings** dialog.

> **Note:** You can find more information:

> - about **Prettify** syntax highlighting [here][5],
> - about **Highlight.js** syntax highlighting [here][6].


### Footnotes

You can create footnotes like this[^footnote].

  [^footnote]: Here is the *text* of the **footnote**.


### SmartyPants

SmartyPants converts ASCII punctuation characters into "smart" typographic punctuation HTML entities. For example:

|                  | ASCII                        | HTML              |
 ----------------- | ---------------------------- | ------------------
| Single backticks | `'Isn't this fun?'`            | 'Isn't this fun?' |
| Quotes           | `"Isn't this fun?"`            | "Isn't this fun?" |
| Dashes           | `-- is en-dash, --- is em-dash` | -- is en-dash, --- is em-dash |


### Table of contents

You can insert a table of contents using the marker `[TOC]`:



»»»»»»»»»»»»»»»»»»»»»»»»»»»»