Convertir une vidéo d’un format vers un autre sous Debian 10

Mon appareil photo filme en 1280×720 pixels à 24 fps avec un débit du flux vidéo d’environ 22000 kb/s. Le format du sous-échantillonnage de la chrominance est du type yuvj422p. Le débit du flux audio de 176 kb/s. La fréquence d’échantillonage du son est de 11025 Hz (en mono).

J’utilise en mode console FFmpeg :
ffmpeg -i video.avi -s 1024×576 -b:v 1024k -crf 23 video.webm
-b:v : on spécifie le bitrate vidéo.
-crf : de 0 à 63 (0 : meilleure qualité).
Voir également : Recommended Settings for VOD.

Remarque : Pour pouvoir lire la vidéo sur un ordinateur un peu ancien, enregistrer en ogg :
ffmpeg -i video.avi -s 1024×576 -b:v 1024k -crf 23 video.ogg

Le format H264 qui suit est un format fermé. J’évite de l’utiliser.
ffmpeg -i video.avi -s 1024×576 -c:v libx264 -pix_fmt yuv420p -b:v 1024k -crf 23 video.mp4

Extraire le flux audio d’une vidéo sous Debian 10

J’utilise en mode console FFmpeg :
ffmpeg -i video.avi -vn -b:a 320k audio.mp3
-vn : sans vidéo
-b:a : on spécifie le bitrate audio (8k, 16k, 24k, 32k, 40k, 48k, 64k, 80k, 96k, 112k, 128k, 160k, 192k, 224k, 256k, ou 320k suivant la qualité désirée).
Voir également : FFmpeg MP3 Encoding Guide.

Couper une vidéo sous Debian 10

J’utilise en mode console FFmpeg :
ffmpeg -ss 00:00:00.00 -t 00:01:59.00 -i input.mp4 -c copy output.mp4
avec
-ss : début de la séquence (hh:mm:ss.frame)
-t : durée (hh:mm:ss.frame)
-i : spécifie le fichier d’entrée
input.mp4 : nom du fichier à couper
-c copy : copie à l’identique la totalité des flux
output.mp4 : nom du fichier obtenu

Asus P2530UA, Wifi et Debian 10

Pour utiliser le Wifi sur un ordinateur portable Asus P2530UA sous Debian 10, il faut se résoudre à installer un paquet « non-free ». La carte Wifi est une Qualcomm Atheros QCA9377 (Driver : ath10k).

MODIFIER LE FICHIER SOURCES.LIST DES DÉPÔTS :

Dans la console :
sudo nano /etc/apt/sources.list

# deb cdrom:[Debian GNU/Linux 10]/ buster contrib main
# Mises à jour de sécurité
deb http://security.debian.org/debian-security buster/updates main contrib non-free
deb-src http://security.debian.org/debian-security buster/updates main contrib non-free
## Miroir Debian
# Dépôt de base : buster
deb http://ftp.fr.debian.org/debian/ buster main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ buster main contrib non-free
# Mises à jour pour stable : buster-updates, previously known as ‘volatile’
deb http://ftp.fr.debian.org/debian/ buster-updates main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ buster-updates main contrib non-free
# Rétroportages vers stable : buster-backports
deb http://ftp.fr.debian.org/debian/ buster-backports main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ buster-backports main contrib non-free

INSTALLER LE PAQUET « NON-FREE » :

Dans la console :
sudo apt-get install firmware-atheros

Latis Pro 5.6.25.0 : Installation sous Windows 2000

Le seul ordinateur qui me reste sous Windows fonctionne avec Windows 2000. Une antiquité donc. Ayant besoin d’installer Latis Pro 5.6.25.0 (qui ne fonctionne que sous Windows), je me suis résolu à l’installer sur mon vieux système. Et là patatras, j’ai un message qui m’indique que la bibliothèque de liaisons dynamique gdiplus.dll est introuvable. Après une trop longue recherche sur Internet, j’ai résolu le problème en mettant le fichier en question (issu du patch de sécurité WindowsXP-KB975337-x86-ENU) dans le répertoire LatisPro (C:\Program Files\Eurosmart\LatisPro). L’installation du logiciel en version gratuite se fait avec la clé « LTP 111 222 333 » (sans limitation de temps ; les acquisitions ne sont toutefois pas possibles).

Installation de DOSBox sous Debian 10

DOSBox est un émulateur simulant un environnement compatible MS-DOS dans le but d’exécuter des programmes développés autrefois pour ce système. Il se trouve que j’ai besoin de faire tourner certains de mes vieux programmes…

Dans la console :
sudo apt-get install dosbox
mkdir ~/DOSBox (ou un autre chemin)
nano ~/.dosbox/dosbox-0.74-2.conf

Modifier le fichier dosbox-0.74-2.conf :
[cpu]
cycles=max
(à la place de cycles=auto)
[dos]
keyboardlayout=fr
(à la place de keyboardlayout=auto)
[autoexec]
mount c ~/DOSBox
(pour un chemin qui contient des espaces, mettre le chemin entre guillements : " ")

Lancer DOSBox depuis la console :
dosbox

Dans DOSBox :
c:
dir

Pour basculer entre le mode fenêtré et le mode plein écran, presser Alt-Entrée. Pour libérer le curseur de la souris, presser Ctrl-F10.


Complément personnel à mettre dans le fichier dosbox-0.74-2.conf dont il est question ci-dessus :

[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.
mount c "/media/eric/Fichiers Eric/Programmation/DOSBox/"
c:

### OPEN WATCOM 1.9 ###
path=%path%;c:\watcom\binw       
set include=c:\watcom\h
set watcom=c:\watcom
set edpath=c:\watcom\eddat
set wipfc=c:\watcom\wipfc

### TURBO PASCAL 7.0 ###
path=%path%;c:\tp7\bin

### NASM 2.15.05 ###
path=%path%;c:\nasm

Installation du scanner Epson Perfection V37 sous Debian 13

Mise à jour du 3 juillet 2026.

Brancher et allumer le scanner.

Dans la console :
lsusb (Pour récupérer ID idVendor:idProduct)
sudo nano /etc/udev/rules.d/60-sane-missing-scanner.rules

Compléter le fichier ci-dessus avec :
# Epson Perfection V37
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="014a", MODE="0664", GROUP="scanner", ENV{libsane_matched}="yes"

Écrire ce fichier sur le disque en tapant Ctrl O.
Quitter le fichier en tapant Ctrl X.

Télécharger le fichier iscan-perfection-v370-bundle-2.30.6.x64.deb.tar.gz depuis cette adresse (64bit(amd64)). En cas de lien rompu, faire une nouvelle recherche depuis EPSON Download Center et adapter les instructions ci-dessous.

Dans la console :
cd Téléchargements
tar -zxvf iscan-perfection-v370-bundle-2.30.6.x64.deb.tar.gz
cd iscan-perfection-v370-bundle-2.30.6.x64.deb
sudo gdebi data/iscan-data_1.39.2-1_all.deb => IGNORER LE PROBLÈME
sudo gdebi core/iscan_2.30.6-1_amd64.deb
sudo gdebi plugins/iscan-plugin-perfection-v370_1.0.1-1_amd64.deb

Installer Arduino 1.0.6 sous Debian 10

Les sites officiels : Arduino et Debian

Dans la console :

Si le répertoire Arduino n’existe pas déjà, je le crée :
sudo mkdir /usr/share/arduino

Je télécharge la version 64 bits (à adapter) :
cd Téléchargements
wget -c http://downloads.arduino.cc/arduino-1.0.6-linux64.tgz

Je décompresse l’archive et l’installe à l’endroit voulu :
tar -zxvf arduino-1.0.6-linux64.tgz
sudo mv arduino-1.0.6 /usr/share/arduino

Je télécharge l’icône Arduino et l’installe à l’endroit voulu :
wget http://entropie.org/3615/download/arduino.png
sudo mv arduino.png /usr/share/arduino

Pour effacer une version précédente d’Arduino (x à adapter) :
sudo rm -rf /usr/share/arduino/arduino-1.x.x

Pour intégrer le programme au menu de Xfce, je crée un fichier arduino-1.0.6.desktop dans le répertoire /usr/share/applications :
cd /usr/share/applications
sudo nano arduino-1.0.6.desktop

[Desktop Entry]
Type=Application
Name=Arduino 1.0.6
Comment=Un environnement de développement pour Arduino
GenericName=Create physical computing projects
Exec=/usr/share/arduino/arduino-1.0.6/arduino
Icon=/usr/share/arduino/arduino.png
Terminal=false
Categories=Development;Engineering;Electronics;
MimeType=text/x-arduino
Keywords=embedded electronics;electronics;avr;microcontroller;

Pour que le port série soit accessible et éviter de devoir utiliser Arduino en mode administrateur :
sudo usermod -a -G tty $USER ($USER à adapter)
sudo usermod -a -G dialout $USER ($USER à adapter)
Redémarrer.

Installer Arduino 1.8.15 sous Debian 10

Article mis à jour le 9 juillet 2021.

Les sites officiels : Arduino et Debian

Dans la console :

Je télécharge la version 64 bits (à adapter) :
cd Téléchargements
wget -c http://downloads.arduino.cc/arduino-1.8.15-linux64.tar.xz

Je décompresse l’archive et l’installe à l’endroit voulu :
tar -xJf arduino-1.8.15-linux64.tar.xz
sudo mv arduino-1.8.15 /usr/share/arduino

Je télécharge l’icône arduino et l’installe à l’endroit voulu :
wget http://entropie.org/3615/download/arduino.png
sudo mv arduino.png /usr/share/arduino/

Pour effacer une version précédente d’Arduino :
sudo rm -rf /usr/share/arduino

Pour intégrer le programme au menu de Xfce, je crée un fichier arduino.desktop dans le répertoire /usr/share/applications :
cd /usr/share/applications
sudo nano arduino.desktop

[Desktop Entry]
Type=Application
Name=Arduino
Comment=Un environnement de développement pour Arduino
GenericName=Create physical computing projects
Exec=/usr/share/arduino/arduino
Icon=/usr/share/arduino/arduino.png
Terminal=false
Categories=Development;Engineering;Electronics;
MimeType=text/x-arduino
Keywords=embedded electronics;electronics;avr;microcontroller;

Pour que le port série soit accessible et éviter de devoir utiliser Arduino en mode administrateur :
sudo usermod -a -G tty $USER ($USER à adapter)
sudo usermod -a -G dialout $USER ($USER à adapter)
Redémarrer.

Compléments (ATtiny, ATmega Mighty, ESP32) :

Pour ATtiny (45/85/44 notamment) :
https://github.com/SpenceKonde/ATTinyCore
Pour ATmega (644P/1284P notamment) :
https://github.com/MCUdude/MightyCore
Voir également : https://entropie.org/3615/index.php/2015/09/25/resolution-du-probleme-lie-a-la-bibliotheque-sd-arduino-1-0-5-sur-latmega1284p/
Pour ESP32 :
https://github.com/espressif/arduino-esp32

Fichier > Préférences > URL de gestionnaire de cartes supplémentaires :
http://drazzy.com/package_drazzy.com_index.json,https://mcudude.github.io/MightyCore/package_MCUdude_MightyCore_index.json,https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

Puis aller dans le gestionnaire de carte (Outils > Type de carte > Gestionnaire de carte) pour installer :
ATTinyCore by Spence Conde,
MightyCore by MCUdude,
esp32 by Espressif Systems.

Le capteur capacitif QT110

La vidéo : 3 réglages différents du QT110 (DC Out, Toggle et Pulse)

Le montage :

Concernant les composants périphériques au QT110 :
Cx est en général de l’ordre de 10 picofarads. Cs doit être 1000 fois plus grand que Cx, soit 10 nanofarads. Rs est à 470 kilo-ohms. Re doit être le plus grand possible tout en préservant la sensibilité du capteur (sur mon montage, Re est à 1 kilo-ohms).

Concernant le QT110 :
La patte 1 est reliée au +5V de la carte Arduino.
La patte 2 est reliée à l’entrée analogique 0 de la carte Arduino.
Les pattes 3 et 4 sont reliées soit à +5V, soit à Gnd sur la carte Arduino, selon la manière dont on souhaite faire réagir le capteur (voir le tableau ci-dessous).
La patte 5 n’est pas connectée (si on choisit un gain maximum).
Les pattes 6 et 7 sont reliées entre elles par l’intermédiaire du condensateur Cs en parallèle avec la résistance Rs.
La patte 7 est reliée à la résistance Re en série avec l’électrode de détection.
La patte 8 est reliée à Gnd sur la carte Arduino.

DC Out : Quand on s’approche de l’électrode, la DEL verte s’éteint et la rouge s’allume. On repasse au vert dès qu’on s’éloigne de l’électrode. Par contre si le contact se prolonge, on reste au rouge près de 10 secondes (ou 60 secondes) avant de basculer de nouveau au vert.
Toggle : La couleur change à chaque nouvelle approche de l’électrode. Elle ne change pas quand on s’en éloigne.
Pulse : Quand on s’approche de l’électrode, la DEL verte s’éteint et la rouge s’allume une fraction de seconde, puis on bascule tout de suite au vert, même si le contact se prolonge.

Concernant les DEL rouge et verte :
Elles sont chacune mises en série avec une résistance de 330 ohms, puis reliées sur les sorties digitales 2 et 3 de la carte Arduino.

Le code Arduino :

/////////////////////////////////////////////////////////////////
/*
  Capteur capacitif QT110
*/
/////////////////////////////////////////////////////////////////

int ledrPin = 2;  // LED rouge sur la sortie digitale 2.
int ledvPin = 3;  // LED verte sur la sortie digitale 3.
int aPin = 0;     // Patte 2 du QT110 sur l'entrée analogique 0.
int value = 0;    // Variable de stockage de la valeur mesurée.

void setup()
{
  pinMode(ledrPin, OUTPUT);  // Declare the ledrPin as an OUTPUT.
  pinMode(ledvPin, OUTPUT);  // Declare the ledvPin as an OUTPUT.
  pinMode(aPin, INPUT);
}

void loop()
{
  value = analogRead(aPin);  // Read the input pin.
  
  if (value >= 512) digitalWrite(ledrPin, LOW);
  else digitalWrite(ledrPin, HIGH);
  if (value < 512) digitalWrite(ledvPin, LOW);
  else digitalWrite(ledvPin, HIGH);
  
  delay(20);  // Wait 20 milliseconds.
}

/////////////////////////////////////////////////////////////////