Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 Re : Multimédia » Script Encodage VOB en MKV [GPU NVIDIA] » Hier 21:52:32

Tu peux regarder avec ce script simple qui extrait les données, je
l'ai appelé « extract.sh » :


#! /bin/sh
awk '/TFF/ {print "TFF:", $8, "BFF:", $10,  "Progressive:", $12, "Undetermined:", $14}'
 


Il suffit de faire


#PSEUDO CODE
ffmpeg|extract.sh
 


La première ligne affiché par ffmpeg est aussi intéressantes pour
les « Repeated Fields ». Je n'ai rien fait pour afficher ces données
mais j'ai l'impression quelles sont importantes.
Je n'ai pas compris grand chose. Je ne vois pas comment détecter
quoi que ce soit, car je ne sais pas ce qu'il faut détecter.

#2 Re : Multimédia » Script Encodage VOB en MKV [GPU NVIDIA] » Hier 17:26:51

golgot200 a écrit :

Si TFF ou BFF n'est pas à 0, la vidéo est entrelacée,


Je n'ai pas l'impression que ce soit aussi simple…
Il y a aussi le champ progressive qui rentre en jeu.

#3 Re : Multimédia » Script Encodage VOB en MKV [GPU NVIDIA] » Hier 16:46:08

C'est marrant pour les commandes


| awk_lang
 


J'ai fait la même chose sur ma version du script qui utilise le cpu uniquement.
D'ailleurs sur ma version j'avais déjà viré toutes commandes en commentaires.

#4 Re : Multimédia » Script Encodage VOB en MKV [GPU NVIDIA] » Hier 15:19:00

C'est quoi la différence entre celui du #403 et celui du #405 ?

#5 Re : Multimédia » Script Encodage VOB en MKV [GPU NVIDIA] » Hier 13:19:41

Voilà ce que ça donne :


#!/bin/bash

PATH=$PATH:/sbin:/usr/sbin

#### Golgot200 ###############################################################################
# 22-03-2019
# Archlinux
# MPlayer SVN-r38101
# ffmpeg version n4.1.1
# lsdvd 0.17
# ogmtools v1.5 (dvdxchap)
# mkvtoolnix-cli 32.0.0-1 (mkvmerge)
# mencoder-38125-5
##############################################################################################
# Modifications par enicar 09-26/06/2019
##############################################################################################

declare -a MPLAYER_IDENTIFY
declare -a LSDVD_X

mplayer_identify () {
    if [[  "${#MPLAYER_IDENTIFY[@]}" -eq 0 ]]; then
        mapfile MPLAYER_IDENTIFY < \
                <(mplayer -noconfig all -nocache -vo null -ao null -frames 0 \
                          -identify -dvd-device "$DEVICE" dvd://"$1" 2>/dev/null)
    fi
    echo -n "${MPLAYER_IDENTIFY[@]}"
}

awk_lang () {
    local ilang="$1"
    local olang="$2"
    awk "/language: $ilang/ && /format:/ \
        {printf \"-metadata:s:a:\"\$3\" language=$olang -metadata:s:a:\"\$3\" title=\"\$5\$6\" \"}"

}

awk_lpcm () {
    local ilang="$1"
    local olang="$2"
    awk "/language: $ilang/ && /format: lpcm/ \
        {printf \"-metadata:s:a:0 language=$olang -metadata:s:a:0 title=\"\$5\$6\" \"}"

}

lsdvd_x () {
    if [[ "${#LSDVD_X[@]}" -eq 0  ]]; then
        mapfile LSDVD_X < <(lsdvd -x "$DEVICE" -t "$1" 2> /dev/null)
    fi
    echo -n "${LSDVD_X[@]}"
}

merge_chapters () {
    local output="$2"
    dvdxchap -t  "$1" "$DEVICE" > "$FOLDER/$1-$TITLE-CHAPTERS.txt"
    mkvmerge "$FOLDER/$1-$TITLE.mkv" --chapters "$FOLDER/$1-$TITLE-CHAPTERS.txt" \
             -o "$output"

    rm -f "$FOLDER/$1-$TITLE.mkv"
    rm -f "$FOLDER/$1-$TITLE-CHAPTERS.txt"
}

encode_sidfr_and_merge () {
    local output="$2"
    for n in $SIDFR; do
        mencoder -dvd-device "$DEVICE" "dvd://$1" \
                 -nosound -ovc copy -force-avi-aspect "$RATIO" \
                 -o /dev/null -ifo "$MOUNT_POINT/VIDEO_TS/VTS_01_0.IFO" \
                 -sid "$n" -vobsubout "$FOLDER/$i-vobsubs-fr" -vobsuboutindex "$n"
    done

    mkvmerge "$FOLDER/$1-$TITLE+CHAPTERS.mkv" -a fre --default-language fr \
             "$FOLDER"/*.idx -o "$output"
}

menage () {
    rm -f "$FOLDER"/*.idx
    rm -f "$FOLDER"/*.sub
    rm -f "$FOLDER/$1-$TITLE+CHAPTERS.mkv"
}


## CONDITION : UN SEUL DVD-VIDÉO
mapfile -t  BLKID < <(blkid /dev/sr* |sed -E 's/^([^:]+): .*/\1/')

if [[ "${#BLKID[@]}" -eq  "0" ]] ; then
    echo "Aucun DVD trouvé: abandon"
    exit 0
fi

idx=0
for dev in "${BLKID[@]}"; do
    mnt=$(mount |sed -n -E "s/^${dev//\//\\\/} on (.*) type .*\$/\\1/p")
    [[ -z "$mnt" ]] && continue
    if [[ -f "$mnt/VIDEO_TS/VIDEO_TS.IFO" ]]; then
        DEVICES[$idx]="$dev"
        MOUNT_POINTS[$idx]="$mnt"
        idx=$((idx+1))
    fi
done

if [[ "${#DEVICES[@]}" -eq 0 ]]; then
    echo "Aucun dvd vidéo monté : Abandon"
    exit 0
elif [[ "${#DEVICES[@]}" -gt 1 ]];  then
    echo "Il y a plus d'un dvd video détecté : Abandon"
    exit 0
fi

DEVICE=${DEVICES[0]}
MOUNT_POINT=${MOUNT_POINTS[0]}

## LABEL DU DVD-VIDÉO & NOMBRE TOTAL DE TITRES SUR CELUI-CI
idx=0
TITLE_COUNT=0
regexp='^Title: '
while read -r line; do
    idx=$((idx+1))
    if [[ "$idx" -eq 1 ]]; then
        TITLE=${line#*: }
    elif [[ "$line" =~ $regexp ]]; then
        TITLE_COUNT=$((TITLE_COUNT+1))
    fi
done < <(lsdvd "$DEVICE" 2>/dev/null)

unset regexp dev mnt idx BLKID DEVICES MOUNT_POINTS

if [[ -z "$TITLE" ]]; then
    echo "Pas de dvd vidéo trouvé : abandon"
    exit 0
fi

echo "Proceed..."

DIR=$(xdg-user-dir DESKTOP)
FOLDER="$DIR/$TITLE"

if [[ ! -d "$FOLDER" ]]; then
    echo "$FOLDER n'existe pas !"
    echo "Création Du Dossier $FOLDER"
    mkdir -p "$FOLDER"
fi

for (( i=1; i<=TITLE_COUNT; i++ ))
do
    MPLAYER_IDENTIFY=()
    LSDVD_X=()
    ## TITRES D'UNE DURÉE DE PLUS DE .... SECONDES [ ICI, 1200 SECONDES = 20 MINUTES]
    LENGTH=$(mplayer_identify "$i" |sed -E -n 's/^.*ID_LENGTH=([0-9]+).*$/\1/p')
    LIMIT=1200
    [[ "$LENGTH" -le "$LIMIT" ]] && continue

## METADATAS DIVERS [À COMPLETER AU CAS OÙ IL MANQUERAIT QUELQUES LANGUES]
## https://fr.wikipedia.org/wiki/Liste_des_codes_ISO_639-1
    FR=$(mplayer_identify "$i" | awk_lang fr fra)
    FR_LPCM=$(mplayer_identify "$i" | awk_lpcm fr fra)
    EN=$(mplayer_identify "$i" | awk_lang en en)
    EN_LPCM=$(mplayer_identify "$i" | awk_lpcm en en)
    DE=$(mplayer_identify "$i" | awk_lang de ger)
    DE_LPCM=$(mplayer_identify "$i" | awk_lpcm de ger)
    IT=$(mplayer_identify "$i" | awk_lang it ita)
    IT_LPCM=$(mplayer_identify "$i" | awk_lpcm it ita)
    ES=$(mplayer_identify "$i" |awk_lang es spa)
    ES_LPCM=$(mplayer_identify "$i" |awk_lpcm es spa)
    NL=$(mplayer_identify "$i" |awk_lang nl nld)
    NL_LPCM=$(mplayer_identify "$i" |awk_lpcm nl nld)
    HE=$(mplayer_identify "$i" |awk_lang he heb)
    HE_LPCM=$(mplayer_identify "$i" |awk_lpcm he heb)
    HU=$(mplayer_identify "$i" |awk_lang hu hun)
    HU_LPCM=$(mplayer_identify "$i" |awk_lpcm hu hun)
    PL=$(mplayer_identify "$i" |awk_lang pl pol)
    PL_LPCM=$(mplayer_identify "$i" |awk_lpcm pl pol)
    CS=$(mplayer_identify "$i" |awk_lang cs cze)
    CS_LPCM=$(mplayer_identify "$i" |awk_lpcm cs cze)
    JA=$(mplayer_identify "$i" |awk_lang ja jpn)
    JA_LPCM=$(mplayer_identify "$i" |awk_lpcm ja jpn)
    SV=$(mplayer_identify "$i" |awk_lang sv swe)
    SV_LPCM=$(mplayer_identify "$i" |awk_lpcm sv swe)
    UNKNOWN=$(mplayer_identify "$i" |awk_lang unknown und)
    UNKNOWN_LPCM=$(mplayer_identify "$i" |awk_lpcm unknown und)
    EMPTY_LANG=$(mplayer_identify "$i" |awk_lang ' aid:' und)
    EMPTY_LANG_LPCM=$(mplayer_identify "$i" |awk_lpcm ' aid:' und)

    TAGS_ID_STREAMS="${FR}${EN}${DE}${IT}${ES}${NL}${HE}${HU}${PL}${CS}${JA}${SV}${UNKNOWN}${EMPTY_LANG}"
    TAGS_ID_STREAMS_LPCM="${FR_LPCM}${EN_LPCM}${DE_LPCM}${IT_LPCM}${ES_LPCM}${NL_LPCM}${HE_LPCM}${HU_LPCM}${PL_LPCM}${CS_LPCM}${JA_LPCM}${SV_LPCM}${UNKNOWN_LPCM}${EMPTY_LANG_LPCM}"

## DISNEY A-R-C-C-O-S
#mplayer dvdnav://"$i" -dvd-device "$DEVICE" -dumpstream -dumpfile "$i-$TITLE.vob"

    COUNT_LPCM=$(lsdvd_x "$i" |grep -c 'lpcm')
    COUNT_AC3_DTS_MPEG1=$(lsdvd_x "$i" | grep -c -E 'ac3,|dts,|mpeg1,')

    MAP_ID_STREAMS=$(lsdvd_x "$i" |sed -E -n '/Audio:/s/.*(0x)/\1/p' | \
                         awk '{ gsub(/c/, "1c") }
                              /0x/ {gsub (/^/,"-map i:")}
                              { print $0 }'
)

    MAP_ID_STREAMS_LPCM=$(lsdvd_x "$i" | sed -n -E '/lpcm/s/.*(0x)/\1/p' | \
                              awk '{ gsub(/c/, "1c") }
                                   /0x/ { gsub (/^/,"-map i:")}
                                   { print $0 }'
)


    SIDFR=$(lsdvd_x "$i" |awk '/Subtitle:/ && /Language: fr/ { sub(/,$/ ,"", $2);
                                     if ($2 ~ /^[0-9]+$/) print (--$2) }'
)

    COUNT_SID_FR=$(echo "$SIDFR" |wc -w)

    RATIO=$(lsdvd_x "$i" | \
                awk 'NR <= 3 && /Aspect ratio:/ {sub(/\//, ":", $11); x = x " " $11}
                          END { sub(/.$/, "", x); print x}'
)

    INFO_AC3_DTS_MPEG1=$(lsdvd_x "$i" | \
                awk '/ac3,|dts,|mpeg1,/  { x = x $4 ","}
                    END { sub(/,*$/, "", x); print x }'
)

    INFO_LPCM=$(lsdvd_x "$i" | awk '/lpcm/ { print $4 }')

#CROP=$(ffmpeg -i "$FOLDER/$i-$TITLE.vob" -ss 60 -t 15 -t 1 -vf cropdetect -f null - 2>&1 | awk '/crop/ { print $NF }' | tail -1)

    mplayer -noconfig all -nocache -dvd-device "$DEVICE" dvd://"$i" \
            -dumpstream -dumpfile "$FOLDER/$i-$TITLE.vob"

    ## ENCODAGE
    ## GPU
    ## FILMS
    ## AC3 & DTS & MPEG1
    ## SOUS-TITRAGE(S) VF
    if [[ "$COUNT_LPCM" -eq "0" ]] && \
        [[ "$COUNT_AC3_DTS_MPEG1" -ge "1" ]] && \
        [[ "$COUNT_SID_FR" -ge "1" ]]
    then
        ffmpeg -hwaccel auto -c:v mpeg2_cuvid -i "$FOLDER/$i-$TITLE.vob" \
            -map 0:v -metadata title="$TITLE" \
            -c:v h264_nvenc -preset slow -profile:v high -level 4.2 \
            -loglevel repeat+verbose  ${MAP_ID_STREAMS} \
            -c:a copy $TAGS_ID_STREAMS -movflags +faststart -qmin 18 -qmax 23 \
            -y "$FOLDER/$i-$TITLE.mkv"

        rm -f "$FOLDER/$i-$TITLE.vob"
        merge_chapters "$i" "$FOLDER/$i-$TITLE+CHAPTERS.mkv"
        encode_sidfr_and_merge "$i" "$FOLDER/$i-$TITLE-[Language:$INFO_AC3_DTS_MPEG1]+SUBVF.mkv"
        menage "$i"

    ## ENCODAGE
    ## GPU
    ## CONCERTS LIVE
    ## LPCM (ON GARDE QUE LA PISTE LPCM)
    ## PAS DE SOUS-TITRAGE

    elif [[ "$COUNT_LPCM" -ge "1" ]] && \
        [[ "$COUNT_AC3_DTS_MPEG1" -ge "0" ]] && \
        [[ "$COUNT_SID_FR" -eq "0" ]]
    then
        ffmpeg -hwaccel auto -c:v mpeg2_cuvid -i "$FOLDER/$i-$TITLE.vob" \
            -map 0:v -metadata title="$TITLE" -c:v h264_nvenc -preset hq \
            -profile:v high -level 4.2 -loglevel repeat+verbose  \
            ${MAP_ID_STREAMS_LPCM} -acodec pcm_s16be $TAGS_ID_STREAMS_LPCM \
            -movflags +faststart -qmin 18 -qmax 23 -y "$FOLDER/$i-$TITLE.mkv"

        rm -f "$FOLDER/$i-$TITLE.vob"
        merge_chapters "$i" "$FOLDER/$i-$TITLE-[Language:$INFO_LPCM].mkv"

    ## ENCODAGE
    ## GPU
    ## CONCERTS LIVE
    ## LPCM (ON GARDE QUE LA PISTE LPCM)
    ## SOUS-TITRAGE(S) VF

    elif [[ "$COUNT_LPCM" -ge "1" ]] && \
            [[ "$COUNT_AC3_DTS_MPEG1" -ge "0" ]] && \
            [[ "$COUNT_SID_FR" -ge "1" ]]
    then
        ffmpeg -hwaccel cuvid -c:v mpeg2_cuvid -i "$FOLDER/$i-$TITLE.vob" \
            -map 0:v -metadata title="$TITLE" \
            -c:v h264_nvenc -preset hq -profile:v high -level 4.2 \
            -loglevel repeat+verbose  ${MAP_ID_STREAMS_LPCM} \
            -acodec pcm_s16be $TAGS_ID_STREAMS_LPCM -movflags +faststart \
            -qmin 18 -qmax 23 -y "$FOLDER/$i-$TITLE.mkv"

        rm -f "$FOLDER/$i-$TITLE.vob"
        merge_chapters "$i" "$FOLDER/$i-$TITLE+CHAPTERS.mkv"
        encode_sidfr_and_merge "$i" "$FOLDER/$i-$TITLE-[Language:$INFO_LPCM]+SUBVF.mkv"
        menage "$i"

    ## LA PETITE MAISON DANS LA PRAIRIE
    elif [[ "$COUNT_LPCM" -eq "0" ]] && \
            [[ "$COUNT_AC3_DTS_MPEG1" -ge "1" ]] && \
            [[ "$COUNT_SID_FR" -eq "0" ]]
    then
        ffmpeg -hwaccel auto -c:v mpeg2_cuvid \
            -i "$FOLDER/$i-$TITLE.vob" -map 0:v -metadata title="$TITLE" \
            -c:v h264_nvenc -preset hq -profile:v high -level 4.2\
            -loglevel repeat+verbose ${MAP_ID_STREAMS} \
            -c:a copy ${TAGS_ID_STREAMS} -movflags +faststart \
            -qmin 18 -qmax 23 -y "$FOLDER/$i-$TITLE.mkv"

        rm -f "$FOLDER/$i-$TITLE.vob"
        merge_chapters "$i" "$FOLDER/$i-$TITLE-[Language:$INFO_AC3_DTS_MPEG1].mkv"
    fi
done
 



J'espère n'avoir pas fait d'erreurs…

#6 Re : Multimédia » Script Encodage VOB en MKV [GPU NVIDIA] » Hier 13:09:34

golgot200 a écrit :

sur le 347, on vire filters et tout ce qui est commentés ? ( mis à part crop et dvdnav )


Dis moi exactement ce que tu veux. On peut en effet supprimer les commandes
en commentaire que j'ai laissé à titre informatif.
Tu veux garder la ligne mise en commentaire pour crop, et les deux lignes avec
le « mplayer dvdnav:… ».

Pour filter, tu veux que je vire la ligne avec le filtre dans la commande ffmpeg, c'est ça ?

#8 Re : Multimédia » Script Encodage VOB en MKV [GPU NVIDIA] » 25-06-2019 21:01:05

Ah ! J'ai aussi pensé un truc, pour les films (voire pour les concert) tu pourrais
utiliser la libvorbis libopus pour -acodec. Ça donne de très bon résultat et c'est beaucoup
plus léger que l'ac3 ou du pcm_sb16be.
Maintenant, j'utilise tout le temps la libvorbis libopus, en plus c'est rapide à encoder
(plus rapide que le ogg/mp3/aac).

EDIT: remplacé libvorbis par libopus, je suis fatigué ce soir…

#9 Re : Multimédia » Script Encodage VOB en MKV [GPU NVIDIA] » 25-06-2019 20:40:55

golgot200 a écrit :

La qualité de la vidéo d'origine peut aussi m'influencer sur la technique à employer, etc etc ...


J'aimerais bien que tu fasses un résumé de ces techniques avec les cas dans lesquels
tu les appliques. Ça serait vraiment très enrichissant. Mais bon, si tu n'as pas
le temps ou l'envie, tant pis.

EDIT: Aussi tu pourrais mettre dans le post #1 que le script qui va bien est au post #347 ?

#10 Re : Système » [résolu] grub et memtest (remise en ordre) » 25-06-2019 20:35:11

raleur a écrit :

A mon avis, ce serait une erreur.


Peut être… à vrai dire je tenterais l'expérience de configurer tous les systèmes
depuis le système principal. Je ne sais pas comment fonctionne os-prober,
donc tu dois avoir raison, mais bon je tenterais quand même le coup.
Ça demanderai de faire des scripts de configuration assez personnalisé, bref
ça serait un poil plus compliqué.

#11 Re : Système » [résolu] grub et memtest (remise en ordre) » 25-06-2019 20:04:22

Ah aussi, moi je n'installerai carrément pas grub sur les systèmes secondaires.
Et pour le mettre à jour je le ferai soit depuis le système principale (update-grub),
soit en faisant un chroot dans le système principale depuis le le système secondaire
sur la commande update-grub. Mais j'ai comme l'impression que tu vas trouver cela trop compliquer.
Au fait tu pourrais supprimer ce rapport trop long ?

#12 Re : Système » [résolu] grub et memtest (remise en ordre) » 25-06-2019 19:59:41

Debian Alain a écrit :

si j'avais pas collé l'intégralité des rapports , tu aurai compris ?


En fait, je n'ai rien lu du rapport que tu as collé… Je me suis amusé à le copier
pour constater qu'il faisait 14156 lignes. Alors, non  un truc aussi long je ne lis pas.
En plus les scripts de détections, j'en ai rien à faire, j'ai les mêmes ou presque sur mon
système. De plus si je veux consulter ceux que je n'ai pas il suffit de les télécharger.

#13 Re : Système » [résolu] grub et memtest (remise en ordre) » 25-06-2019 11:55:38

Debian Alain a écrit :

oups ! , pardon râleur mais j'y peux pas  grand chose .


Si tu peux faire quelque chose, c'est faire des rapports ciblés sur le problème plutôt
que de coller l'intégralité des scripts de configuration de grub (ce qui est inutile).
Personne ne lira jamais tout ça. Il faudrait être payé pour le faire. Rien que pour le copier
il faut plusieurs secondes pour le faire défiler avec « Maj page-bas ».
Le  truc qu'il faudrait faire c'est n'installer memtest que sur l'un des système, par sur tous.

#15 Re : Matériel » [obtenu] commande pour vérifier version opengl ? » 23-06-2019 23:11:13

statis a écrit :

Merci enicar,

Je ne sais pas comment "récupérer" OpenGL_version.c, j'ai lancé une recherche sur mon disque et ce fichier n'a pas été trouvé...


Tant pis alors. Ce n'est pas important.

#16 Re : Autres » [Résolu (si on veut)] Help ! Répertoire disque verrouillé. » 23-06-2019 12:15:59

Desktaupe a écrit :

Le problème c'est que le seul PC qui soit encore sous Windows ici est sous un Windows 7 sub-claquant qui fait 12 BSOD par jour et refuse toutes mises à jour et qui en prime ne voit plus le montage de disques externes sur une prise USB.


Dans ce cas, pourquoi encore utilisé du NTFS ? Quand on a plus besoin d'échanger des données
avec windows, il vaut mieux laisser de côté NTFS et préféré ext4 ou btrfs (voire reiserfs) à la place.
Pour linux ces systèmes de fichiers ont une bonne gestion contrairement à ntfs…

#17 Re : Autres » [Résolu (si on veut)] Help ! Répertoire disque verrouillé. » 23-06-2019 11:45:26

Debian Alain a écrit :

arrrghhh ! en général , sous linux , le ntfs est bridé .


Ce n'est plus vrai. Le paquet nfts-3g utilise fuse, et gère correctement la lecture,
l'écriture (et donc la suppression) sur du nfts. Cependant, si il y a des problèmes
il serait peut-être bon de faire un fsck.ntfs nftsrecover ou de faire faire une vérification du
système de fichier par windows.

EDIT : Je viens de vérifier, je n'ai pas de trouver de fsck.ntfs.

#18 Re : Programmation » [Résolu]cast (void) dans une define en C » 23-06-2019 10:52:40

Je pense que c'est pour dire au compilateur que l'on ne fait rien avec le résultat
de l'enchaînement de ces 3 instructions. Ce que je trouve étrange c'est que ça ressemble
à un appel de fonction sans le nom de la fonction.

#19 Re : Programmation » réduire le poids des pdf en ligne de commande » 23-06-2019 00:02:47

Philou92 a écrit :

Si tu peux éclairer ma lanterne... smile


C'est facile à comprendre. On va utiliser ce petit script pour comprendre :


#! /bin/sh

for arg in "$@"; do
    echo $arg
done
 


Ce script parcours les arguments passé au script et les affiche un par
un, chacun sur une ligne différente.
Si j'appelle ce script (que j'ai appelé arguments.sh) de cette façon :


sh arguments.sh coucou tout le monde
 


on a le retour :


coucou
tout
le
monde
 


Maintenant, si je fais :


sh arguments.sh 'coucou tout le monde'
 


Ce qui donne :


coucou tout le monde
 


Bref, le fait d'avoir entouré la chaîne avec des « ' » permet
d'inclure les espaces dans la chaîne.
Mais on va voir mieux, définissons une variable :


phrase='coucou tout le monde'
 


Ouvrons une parenthèse.
Là je suis obligé d'entourer la chaîne avec des « ' » ou des « " ».
Sinon si je fais :


phrase=coucou tout le monde
 


bash me répond :


-bash: tout : commande introuvable
 


à cause du fait que dans la syntaxe d'exécution d'une commande on peut
la faire précéder de la définition d'une variable que seul ce programme
verra dans son environnement. Fermons la parenthèse.

Revenons à notre « phrase ».
Si je fais :


sh arguments.sh $phrase
 


j'obtiens :


coucou
tout
le
monde
 


Par contre si je fais :


sh arguments.sh "$phrase"
 


j'obtiens :


coucou tout le monde
 


Et voilà, c'est compris ? C'est à cause du découpage en mot qui est fait
par le shell. Pour éviter cela, on doit entourer les variables avec des « " »
car le découpage en mot arrive après l'expansion des variables.

EDIT : Voir ici l'ordre dans lequel bash effectue les différentes opérations.

#20 Re : Matériel » [obtenu] commande pour vérifier version opengl ? » 22-06-2019 12:54:12

statis a écrit :

Il m'a demandé si j'avais des sugestions et comme j'ai du bug dans l'affichage, je ne me suis pas privé...
Problème il me demande de lancer la commande suivante que je ne connais pas du tout :


gcc  OpenGL_version.c -o OpenGL_version -lglut -lGL -lGLU
 



Et comme j'ai pas envie de casser mon beau Debian, je me renseigne wink


Ça dépend de ce qu'il y a dans le fichier OpenGL_version.c.
D'ailleurs j'aimerais bien voir son contenu.

#21 Re : Multimédia » Script Encodage VOB en MKV [GPU NVIDIA] » 22-06-2019 10:22:43

golgot200 a écrit :

Bravo !!! .......... on n'a pas le même oeil


Mouais, ce qui est ballot, c'est que je voulais dire droite (il était temps
que j'aille dormir). Bref, je me suis trompé hmm Mais, comme sur celle de droite
il n'y avait qu'une partie de l'image ce n'était pas facile de dire non plus.
Il aurait fallu les deux mêmes images exactement. Sur celle de gauche, il manque
un détail une petite fleur mauve au bord de l'omoplate droite.

#22 Re : Multimédia » Script Encodage VOB en MKV [GPU NVIDIA] » 22-06-2019 00:33:26

golgot200 a écrit :

Dis-moi où il y a les filtres et sans filtres :


Dans celle de gauche il y a des filtres. Ce qui fait me dire cela,
c'est le renforcement de la netteté. Mais bon difficile à dire.
Le truc aussi c'est que j'encode avec le preset medium en principe.
Pour mon usage perso, c'est suffisant et la vitesse d'encodage est bien
plus rapide. Là avec un preset slow et les filtres ça prend vraiment beaucoup
de temps.

#23 Re : Multimédia » Script Encodage VOB en MKV [GPU NVIDIA] » 21-06-2019 23:55:30

golgot200 a écrit :

et si une seule et unique bande son fr, il ne faut pas qu'il démultiplexe pour rien non ? Enfin je vois count_audio plus grand que 1 pour ça.


Mouais, c'est ce que j'ai compris… j'ai un doute, c'est sans importance.

#24 Re : Programmation » réduire le poids des pdf en ligne de commande » 21-06-2019 23:48:05

Philou92 a écrit :

J'ai collé il y a très longtemps ce code dans mon bashrc pour avoir la commande sous la main en cas de besoin.
La compression est variable, d'un facteur de 1 à 10 suivant le type de document, avec une bonne qualité en sortie.
A customiser selon les besoins en ajoutant par exemple une option de qualité de compression. smile

function pdfcomp(){
if [ $# -ne 2 ]
then
    echo "Erreur : nombre d'arguments incorrect" >&2
    echo "Usage : pdfcomp fichierréduit.pdf fichieràréduire.pdf"
else
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=$1 $2
fi
}


Très bien ta fonction, il ne manque que des " autour de $1 et $2, pour gérer
les noms avec des espaces wink

#25 Re : Scripts et automatisations de tâches » set date avec variable » 21-06-2019 19:37:27

vinski a écrit :

Merci Beta-Pictoris, mes yeux se font vieux pour confondre ' et `  ...


C'est une bonne raison pour utiliser :


c=$(date -s "12:34:56")
 


C'est même recommandé d'utiliser cette syntaxe (« $(… ) » au lieu de « `… ` »).

Pied de page des forums

Propulsé par FluxBB