Debian-facile

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

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

#151 10-06-2019 20:27:34

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : Linux 5.7.11-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Option enlevée :


#!/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
# blkid (util-linux)
##############################################################################################

declare -a MPLAYER_IDENTIFY
declare -a LSDVD_X

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

mplayer_identify () {
    if [[  "${#MPLAYER_IDENTIFY[@]}" -eq 0 ]]; then
        mapfile MPLAYER_IDENTIFY < <(mplayer -vo null -ao null -frames 0 \
                -identify dvd://"$1" -dvd-device "$DEVICE"  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[@]}"
}

## CONDITION : UN SEUL DVD-VIDÉO
COUNT_DEVICE=$(blkid /dev/sr* | \
            awk '{print $1}'  | \
            sed -e 's/://g'   | \
            awk '{x=x+NF}END{print x}')

if [[ "$COUNT_DEVICE" -eq "1" ]] ; then
    echo "Proceed..."
else
    echo "Aucun DVD-Vidéo ou 2 DVD-Vidéos/DVD-ROM ... dans différents lecteurs ?"
    exit 0
fi


DEVICE=$(blkid /dev/sr* | awk '{print $1}' | sed -e 's/://g')

## LABEL DU DVD-VIDÉO & NOMBRE TOTAL DE TITRES SUR CELUI-CI
TITLE=$(lsdvd "$DEVICE" | head -1 | awk '{print $3}')
TITLE_COUNT=$(lsdvd "$DEVICE" | grep -c ^'Title: ')


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
## 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}"


## TITRES D'UNE DURÉE DE PLUS DE .... SECONDES [ ICI, 1200 SECONDES = 20 MINUTES]
LIMIT_TIME=$(mplayer_identify "$i" | grep ID_LENGTH | sed 's/.*=\([0-9]*\)/\1/' | sed "s/\\..*//")
B=1200

if [[ "$LIMIT_TIME" -gt "$B" ]]; then
    mplayer -identify -dvd-device "$DEVICE" dvd://"$i" \
        -nocache -dumpstream -dumpfile "$FOLDER/$i-$TITLE.vob"


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



    COUNT_LPCM=$(lsdvd_x "$i" |grep 'lpcm' | awk '{print$8}' | \
                     awk '{x=x+NF}END{print x}')
    COUNT_AC3_DTS_MPEG1=$(lsdvd_x "$i" | grep 'ac3,\|dts,\|mpeg1,' | \
                              awk '{print$8}' |awk '{x=x+NF}END{print x}')
    MAP_ID_STREAMS=$(lsdvd_x "$i" |grep "Audio:" | \
                         sed -n -e 's/.*\(0x\)/\1/p' |sed -e 's/c/1c/g' | \
                         awk '/0x/{gsub (/^/,"-map i:")}1')
    MAP_ID_STREAMS_LPCM=$(lsdvd_x "$i" |grep 'lpcm' | \
                              sed -n -e 's/.*\(0x\)/\1/p' | sed -e 's/c/1c/g' | \
                              awk '/0x/{gsub (/^/,"-map i:")}1')
    SIDFR=$(lsdvd_x "$i" | grep "Subtitle:" | grep  "Language: fr" | \
                awk '{print$2}' | sed s'/.$//' | \
                awk 'BEGIN { RS="[^0-9]"; OFS=""; ORS=""; } {if(length($0)) {print ($0-1);}print RT}')
    COUNT_SID_FR=$(mplayer_identify "$i" | \
                       grep "subtitle ( sid ):" | grep "language: fr" | \
                       awk '{print$7}' | awk '{x=x+NF}END{print x}')

    RATIO=$(lsdvd_x "$i" | head -3 | grep "Aspect ratio:" | \
                awk '{print$11}' | sed '$ s/.$//' | sed 's/\//:/')


#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)


    INFO_AC3_DTS_MPEG1=$(lsdvd_x "$i" |awk '/ac3,/  {printf ""$4","}'  | \
                             sed -e 's/,*$//g')
    INFO_LPCM=$(lsdvd_x "$i" |awk '/ac3,/  {printf ""$4","}' | \
                    sed -e 's/,*$//g')



## 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  -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 \
        -filter:v hue=b=0.1:s=0.7,hqdn3d=1.5:1.5:4:4,unsharp=luma_msize_x=5:luma_msize_y=5:luma_amount=0.5,noise=c0s=2:c1s=2:c2s=2:c0f=a+t \
        -y "$FOLDER/$i-$TITLE.mkv"


    rm -f "$FOLDER/$i-$TITLE.vob"
    dvdxchap -t  "$i" "$DEVICE" > "$FOLDER/$i-$TITLE-CHAPTERS.txt"
    mkvmerge "$FOLDER/$i-$TITLE.mkv" --chapters "$FOLDER/$i-$TITLE-CHAPTERS.txt"  \
              -o "$FOLDER/$i-$TITLE+CHAPTERS.mkv"

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

    for n in $SIDFR; do
        mencoder -dvd-device "$DEVICE" "dvd://$i" \
            -nosound -ovc copy -force-avi-aspect "$RATIO"  \
            -o /dev/null -ifo "/run/media/$USER/$TITLE/VIDEO_TS/VTS_01_0.IFO"  \
            -sid "$n" -vobsubout "$FOLDER/$i-vobsubs-fr" -vobsuboutindex "$n"
    done
    mkvmerge "$FOLDER/$i-$TITLE+CHAPTERS.mkv" -a fre --default-language fr \
            "$FOLDER"/*.idx \
            -o "$FOLDER/$i-$TITLE-[Language:$INFO_AC3_DTS_MPEG1]+SUBVF.mkv"


    menage



## 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 -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"
    dvdxchap -t  "$i" "$DEVICE" > "$FOLDER/$i-$TITLE-CHAPTERS.txt"
    mkvmerge "$FOLDER/$i-$TITLE.mkv" --chapters "$FOLDER/$i-$TITLE-CHAPTERS.txt" \
            -o "$FOLDER/$i-$TITLE-[Language:$INFO_LPCM].mkv"

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



## 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 auto -c:v mpeg2_cuvid -i 1-SLEEPLESS_IN_SEATTLE.vob -map 0:v -metadata title=SLEEPLESS_IN_SEATTLE -c:v h264_nvenc -preset hq -profile:v high -level 4.2 -loglevel repeat+verbose -map i:0x80 -map i:0x81 -map i:0x82 -map i:0x83 -map i:0x84 -map i:0x85 -map i:0x86 -acodec copy -metadata:s:a:0 language=en -metadata:s:a:0 title=ac3(stereo) -metadata:s:a:1 language=fra -metadata:s:a:1 title=ac3(stereo) -metadata:s:a:2 language=ger -metadata:s:a:2 title=ac3(stereo) -metadata:s:a:3 language=ita -metadata:s:a:3 title=ac3(stereo) -metadata:s:a:4 language=spa -metadata:s:a:4 title=ac3(stereo) -metadata:s:a:5 language=en -metadata:s:a:5 title=ac3(stereo) -metadata:s:a:6 language=en -metadata:s:a:6 title=ac3(unknown)  -movflags +faststart -qmin 18 -qmax 23 -y 1-SLEEPLESS_IN_SEATTLE.mk
    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"

    dvdxchap -t  "$FOLDER/$i" "$DEVICE" > "$FOLDER/$i-$TITLE-CHAPTERS.txt"
    mkvmerge "$FOLDER/$i-$TITLE.mkv" --chapters "$FOLDER/$i-$TITLE-CHAPTERS.txt" \
            -o "$FOLDER/$i-$TITLE+CHAPTERS.mkv"

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

    for n in $SIDFR; do
        mencoder -dvd-device "$DEVICE" dvd://"$i" \
                -nosound -ovc copy -force-avi-aspect "$RATIO" \
                -o /dev/null -ifo "/run/media/$USER/$TITLE/VIDEO_TS/VTS_01_0.IFO" \
                -sid "$n" -vobsubout "$FOLDER/$i-vobsubs-fr" -vobsuboutindex "$n"
    done

    mkvmerge "$FOLDER/$i-$TITLE+CHAPTERS.mkv" \
            -a fre --default-language fr "$FOLDER"/*.idx \
            -o "$FOLDER/$i-$TITLE-[Language:$INFO_LPCM]+SUBVF.mkv"


    menage

## 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"

    dvdxchap -t  "$i" "$DEVICE" > "$FOLDER/$i-$TITLE-CHAPTERS.txt"
    mkvmerge "$FOLDER/$i-$TITLE.mkv" \
             --chapters "$FOLDER/$i-$TITLE-CHAPTERS.txt" -o \
             "$FOLDER/$i-$TITLE-[Language:$INFO_AC3_DTS_MPEG1].mkv"

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

fi
fi
done
 

Dernière modification par golgot200 (10-06-2019 20:29:12)

Hors ligne

#152 10-06-2019 20:36:10

Debian Alain
Adhérent(e)
Lieu : Bretagne
Distrib. : stable / testing
Noyau : Linux 5.8.0-1-amd64
(G)UI : Gnome X.org (X11) / GDM3
Inscription : 11-03-2017
Site Web

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

je crois que la commande "mpeg2_cuvid" n'était pas mauvaise mais spécifique à NVidia :

https://lists.ffmpeg.org/pipermail/ffmp … 36946.html


Proceed...
/home/alain/Bureau/CONSTANTINE_DISC_1 n'existe pas !
Création Du Dossier /home/alain/Bureau/CONSTANTINE_DISC_1
MPlayer 1.3.0 (Debian), built with gcc-8 (C) 2000-2016 MPlayer Team
do_connect: could not connect to socket
connect: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing dvd://1.
ID_DVD_TITLES=10
ID_DVD_TITLE_1_CHAPTERS=34
ID_DVD_TITLE_1_ANGLES=1
ID_DVD_TITLE_2_CHAPTERS=1
ID_DVD_TITLE_2_ANGLES=1
ID_DVD_TITLE_3_CHAPTERS=1
ID_DVD_TITLE_3_ANGLES=1
ID_DVD_TITLE_4_CHAPTERS=1
ID_DVD_TITLE_4_ANGLES=1
ID_DVD_TITLE_5_CHAPTERS=1
ID_DVD_TITLE_5_ANGLES=1
ID_DVD_TITLE_6_CHAPTERS=1
ID_DVD_TITLE_6_ANGLES=1
ID_DVD_TITLE_7_CHAPTERS=1
ID_DVD_TITLE_7_ANGLES=1
ID_DVD_TITLE_8_CHAPTERS=1
ID_DVD_TITLE_8_ANGLES=1
ID_DVD_TITLE_9_CHAPTERS=1
ID_DVD_TITLE_9_ANGLES=1
ID_DVD_TITLE_10_CHAPTERS=1
ID_DVD_TITLE_10_ANGLES=1
ID_DVD_TITLE_1_LENGTH=6949.120
ID_DVD_TITLE_2_LENGTH=12.800
ID_DVD_TITLE_3_LENGTH=52.960
ID_DVD_TITLE_4_LENGTH=136.680
ID_DVD_TITLE_5_LENGTH=49.320
ID_DVD_TITLE_6_LENGTH=49.320
ID_DVD_TITLE_7_LENGTH=49.200
ID_DVD_TITLE_8_LENGTH=47.800
ID_DVD_TITLE_9_LENGTH=30.000
ID_DVD_TITLE_10_LENGTH=255.960
ID_DVD_DISC_ID=9883092EA45BE55408C4070686C05D7B
ID_DVD_VOLUME_ID=CONSTANTINE_DISC_1
There are 10 titles on this DVD.

ID_DVD_CURRENT_TITLE=1
There are 1 angles in this DVD title.

libdvdread: Attempting to retrieve all CSS keys
libdvdread: This can take a _long_ time, please be patient

libdvdread: Get key for /VIDEO_TS/VIDEO_TS.VOB at 0x00000130
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_01_0.VOB at 0x000007e5
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_01_1.VOB at 0x0001eb01
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_02_0.VOB at 0x002d66d0
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_02_1.VOB at 0x002d67af
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_03_1.VOB at 0x002e344e
libdvdread: Elapsed time 0
libdvdread: Found 3 VTS's
libdvdread: Elapsed time 0
audio stream: 0 format: ac3 (5.1) language: en aid: 128.

ID_AUDIO_ID=128
ID_AID_128_LANG=en
audio stream: 1 format: ac3 (5.1) language: fr aid: 129.

ID_AUDIO_ID=129
ID_AID_129_LANG=fr
audio stream: 2 format: ac3 (stereo) language: en aid: 130.

ID_AUDIO_ID=130
ID_AID_130_LANG=en
number of audio channels on disk: 3.
subtitle ( sid ): 0 language: en

ID_SUBTITLE_ID=0
ID_SID_0_LANG=en
subtitle ( sid ): 1 language: en

ID_SUBTITLE_ID=1
ID_SID_1_LANG=en
subtitle ( sid ): 2 language: fr

ID_SUBTITLE_ID=2
ID_SID_2_LANG=fr
subtitle ( sid ): 3 language: fr

ID_SUBTITLE_ID=3
ID_SID_3_LANG=fr
subtitle ( sid ): 4 language: nl

ID_SUBTITLE_ID=4
ID_SID_4_LANG=nl
subtitle ( sid ): 5 language: ar

ID_SUBTITLE_ID=5
ID_SID_5_LANG=ar
number of subtitles on disk: 6

CHAPTERS: 00:00:00.000,00:02:40.400,00:06:25.960,00:10:06.440,00:13:45.360,00:17:14.760,00:19:39.960,00:23:30.200,00:26:14.360,00:28:28.240,00:32:56.680,00:36:02.760,00:39:36.200,00:44:53.880,00:48:24.280,00:51:21.200,00:55:39.840,00:58:53.200,01:01:52.880,01:06:26.440,01:09:25.440,01:12:58.200,01:15:16.600,01:19:12.880,01:22:18.880,01:26:10.280,01:30:13.640,01:33:08.240,01:35:52.600,01:38:43.640,01:40:44.640,01:44:00.520,01:46:54.920,01:49:12.200,
dump: 5350748160 bytes written (~94.0%)
dump: 5692180480 bytes written to '/home/alain/Bureau/CONSTANTINE_DISC_1/1-CONSTANTINE_DISC_1.vob'.
Core dumped ;)

Exiting... (End of file)
ID_EXIT=EOF
ffmpeg version 4.1.3-1 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 8 (Debian 8.3.0-7)
  configuration: --prefix=/usr --extra-version=1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100

>>>>> [mpeg @ 0x55f495996d80] max_analyze_duration 5000000 reached at 5024000 microseconds st:3 <<<<<

Input #0, mpeg, from '/home/alain/Bureau/CONSTANTINE_DISC_1/1-CONSTANTINE_DISC_1.vob':
  Duration: 00:54:45.96, start: 0.055244, bitrate: 13858 kb/s
    Stream #0:0[0x1e0]: Video: mpeg2video (Main), 1 reference frame, yuv420p(tv, progressive, left), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x81]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s
    Stream #0:2[0x80]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s
    Stream #0:3[0x82]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s

>>>>> Unknown encoder 'h264_nvenc'
[AVIOContext @ 0x55f49599fc00] Statistics: 4804752 bytes read, 2 seeks <<<<<

mkvmerge v31.0.0 ('Dolores In A Shoestand') 64-bit

>>>>> Erreur : Le fichier « /home/alain/Bureau/CONSTANTINE_DISC_1/1-CONSTANTINE_DISC_1.mkv » ne peut pas être ouvert en lecture : open file error. <<<<<

MEncoder 1.3.0 (Debian), built with gcc-8 (C) 2000-2016 MPlayer Team
There are 10 titles on this DVD.
There are 1 angles in this DVD title.

libdvdread: Attempting to retrieve all CSS keys
libdvdread: This can take a _long_ time, please be patient

libdvdread: Get key for /VIDEO_TS/VIDEO_TS.VOB at 0x00000130
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_01_0.VOB at 0x000007e5
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_01_1.VOB at 0x0001eb01
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_02_0.VOB at 0x002d66d0
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_02_1.VOB at 0x002d67af
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_03_1.VOB at 0x002e344e
libdvdread: Elapsed time 0
libdvdread: Found 3 VTS's
libdvdread: Elapsed time 0
audio stream: 0 format: ac3 (5.1) language: en aid: 128.
audio stream: 1 format: ac3 (5.1) language: fr aid: 129.
audio stream: 2 format: ac3 (stereo) language: en aid: 130.
number of audio channels on disk: 3.
subtitle ( sid ): 0 language: en
subtitle ( sid ): 1 language: en
subtitle ( sid ): 2 language: fr
subtitle ( sid ): 3 language: fr
subtitle ( sid ): 4 language: nl
subtitle ( sid ): 5 language: ar
number of subtitles on disk: 6

success: format: 2  data: 0x805000 - 0x55321000
MPEG-PS file format detected.
VIDEO:  MPEG2  720x576  (aspect 3)  25.000 fps  7500.0 kbps (937.5 kbyte/s)
[V] filefmt:2  fourcc:0x10000002  size:720x576  fps:25.000  ftime:=0.0400
VobSub: Can't open IFO file
videocodec: framecopy (720x576 24bpp fourcc=10000002)
Writing header...
ODML: vprp aspect is 16:9.
Writing header...
ODML: vprp aspect is 16:9.
Pos:1577.8s  39445f (22%) 14250.36fps Trem:   0min 4540mb  A-V:0.000 [5439:0]
ODML: Starting new RIFF chunk at 1023MB.
Pos:3131.4s  78286f (45%) 14195.10fps Trem:   0min 4547mb  A-V:0.000 [5483:0]
ODML: Starting new RIFF chunk at 2047MB.
Pos:4661.5s 116538f (67%) 14175.65fps Trem:   0min 4551mb  A-V:0.000 [5525:0]
ODML: Starting new RIFF chunk at 3071MB.
Pos:6167.1s 154178f (89%) 14149.96fps Trem:   0min 4558mb  A-V:0.000 [5568:0]
ODML: Starting new RIFF chunk at 4095MB.
Pos:6949.1s 173728f (99%) 14319.81fps Trem:   0min 4548mb  A-V:0.000 [5488:0]
Writing index...
Writing header...
ODML: vprp aspect is 16:9.

Video stream: 5488.121 kbit/s  (686015 B/s)  size: 4767200985 bytes  6949.120 secs  173728 frames
MEncoder 1.3.0 (Debian), built with gcc-8 (C) 2000-2016 MPlayer Team
There are 10 titles on this DVD.
There are 1 angles in this DVD title.

libdvdread: Attempting to retrieve all CSS keys
libdvdread: This can take a _long_ time, please be patient

libdvdread: Get key for /VIDEO_TS/VIDEO_TS.VOB at 0x00000130
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_01_0.VOB at 0x000007e5
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_01_1.VOB at 0x0001eb01
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_02_0.VOB at 0x002d66d0
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_02_1.VOB at 0x002d67af
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_03_1.VOB at 0x002e344e
libdvdread: Elapsed time 0
libdvdread: Found 3 VTS's
libdvdread: Elapsed time 0
audio stream: 0 format: ac3 (5.1) language: en aid: 128.
audio stream: 1 format: ac3 (5.1) language: fr aid: 129.
audio stream: 2 format: ac3 (stereo) language: en aid: 130.
number of audio channels on disk: 3.
subtitle ( sid ): 0 language: en
subtitle ( sid ): 1 language: en
subtitle ( sid ): 2 language: fr
subtitle ( sid ): 3 language: fr
subtitle ( sid ): 4 language: nl
subtitle ( sid ): 5 language: ar
number of subtitles on disk: 6

success: format: 2  data: 0x805000 - 0x55321000
MPEG-PS file format detected.
VIDEO:  MPEG2  720x576  (aspect 3)  25.000 fps  7500.0 kbps (937.5 kbyte/s)
[V] filefmt:2  fourcc:0x10000002  size:720x576  fps:25.000  ftime:=0.0400

>>>> VobSub: Can't open IFO file <<<<<

videocodec: framecopy (720x576 24bpp fourcc=10000002)
Writing header...
ODML: vprp aspect is 16:9.
Writing header...
ODML: vprp aspect is 16:9.
Pos:1577.8s  39445f (22%) 14302.03fps Trem:   0min 4540mb  A-V:0.000 [5439:0]
ODML: Starting new RIFF chunk at 1023MB.
Pos:3131.4s  78286f (45%) 14262.34fps Trem:   0min 4547mb  A-V:0.000 [5483:0]
ODML: Starting new RIFF chunk at 2047MB.
Pos:4661.5s 116538f (67%) 14201.56fps Trem:   0min 4551mb  A-V:0.000 [5525:0]
ODML: Starting new RIFF chunk at 3071MB.
Pos:6167.1s 154178f (89%) 14155.16fps Trem:   0min 4558mb  A-V:0.000 [5568:0]
ODML: Starting new RIFF chunk at 4095MB.
Pos:6949.1s 173728f (99%) 14324.54fps Trem:   0min 4548mb  A-V:0.000 [5488:0]
Writing index...
Writing header...
ODML: vprp aspect is 16:9.

Video stream: 5488.121 kbit/s  (686015 B/s)  size: 4767200985 bytes  6949.120 secs  173728 frames
mkvmerge v31.0.0 ('Dolores In A Shoestand') 64-bit
Erreur : Le fichier « /home/alain/Bureau/CONSTANTINE_DISC_1/1-CONSTANTINE_DISC_1+CHAPTERS.mkv » ne peut pas être ouvert en lecture : open file error.
 

Dernière modification par Debian Alain (10-06-2019 20:43:25)

Hors ligne

#153 10-06-2019 20:36:17

enicar
Membre
Lieu : ailleurs
Distrib. : sid
Noyau : 5.8.7
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Remarque pour utiliser le décoder mpeg2_cuvid il faut une carte nvidia.
Je me demande si il faut installer certaines librairies de cuda.

La version de ffmpeg que j'utilise est compilé avec ce décodeur en tous cas.
Mais je n'ai pas de carte nvidia, maintenant j'ai une vielle ati qui me suffit…
presque. Je ne sais pas si il est possible de profiter d'accélération gpu avec une ati
dans ffmpeg.

Dernière modification par enicar (10-06-2019 20:38:25)

Hors ligne

#154 10-06-2019 20:39:39

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : Linux 5.7.11-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

enicar a écrit :

Remarque pour utiliser le décoder mpeg2_cuvid il faut une carte nvidia.
Je me demande si il faut installer certaines librairie de cuda.

La version de ffmpeg que j'utilise est compilé avec ce décodeur en tous ca




Mince, c'est vrai.  Et en plus je le savais, Debian Alain n'a pas une Nvidia hmm

EDIT : J'ai changé le titre de mon post de départ

Dernière modification par golgot200 (10-06-2019 20:53:11)

Hors ligne

#155 10-06-2019 20:45:52

Debian Alain
Adhérent(e)
Lieu : Bretagne
Distrib. : stable / testing
Noyau : Linux 5.8.0-1-amd64
(G)UI : Gnome X.org (X11) / GDM3
Inscription : 11-03-2017
Site Web

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

alain@Alain-PC:~/Bureau/CONSTANTINE_DISC_1$ ls


bloc à supprimer si la commande n’affiche rien



question bête : vu la puissance actuelle des cpu , ce serai pas plus simple de décoder avec celui-ci ?

ou sinon , faire un test pour reconnaître la carte video et lancer la bonne commande en fonction de ...

???

(sais pas)

big_smile

Dernière modification par Debian Alain (10-06-2019 20:52:42)

Hors ligne

#156 10-06-2019 21:00:56

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : Linux 5.7.11-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Debian Alain a écrit :

alain@Alain-PC:~/Bureau/CONSTANTINE_DISC_1$ ls


bloc à supprimer si la commande n’affiche rien



question bête : vu la puissance actuelle des cpu , ce serai pas plus simple de décoder avec celui-ci ?

ou sinon , faire un test pour reconnaître la carte video et lancer la bonne commande en fonction de ...

???

(sais pas)

big_smile




C'est des idées qui sont pas si bêtes smile

J'arrête pour ce soir. Bonne nuit. smile

Hors ligne

#157 10-06-2019 22:28:43

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : Linux 5.7.11-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Un hors sujet pour @Debian Alain

Par le CPU :



#!/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
# blkid (util-linux)
##############################################################################################

declare -a MPLAYER_IDENTIFY
declare -a LSDVD_X

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

mplayer_identify () {
    if [[  "${#MPLAYER_IDENTIFY[@]}" -eq 0 ]]; then
        mapfile MPLAYER_IDENTIFY < <(mplayer -vo null -ao null -frames 0 \
                -identify dvd://"$1" -dvd-device "$DEVICE"  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[@]}"
}

## CONDITION : UN SEUL DVD-VIDÉO
COUNT_DEVICE=$(blkid /dev/sr* | \
            awk '{print $1}'  | \
            sed -e 's/://g'   | \
            awk '{x=x+NF}END{print x}')

if [[ "$COUNT_DEVICE" -eq "1" ]] ; then
    echo "Proceed..."
else
    echo "Aucun DVD-Vidéo ou 2 DVD-Vidéos/DVD-ROM ... dans différents lecteurs ?"
    exit 0
fi


DEVICE=$(blkid /dev/sr* | awk '{print $1}' | sed -e 's/://g')

## LABEL DU DVD-VIDÉO & NOMBRE TOTAL DE TITRES SUR CELUI-CI
TITLE=$(lsdvd "$DEVICE" | head -1 | awk '{print $3}')
TITLE_COUNT=$(lsdvd "$DEVICE" | grep -c ^'Title: ')


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
## 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}"


## TITRES D'UNE DURÉE DE PLUS DE .... SECONDES [ ICI, 1200 SECONDES = 20 MINUTES]
LIMIT_TIME=$(mplayer_identify "$i" | grep ID_LENGTH | sed 's/.*=\([0-9]*\)/\1/' | sed "s/\\..*//")
B=1200

if [[ "$LIMIT_TIME" -gt "$B" ]]; then
    mplayer -identify -dvd-device "$DEVICE" dvd://"$i" \
        -nocache -dumpstream -dumpfile "$FOLDER/$i-$TITLE.vob"


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



    COUNT_LPCM=$(lsdvd_x "$i" |grep 'lpcm' | awk '{print$8}' | \
                     awk '{x=x+NF}END{print x}')
   
   
    COUNT_AC3_DTS_MPEG1=$(lsdvd_x "$i" | grep 'ac3,\|dts,\|mpeg1,' | \
                              awk '{print$8}' |awk '{x=x+NF}END{print x}')
   
   
    MAP_ID_STREAMS=$(lsdvd_x "$i" |grep "Audio:" | \
                         sed -n -e 's/.*\(0x\)/\1/p' |sed -e 's/c/1c/g' | \
                         awk '/0x/{gsub (/^/,"-map i:")}1')
   
    MAP_ID_STREAMS_LPCM=$(lsdvd_x "$i" |grep 'lpcm' | \
                              sed -n -e 's/.*\(0x\)/\1/p' | sed -e 's/c/1c/g' | \
                              awk '/0x/{gsub (/^/,"-map i:")}1')
   
    SIDFR=$(lsdvd_x "$i" | grep "Subtitle:" | grep  "Language: fr" | \
                awk '{print$2}' | sed s'/.$//' | \
                awk 'BEGIN { RS="[^0-9]"; OFS=""; ORS=""; } {if(length($0)) {print ($0-1);}print RT}')
   
    COUNT_SID_FR=$(mplayer_identify "$i" | \
                       grep "subtitle ( sid ):" | grep "language: fr" | \
                       awk '{print$7}' | awk '{x=x+NF}END{print x}')

    RATIO=$(lsdvd_x "$i" | head -3 | grep "Aspect ratio:" | \
                awk '{print$11}' | sed '$ s/.$//' | sed 's/\//:/')


#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)


    INFO_AC3_DTS_MPEG1=$(lsdvd_x "$i" |awk '/ac3,/  {printf ""$4","}'  | \
                             sed -e 's/,*$//g')
   
    INFO_LPCM=$(lsdvd_x "$i" |awk '/ac3,/  {printf ""$4","}' | \
                    sed -e 's/,*$//g')



## 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 \
#        -filter:v hue=b=0.1:s=0.7,hqdn3d=1.5:1.5:4:4,unsharp=luma_msize_x=5:luma_msize_y=5:luma_amount=0.5,noise=c0s=2:c1s=2:c2s=2:c0f=a+t \
#        -y "$FOLDER/$i-$TITLE.mkv"
       

## CPU (Codec H264)
ffmpeg -vsync passthrough -i "$FOLDER/$i-$TITLE.vob" -map 0:v -metadata title="$TITLE" ${MAP_ID_STREAMS} $TAGS_ID_STREAMS -loglevel repeat+verbose -movflags faststart -c:v libx264 -x264opts 'keyint=300:min-keyint=25:8x8dct:sliced-threads=0' -qblur 0.5 -deblock 1:1 -flags +loop -b:v 2048k -maxrate 2048k -bufsize 5000k -qcomp 0.60 -qblur 0.5 -acodec copy -coder 1 -me_range 6 -sc_threshold 42 -bf 10 -qmin 0 -qmax 40 -qblur 0.5 -trellis 2 -mbtree 1 -preset veryfast -y "$FOLDER/$i-$TITLE.mkv"


    rm -f "$FOLDER/$i-$TITLE.vob"
    dvdxchap -t  "$i" "$DEVICE" > "$FOLDER/$i-$TITLE-CHAPTERS.txt"
    mkvmerge "$FOLDER/$i-$TITLE.mkv" --chapters "$FOLDER/$i-$TITLE-CHAPTERS.txt"  \
              -o "$FOLDER/$i-$TITLE+CHAPTERS.mkv"

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

    for n in $SIDFR; do
        mencoder -dvd-device "$DEVICE" "dvd://$i" \
            -nosound -ovc copy -force-avi-aspect "$RATIO"  \
            -o /dev/null -ifo "/run/media/$USER/$TITLE/VIDEO_TS/VTS_01_0.IFO"  \
            -sid "$n" -vobsubout "$FOLDER/$i-vobsubs-fr" -vobsuboutindex "$n"
    done
    mkvmerge "$FOLDER/$i-$TITLE+CHAPTERS.mkv" -a fre --default-language fr \
            "$FOLDER"/*.idx \
            -o "$FOLDER/$i-$TITLE-[Language:$INFO_AC3_DTS_MPEG1]+SUBVF.mkv"


    menage



## 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"
       
## CPU (Codec H264)
ffmpeg -vsync passthrough -i "$FOLDER/$i-$TITLE.vob" -map 0:v -metadata title="$TITLE" ${MAP_ID_STREAMS} $TAGS_ID_STREAMS -loglevel repeat+verbose -movflags faststart -c:v libx264 -x264opts 'keyint=300:min-keyint=25:8x8dct:sliced-threads=0' -qblur 0.5 -deblock 1:1 -flags +loop -b:v 2048k -maxrate 2048k -bufsize 5000k -qcomp 0.60 -qblur 0.5 -acodec pcm_s16be -coder 1 -me_range 6 -sc_threshold 42 -bf 10 -qmin 0 -qmax 40 -qblur 0.5 -trellis 2 -mbtree 1 -preset veryfast -y "$FOLDER/$i-$TITLE.mkv"        
       
       
       

    rm -f "$FOLDER/$i-$TITLE.vob"
    dvdxchap -t  "$i" "$DEVICE" > "$FOLDER/$i-$TITLE-CHAPTERS.txt"
    mkvmerge "$FOLDER/$i-$TITLE.mkv" --chapters "$FOLDER/$i-$TITLE-CHAPTERS.txt" \
            -o "$FOLDER/$i-$TITLE-[Language:$INFO_LPCM].mkv"

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



## 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"
           
           
## CPU (Codec H264)
ffmpeg -vsync passthrough -i "$FOLDER/$i-$TITLE.vob" -map 0:v -metadata title="$TITLE" ${MAP_ID_STREAMS} $TAGS_ID_STREAMS -loglevel repeat+verbose -movflags faststart -c:v libx264 -x264opts 'keyint=300:min-keyint=25:8x8dct:sliced-threads=0' -qblur 0.5 -deblock 1:1 -flags +loop -b:v 2048k -maxrate 2048k -bufsize 5000k -qcomp 0.60 -qblur 0.5 -acodec pcm_s16be -coder 1 -me_range 6 -sc_threshold 42 -bf 10 -qmin 0 -qmax 40 -qblur 0.5 -trellis 2 -mbtree 1 -preset veryfast -y "$FOLDER/$i-$TITLE.mkv"
           

    rm -f "$FOLDER/$i-$TITLE.vob"

    dvdxchap -t  "$FOLDER/$i" "$DEVICE" > "$FOLDER/$i-$TITLE-CHAPTERS.txt"
    mkvmerge "$FOLDER/$i-$TITLE.mkv" --chapters "$FOLDER/$i-$TITLE-CHAPTERS.txt" \
            -o "$FOLDER/$i-$TITLE+CHAPTERS.mkv"

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

    for n in $SIDFR; do
        mencoder -dvd-device "$DEVICE" dvd://"$i" \
                -nosound -ovc copy -force-avi-aspect "$RATIO" \
                -o /dev/null -ifo "/run/media/$USER/$TITLE/VIDEO_TS/VTS_01_0.IFO" \
                -sid "$n" -vobsubout "$FOLDER/$i-vobsubs-fr" -vobsuboutindex "$n"
    done

    mkvmerge "$FOLDER/$i-$TITLE+CHAPTERS.mkv" \
            -a fre --default-language fr "$FOLDER"/*.idx \
            -o "$FOLDER/$i-$TITLE-[Language:$INFO_LPCM]+SUBVF.mkv"


    menage

## 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"
           

## CPU (Codec H264)
ffmpeg -vsync passthrough -i "$FOLDER/$i-$TITLE.vob" -map 0:v -metadata title="$TITLE" ${MAP_ID_STREAMS} $TAGS_ID_STREAMS -loglevel repeat+verbose -movflags faststart -c:v libx264 -x264opts 'keyint=300:min-keyint=25:8x8dct:sliced-threads=0' -qblur 0.5 -deblock 1:1 -flags +loop -b:v 2048k -maxrate 2048k -bufsize 5000k -qcomp 0.60 -qblur 0.5 -acodec copy -coder 1 -me_range 6 -sc_threshold 42 -bf 10 -qmin 0 -qmax 40 -qblur 0.5 -trellis 2 -mbtree 1 -preset veryfast -y "$FOLDER/$i-$TITLE.mkv"
           

    rm -f "$FOLDER/$i-$TITLE.vob"

    dvdxchap -t  "$i" "$DEVICE" > "$FOLDER/$i-$TITLE-CHAPTERS.txt"
    mkvmerge "$FOLDER/$i-$TITLE.mkv" \
             --chapters "$FOLDER/$i-$TITLE-CHAPTERS.txt" -o \
             "$FOLDER/$i-$TITLE-[Language:$INFO_AC3_DTS_MPEG1].mkv"

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

fi
fi
done
 

Hors ligne

#158 11-06-2019 09:18:35

Debian Alain
Adhérent(e)
Lieu : Bretagne
Distrib. : stable / testing
Noyau : Linux 5.8.0-1-amd64
(G)UI : Gnome X.org (X11) / GDM3
Inscription : 11-03-2017
Site Web

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

ton script fonctionne bien , mais , j'obtiens la version anglaise sous titrée en français .

j'aurai préféré la version française (eventuellement  sous titrée si tu préfères ... )

Hors ligne

#159 11-06-2019 09:28:23

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : Linux 5.7.11-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Debian Alain a écrit :

ton script fonctionne bien , mais , j'obtiens la version anglaise sous titrée en français .

j'aurai préféré la version française (eventuellement  sous titrée si tu préfères ... )



Non, le script encode toutes les langues (en, fr etc ... ) et tout les sous-titres en français.
Tu es sûrement callé sur l'anglais wink


audio stream: 0 format: ac3 (5.1) language: en aid: 128.
audio stream: 1 format: ac3 (5.1) language: fr aid: 129.
audio stream: 2 format: ac3 (stereo) language: en aid: 130.
 



EDIT: ton fichier mkv final se nomme comment ?

Chez moi :

1-SLEEPLESS_IN_SEATTLE-[Language:en,fr,de,it,es,en,en]+SUBVF.mkv

Dernière modification par golgot200 (11-06-2019 09:37:36)

Hors ligne

#160 11-06-2019 09:40:48

Debian Alain
Adhérent(e)
Lieu : Bretagne
Distrib. : stable / testing
Noyau : Linux 5.8.0-1-amd64
(G)UI : Gnome X.org (X11) / GDM3
Inscription : 11-03-2017
Site Web

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

EDIT: ton fichier mkv final se nomme comment ?


1- CONSTANTINE_DISC_1-[Language: en,fr,en] +SUB VF.mkv

Non, le script encode toutes les langues (en, fr etc ... ) et tout les sous-titres en français.
Tu es sûrement callé sur l'anglais wink



oui tu as  vu juste , j'avais :

ac3(5.1) - [anglais] *** sélectionné ***
ac3(5.1) - [francais]
ac3(stéréo) - [anglais]

dans vlc

Dernière modification par Debian Alain (11-06-2019 09:41:14)

Hors ligne

#161 11-06-2019 09:41:47

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : Linux 5.7.11-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

big_smile big_smile big_smile

Bien

Hors ligne

#162 11-06-2019 09:44:58

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : Linux 5.7.11-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

As toi maintenant de rechercher une commande adéquate pour ta carte graphique pour encoder plus vite. Il serait vraiment interressant de la mettre ici sur ce post. C'est vrai qu'on a pas tous des Geforce ( comme moi ) big_smile

En tout cas merci beaucoup de l'avoir testé wink

Dernière modification par golgot200 (11-06-2019 09:47:05)

Hors ligne

#163 11-06-2019 10:32:08

enicar
Membre
Lieu : ailleurs
Distrib. : sid
Noyau : 5.8.7
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Pour encoder du h264 avec une carte amd, on peut essayer l'encodeur h264_vaapi,
Je n'ai pas trouvé de décodeur dans la version de ffmpeg que j'utilise (et je ne sais
pas si ça existe).

Quelqu'un m'a rapporté  que la qualité était moins bonne qu'avec un encodeur logiciel, je ne sais si c'est vrai, ça doit aussi dépendre de la carte vidéo utilisée.

La version de debian stretch ne bénéficie pas de ce support, il me semble.
Par contre celle de buster si.

Hors ligne

#164 11-06-2019 10:36:22

Debian Alain
Adhérent(e)
Lieu : Bretagne
Distrib. : stable / testing
Noyau : Linux 5.8.0-1-amd64
(G)UI : Gnome X.org (X11) / GDM3
Inscription : 11-03-2017
Site Web

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

tu remplaces "mpeg2_cuvid" par "h264_vaapi" ?

Hors ligne

#165 11-06-2019 10:52:48

enicar
Membre
Lieu : ailleurs
Distrib. : sid
Noyau : 5.8.7
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Debian Alain a écrit :

u remplaces "mpeg2_cuvid" par "h264_vaapi" ?


Certainement pas. mpeg2_cuvid est utilisé pour décodé. h264_vaapi est un
encodeur.

Hors ligne

#166 11-06-2019 11:05:51

enicar
Membre
Lieu : ailleurs
Distrib. : sid
Noyau : 5.8.7
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Par contre tu peux remplacer h264_nvenc par h264_vaapi.
Je ne sais pas trop si les options poseront un problème ou pas.
J'ai l'impression que non.

Hors ligne

#167 11-06-2019 11:12:36

Debian Alain
Adhérent(e)
Lieu : Bretagne
Distrib. : stable / testing
Noyau : Linux 5.8.0-1-amd64
(G)UI : Gnome X.org (X11) / GDM3
Inscription : 11-03-2017
Site Web

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

echange fait .

programme lancé .

dump en cours .

Hors ligne

#168 11-06-2019 11:18:16

enicar
Membre
Lieu : ailleurs
Distrib. : sid
Noyau : 5.8.7
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Le spécialiste pour l'encodage vidéo, c'est golgot200 qui a déjà essayé
beaucoup d'options. Moi, je n'y connais pas grand chose.

Hors ligne

#169 11-06-2019 11:25:02

Debian Alain
Adhérent(e)
Lieu : Bretagne
Distrib. : stable / testing
Noyau : Linux 5.8.0-1-amd64
(G)UI : Gnome X.org (X11) / GDM3
Inscription : 11-03-2017
Site Web

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

encodage speed 14.3X

Hors ligne

#170 11-06-2019 11:27:49

enicar
Membre
Lieu : ailleurs
Distrib. : sid
Noyau : 5.8.7
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Debian Alain a écrit :

encodage speed 14.3X



Il faudrait voir la différence par rapport à l'encodage avec le cpu.
Et aussi comparer la qualité de l'image.

Une valeur seule, comme ça, ne veut pas dire grand chose.

Dernière modification par enicar (11-06-2019 11:28:19)

Hors ligne

#171 11-06-2019 11:42:47

Debian Alain
Adhérent(e)
Lieu : Bretagne
Distrib. : stable / testing
Noyau : Linux 5.8.0-1-amd64
(G)UI : Gnome X.org (X11) / GDM3
Inscription : 11-03-2017
Site Web

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

ouais , c'est kif kif .

peut être un peu plus long avec la carte mais c'est pas  évident .

arf ! le remplacement se fait dans les zones commentées ! ...

normal que ce soit kif kif ...

je modifie et je reteste .

Dernière modification par Debian Alain (11-06-2019 11:45:18)

Hors ligne

#172 11-06-2019 11:48:14

enicar
Membre
Lieu : ailleurs
Distrib. : sid
Noyau : 5.8.7
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Debian Alain a écrit :

arf ! le remplacement se fait dans les zones commentées ! ...


love.gif
Enfin façon de parler…

Dernière modification par enicar (11-06-2019 11:48:40)

Hors ligne

#173 11-06-2019 11:57:12

Debian Alain
Adhérent(e)
Lieu : Bretagne
Distrib. : stable / testing
Noyau : Linux 5.8.0-1-amd64
(G)UI : Gnome X.org (X11) / GDM3
Inscription : 11-03-2017
Site Web

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Unknown decoder 'mpeg2_cuvid'

je remets comme c'était .

Dernière modification par Debian Alain (11-06-2019 11:57:41)

Hors ligne

#174 11-06-2019 12:01:23

enicar
Membre
Lieu : ailleurs
Distrib. : sid
Noyau : 5.8.7
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Debian Alain a écrit :

Unknown decoder 'mpeg2_cuvid'

je remets comme c'était .


Bien sûr, il suffit de supprimer le « -c:v mpeg2_cuvid », c'est un décodeur mpeg2
via une carte nvidia. Et de remplacer h264_nvenc par h264_vaapi.

À toi de jouer.

Dernière modification par enicar (11-06-2019 12:57:24)

Hors ligne

#175 11-06-2019 12:52:00

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : Linux 5.7.11-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

enicar a écrit :

Debian Alain a écrit :

Unknown decoder 'mpeg2_cuvid'

je remets comme c'était .


Bien sûr, il suffit de supprimer le « -c:v mpeg2_cuvid », c'est un décodeur mpeg2
via une carte nvidia. Et de remplacer 264_nvenc par h264_vaapi.

À toi de jouer.



Oui, -c:v mpeg2_cuvid décode le VOB (mpeg2) et c'est pour Nvidia ( si je ne me trompe pas ). Je n'avais jamais utilisé cette fonction auparavant. smile

Il faut que je trouve un tableau comparatif sur AMD, Nvidia etc ...

Dernière modification par golgot200 (11-06-2019 12:53:57)

Hors ligne

Pied de page des forums