Ripper un DVD

Le seul préalable :

# apt install ffmpeg

Tout d'abord, on concatène les fichiers VOB qui nous intéresse après avoir monter le DVD :

# mount /dev/sr0 /mnt

$ cat /mnt/VIDEO_TS/VTS_01_1.VOB /mnt/VIDEO_TS/VTS_01_2.VOB /mnt/VIDEO_TS/VTS_01_3.VOB /mnt/VIDEO_TS/VTS_01_4.VOB > /home/user/Vidéos/monfilm.VOB

On repère les flux vidéos (généralement le 1), audios et sous-titres :

$ ffmpeg -i monfilm.VOB

Le flux vidéo est généralement le premier, on repère ensuite les flux audio et le flux de sous-titre si besoin. Ici, on suppose que l flux video est 0:1, les flux audios 0:10 (cantonnais) et 0:11 (français). Le flux sous-titre est le 0:3.

On encode ainsi :

$ ffmpeg -i monfilm.VOB -map 0:1 -map 0:10 -map 0:11 -map 0:3 -c:v libx264 -preset slow -crf 16 -c:a copy -c:s copy -metadata:s:a:0 language=yue -metadata:s:a:1 language=fra -metadata:s:s:0 language=fra mon_film.mp4

-map 0:1 donne l'ordre des flux de la future vidéo. Le premier flux sera la vidéo (flux 0:1 du DVD), le deuxième sera l'audio en cantonnais (flux 0:10) puis l'audio en français (0:11) et enfin les sous-titres (0:3).

-c:v libx264 : le codec vidéo sera h264

-c:a copy : on copie le flux audio

-c:s copy : on copie le flux de sous-titres

-preset veryslow : vitesse d'encodage, inversement proportionnelle à la qualité de l'image. Les options sont : ultrafast, superfast, fast, medium, slow, slower, veryslow. Medium est le réglage par défaut.

-crf : définit le niveau de qualité (q). L'échelle va de 0 à 51 (petit nombre = + de temps de calcul)

-metadata:s:a:0 : définit la metadata du flux audio 0 (a:0) avec language =yue (cantonnais), même chose pour le a:1 en français

-metadata:s:s:0 définit la langue des sous-titres (français)

Puis, en dernier, le nom du fichier en sortie.

Une alternative pour encoder en bitrate variable et en deux passes :

ffmpeg -i input.VOB -c:v libx264 -b:v 2000k -pass 1 -an -f null /dev/null && ffmpeg -i input.VOB -c:v libx264 -b:v 2000k -pass 2 -c:a aac-b:a 128k c:s copy output.mp4

En cas d'erreur, remplacer -na par -vsync cfr

La doc complète : https://ffmpeg.org/documentation.html dont le wiki : https://trac.ffmpeg.org/

Une autre doc : https://forum.hardware.fr/hfr/VideoSon/Traitement-Video/encodage-ffmpeg-dummies-sujet_154546_1.htm

Ripper un DVD

Chroot

Pour mémoire :

# mount /dev/sdc3 /mnt
# mount /dev/sdc4 /mnt/var
# mount /dev/sda1 /mnt/home
# mount --bind /dev /mnt/dev
# mount -t proc /proc /mnt/proc
# mount -t sysfs /sys /mnt/sys
# chroot /mnt /bin/bash

Et une fois terminé :

# exit
# umount /mnt/sys
# umount /mnt/proc
# umount /mnt/dev
# umount /mnt/home
# umount /mnt/var
# umount /mnt

Chroot

Groupes et utilisateurs

Modification du groupe primaire d'un utilisateur :

Pour que le groupe primaire de papadakis soit admin :

# usermod -g admin papadakis

Ajout d'un groupe à un utilisateur existant

# usermod -a -G ftpusers papadakis

Ajout d'un nouvel utilisateur à un groupe primaire

# useradd -g admin valere

Ajout d'un nouvel utilisateur à un groupe secondaire

# useradd -G ftpusers valere

plusieurs groupes sont possibles :

# useradd -G sshusers,ftpusers valere

La commande groups récapitule tous les groupes

# groups papadakis
papadakis : papadakis admin sshusers ftpusers

Groupes et utilisateurs

awk

awk permet d'extraire des motifs qui sont ordonnés sous forme de champs.

awk '{print $NF}' expression

renvoie le dernier champ de l'expression

awk '{print $1,$5} fichier

renvoie le premier et le cinquième champ des lignes d'un fichier de log (par exemple)

awk 'lenght($0)>75 {print}' fichier

renvoie les lignes de plus de 75 caractères.

En passant

Changer son navigateur par défaut en ligne de commande

Je me suis posé cette question suite à un bug de chromium que j'ai reporté.

Tout d'abord, pour savoir quel est le navigateur par défaut et les navigateurs installés :

 #update-alternatives --config x-www-browser

La réponse chez moi est :

Il existe 3 choix pour l'alternative x-www-browser (qui fournit /usr/bin/x-www-browser).

Sélection Chemin Priorité État
------------------------------------------------------------
* 0 /usr/bin/iceweasel 70 mode automatique
1 /usr/bin/chromium 40 mode manuel
2 /usr/bin/dwb 50 mode manuel
3 /usr/bin/iceweasel 70 mode manuel

J'ai ensuite une question :

Appuyez sur <Entrée> pour conserver la valeur par défaut[*] ou choisissez le numéro sélectionné :

Je laisse l'entrée telle qu'elle est mais je vais changer la priorité de dwb et la passer à 90 :

#update-alternatives --install /usr/bin/x-www-browser x-www-browser /usr/bin/dwb 90

Et voilà !

Changer son navigateur par défaut en ligne de commande

touch

Pour tester un script, j'ai eu besoin de changer la date d'un fichier, j'ai utilisé la commande touch.

Avec ses options :

-a pour donner au dernier accès l'heure actuelle

touch -a fichier

-m pour changer la date de modification à maintenant

touch -m fichier

-t utilise la date donnée en argument (au format ci dessous)

touch -t AAMMJJhhmm

-c ne crée pas de fichier si celui-ci n'existe pas (sinon c'est l'inverse)

touch -c fichier

-r utilise l'horodatage d'un autre fichier

touch -r modèle fichier

Je ne sais pas si je m'enresservirai un jour mais c'est noté.

touch