logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

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

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

#1 07-11-2019 17:14:05

Anonyme
Invité

Vieillir un film

Bonjour,

Script pour vieillir une vidéo.
Pour Nvidia encodage GPU

Il faut obligatoirement une connection internet.

OLD.png

OLD_2.png



apt install ffmpeg youtube-dl
 



je suppose que pour debian c'est :

apt install libdvd-pkg



Charger un DVD-Vidéo et lancer le script :

Le script :


    #!/bin/bash
   
    PATH=$PATH:/sbin:/usr/sbin
   
    ## VINTAGE
    ## @Anonyme

    ## youtube-dl ffmpeg libdvdcss2
    ## youtube-dl  -o -f best https://www.youtube.com/watch?v=oK7k0EIGlF4
    ## https://www.youtube.com/watch?v=zs9IsYjCrAw
    ## https://www.youtube.com/watch?v=aiNFF9q5OLw

    # Retro Movie Camera Sound Effect
    # https://www.youtube.com/watch?v=pHWHokbd5xQ
    # https://www.youtube.com/watch?v=xlobOQZ9Wqk
    # youtube-dl -f m4a https://www.youtube.com/watch?v=xlobOQZ9Wqk
    # https://stackoverflow.com/questions/349 … ing-ffmpeg
   



menage () {
    rm -f "$DIR/$TITLE.mkv"
    rm -r "$JOBDIR"
    rm -r "$SCRATCHESDIR"

}




    DIR=$(xdg-user-dir DESKTOP)
    DEVICE=/dev/sr0
    TITLE_NUMBER=$(lsdvd "$DEVICE" | grep ^'Title: ' | wc -l)
    TITLE=$(lsdvd "$DEVICE" | head -1 | awk '{print $3}')
    LONGEST=$(lsdvd -x "$DEVICE" 2> /dev/null | grep "Longest track" | awk '{print$3}')
    SCRATCHESDIR=/tmp/VINTAGE
    JOBDIR=~/OLD_JOB
    OUTPUT="$DIR/$TITLE"
    SCRATCHES=$(youtube-dl --get-filename -o "%(title)s.%(ext)s" w9iQBNyn4Ac)


    if [ ! -d "$SCRATCHESDIR" ]; then
    mkdir  "$SCRATCHESDIR"

    fi

    youtube-dl -o "$SCRATCHESDIR/$SCRATCHES" -f best https://www.youtube.com/watch?v=w9iQBNyn4Ac
    ffmpeg -i "$SCRATCHESDIR/$SCRATCHES" -r 1 -f image2 "$SCRATCHESDIR/image_damage_effect_%4d.png"
    rm "$SCRATCHESDIR/$SCRATCHES"

    if [ ! -d "$JOBDIR" ]; then
    mkdir  "$JOBDIR"

    fi

    mplayer -endpos 120 -dvd-device "$DEVICE" -dumpstream dvd://"$LONGEST" -dumpfile "$JOBDIR/$TITLE.dump"


   
    MAP_ID_STREAMS=$(lsdvd -a "$DEVICE" -t "$i" 2> /dev/null | \
             grep "Language: fr" | sed -n -e "s/.*\(0x\)/\1/p" | sed -e 's/c/1c/g' | \
             awk '/0x/{gsub (/^/,"-map i:")}1')
       
    TAG="-metadata:s:a:0 language=fra"

   
   
        ffmpeg -hwaccel auto -c:v mpeg2_cuvid -analyzeduration 1000M -probesize 1000M -vsync passthrough -i "$JOBDIR/$TITLE.dump" \
            -map 0:v -metadata title="$TITLE" \
            -c:v h264_nvenc -preset hp -profile:v high -level 4.2 \
            -loglevel repeat+verbose  ${MAP_ID_STREAMS} \
            -c:a ac3 -b:a 160k $TAG -movflags +faststart -qmin 18 -qmax 23 \
            -y "$JOBDIR/$TITLE.mkv"    
                   

    DURATION=$(ffprobe "$JOBDIR/$TITLE.mkv" -show_format 2>&1 | sed -n 's/duration=//p')
    echo $DURATION
   
         ffmpeg -loop 1 -r 7 -f image2 -i "$SCRATCHESDIR/image_damage_effect_%4d.png" \
            -c:v h264_nvenc -preset hp \
            -filter:v scale=-720:576 -pix_fmt yuv420p \
            -t $DURATION -y "$JOBDIR/SCRATCH.mkv"
                           
   
        ffmpeg -i "$JOBDIR/$TITLE.mkv" -i "$JOBDIR/SCRATCH.mkv" \
            -loglevel repeat+verbose \
            -c:v libx264 -preset veryfast \
            -filter_complex "blend=all_mode='overlay':all_opacity=0.4,\
           colorchannelmixer=0.98786:0.01538:0.00378:0.0:0.00698:0.99372:0.00336:0.0:0.00544:0.01068:0.98262:0.0"
\
            -pix_fmt yuv420p -acodec copy -y "$DIR/$TITLE.mkv" \
     

    youtube-dl -o "$JOBDIR/%(title)s.%(ext)s" -f m4a  https://www.youtube.com/watch?v=xlobOQZ9Wqk
    PROJECTOR_FILM=$(youtube-dl --get-filename -o "%(title)s" -f m4a  https://www.youtube.com/watch?v=xlobOQZ9Wqk)
    ffmpeg -ss 00:00:03.000 -i "$JOBDIR/$PROJECTOR_FILM.m4a"  -filter:a "volume=0.2" -ac 6 -acodec ac3 -b:a 160k -y "$JOBDIR/$PROJECTOR_FILM.ac3"
    ffmpeg -stream_loop -1 -i "$JOBDIR/$PROJECTOR_FILM.ac3" -acodec copy -ss 00:00:00.000 -t $DURATION -y "$JOBDIR/long_output.ac3"
   
        ffmpeg -y -i "$DIR/$TITLE.mkv" -stream_loop -1 -i "$JOBDIR/long_output.ac3" \
             -filter_complex "[0:a][1:a]amix=inputs=2:duration=longest[out]" \
             -map 0:v -map [out] $TAG -ss 00:00:00.000 -t $DURATION -y "$DIR/$TITLE[Vintage].mkv"
             
             
        menage "$i"
       
       
 



Essai sur 120 secondes pour les tests.

Dernière modification par Anonyme (07-11-2019 17:36:20)

#2 07-11-2019 18:17:42

phlinux
Membre
Distrib. : Buster
Noyau : 5.10
(G)UI : Openbox (+Rox+Feh)
Inscription : 09-05-2009

Re : Vieillir un film

Bonsoir,

Quelle drôle d'idée. Un peu de nostalgie de la vhs ou du super8 peut être ?

Pages perso : feh, omegat, udisks, passerelle, schroot vraiment transparent

Hors ligne

#3 07-11-2019 19:53:28

Anonyme
Invité

Re : Vieillir un film

phlinux a écrit :

Bonsoir,

Quelle drôle d'idée. Un peu de nostalgie de la vhs ou du super8 peut être ?



mais un peu moins nostalgique sur la taxe magnétoscope big_smile

Dernière modification par Anonyme (07-11-2019 19:54:43)

#4 07-11-2019 23:17:36

Anonyme
Invité

Re : Vieillir un film

Vérification ou téléchargement des deux fichiers essentiels une seul fois et placer en sauvegarde dans un dossier DATA_VINTAGE.
Correction de certaine directions.
Correction d'extensions bizarroïdes.
Suppression de chaque fichier après traitement.


    #!/bin/bash
   
    PATH=$PATH:/sbin:/usr/sbin
   
    ## VINTAGE
    ## @Anonyme

    ## youtube-dl ffmpeg libdvdcss2
    ## youtube-dl  -o -f best https://www.youtube.com/watch?v=oK7k0EIGlF4
    ## https://www.youtube.com/watch?v=zs9IsYjCrAw
    ## https://www.youtube.com/watch?v=aiNFF9q5OLw

    # Retro Movie Camera Sound Effect
    # https://www.youtube.com/watch?v=pHWHokbd5xQ
    # https://www.youtube.com/watch?v=xlobOQZ9Wqk
    # youtube-dl -f m4a https://www.youtube.com/watch?v=xlobOQZ9Wqk
    # https://stackoverflow.com/questions/349 … ing-ffmpeg
   

    DIR=$(xdg-user-dir DESKTOP)
    DEVICE=/dev/sr0
    TITLE_NUMBER=$(lsdvd "$DEVICE" | grep ^'Title: ' | wc -l)
    TITLE=$(lsdvd "$DEVICE" | head -1 | awk '{print $3}')
    LONGEST=$(lsdvd -x "$DEVICE" 2> /dev/null | grep "Longest track" | awk '{print$3}')
    SCRATCHESDIR=~/DATA_VINTAGE
    SCRATCHES=$(youtube-dl --get-filename -o "%(title)s.%(ext)s" w9iQBNyn4Ac)
    PROJECTOR_FILM=$(youtube-dl --get-filename -o "%(title)s.%(ext)s" -f m4a  https://www.youtube.com/watch?v=xlobOQZ9Wqk)
    JOBDIR=~/OLD_JOB
    OUTPUT="$DIR/$TITLE"
   

    if [ ! -d "$SCRATCHESDIR" ]; then
    mkdir  "$SCRATCHESDIR"

fi
   

    if [ -e "$SCRATCHESDIR/$SCRATCHES" ]
then
    echo "Fichier présent"
    sleep 2
else
    echo "Fichier absent"
    sleep 2
    youtube-dl -o "$SCRATCHESDIR/$SCRATCHES" -f best https://www.youtube.com/watch?v=w9iQBNyn4Ac


fi


    if [ -e "$SCRATCHESDIR/$PROJECTOR_FILM" ]
then
    echo "Fichier présent"
    sleep 2
else
    echo "Fichier absent"
    sleep 2
    youtube-dl -o "$SCRATCHESDIR/$PROJECTOR_FILM" -f m4a  https://www.youtube.com/watch?v=xlobOQZ9Wqk


fi

     
    if [ ! -d "$JOBDIR" ]; then
    mkdir  "$JOBDIR"

fi

    mplayer -endpos 120 -dvd-device "$DEVICE" -dumpstream dvd://"$LONGEST" -dumpfile "$JOBDIR/$TITLE.dump"

   
    MAP_ID_STREAMS=$(lsdvd -a "$DEVICE" -t "$i" 2> /dev/null | \
             grep "Language: fr" | sed -n -e "s/.*\(0x\)/\1/p" | sed -e 's/c/1c/g' | \
             awk '/0x/{gsub (/^/,"-map i:")}1')
       
    TAG="-metadata:s:a:0 language=fra"

       
        ffmpeg -hwaccel auto -c:v mpeg2_cuvid -analyzeduration 1000M -probesize 1000M -vsync passthrough -i "$JOBDIR/$TITLE.dump" \
            -map 0:v -metadata title="$TITLE" \
            -c:v h264_nvenc -preset hp -profile:v high -level 4.2 \
            -loglevel repeat+verbose  ${MAP_ID_STREAMS} \
            -c:a ac3 -b:a 160k $TAG -movflags +faststart -qmin 18 -qmax 23 \
            -y "$JOBDIR/$TITLE.mkv"
           
            rm -f "$JOBDIR/$TITLE.dump"    
                   

    DURATION=$(ffprobe "$JOBDIR/$TITLE.mkv" -show_format 2>&1 | sed -n 's/duration=//p')
    echo $DURATION
         
         ffmpeg -i "$SCRATCHESDIR/$SCRATCHES" -r 1 -f image2 "$SCRATCHESDIR/image_damage_effect_%4d.png"
         ffmpeg -loop 1 -r 7 -f image2 -i "$SCRATCHESDIR/image_damage_effect_%4d.png" \
            -c:v h264_nvenc -preset hp \
            -filter:v scale=-720:576 -pix_fmt yuv420p \
            -t $DURATION -y "$JOBDIR/SCRATCH.mkv"
                           
   
        ffmpeg -i "$JOBDIR/$TITLE.mkv" -i "$JOBDIR/SCRATCH.mkv" \
            -loglevel repeat+verbose \
            -c:v libx264 -preset veryfast \
            -filter_complex "blend=all_mode='overlay':all_opacity=0.4,\
           colorchannelmixer=0.98786:0.01538:0.00378:0.0:0.00698:0.99372:0.00336:0.0:0.00544:0.01068:0.98262:0.0"
\
            -pix_fmt yuv420p -acodec copy -y "$JOBDIR/$TITLE+[SCRATCH].mkv"
           
            rm -f "$JOBDIR/$TITLE.mkv"
            rm -f "$JOBDIR/SCRATCH.mkv"
     


    ffmpeg -ss 00:00:03.000 -i "$SCRATCHESDIR/$PROJECTOR_FILM"  -filter:a "volume=0.2" -ac 6 -acodec ac3 -b:a 160k -y "$JOBDIR/[REDUCE_DB]-$PROJECTOR_FILM"
    ffmpeg -stream_loop -1 -i "$JOBDIR/[REDUCE_DB]-$PROJECTOR_FILM" -acodec copy -ss 00:00:00.000 -t $DURATION -y "$JOBDIR/long_output.ac3"
   
           rm -f "$JOBDIR/[REDUCE_DB]-$PROJECTOR_FILM"
   
        ffmpeg -y -i "$JOBDIR/$TITLE+[SCRATCH].mkv" -stream_loop -1 -i "$JOBDIR/long_output.ac3" \
             -filter_complex "[0:a][1:a]amix=inputs=2:duration=longest[out]" \
             -map 0:v -map [out] $TAG -ss 00:00:00.000 -t $DURATION -y "$DIR/$TITLE[Vintage].mkv"
           
          rm -r "$JOBDIR"
 

Dernière modification par Anonyme (07-11-2019 23:20:47)

#5 08-11-2019 10:23:09

Anonyme
Invité

Re : Vieillir un film

Oups !!! quelle erreur  tongue

-t "$i"



au lieu de

-t "$LONGEST"



Correction un peu plus tard.

Dernière modification par Anonyme (08-11-2019 10:23:34)

#6 29-05-2020 17:40:22

Anonyme
Invité

Re : Vieillir un film


#!/bin/bash
   
    PATH=$PATH:/sbin:/usr/sbin
   
    ## VINTAGE
    ## @Anonyme
    ## player -endpos 120

    ## youtube-dl ffmpeg libdvdcss2
    ## youtube-dl  -o -f best https://www.youtube.com/watch?v=oK7k0EIGlF4
    ## https://www.youtube.com/watch?v=zs9IsYjCrAw
    ## https://www.youtube.com/watch?v=aiNFF9q5OLw

    # Retro Movie Camera Sound Effect
    # https://www.youtube.com/watch?v=pHWHokbd5xQ
    # https://www.youtube.com/watch?v=xlobOQZ9Wqk
    # youtube-dl -f m4a https://www.youtube.com/watch?v=xlobOQZ9Wqk
    # https://stackoverflow.com/questions/349 … ing-ffmpeg
   

    DIR=$(xdg-user-dir DESKTOP)
    DEVICE=/dev/sr0
    TITLE_NUMBER=$(lsdvd "$DEVICE" | grep ^'Title: ' | wc -l)
    TITLE=$(lsdvd "$DEVICE" | head -1 | awk '{print $3}')
    LONGEST=$(lsdvd -x "$DEVICE" 2> /dev/null | grep "Longest track" | awk '{print$3}')
    SCRATCHESDIR=~/DATA_VINTAGE
    SCRATCHES=$(youtube-dl --get-filename -o "%(title)s.%(ext)s" w9iQBNyn4Ac)
    PROJECTOR_FILM=$(youtube-dl --get-filename -o "%(title)s.%(ext)s" -f m4a  https://www.youtube.com/watch?v=xlobOQZ9Wqk)
    JOBDIR=~/OLD_JOB
    OUTPUT="$DIR/$TITLE"
   

    if [ ! -d "$SCRATCHESDIR" ]; then
    mkdir  "$SCRATCHESDIR"


fi
   

    if [ -e "$SCRATCHESDIR/$SCRATCHES" ]; then
    echo "Fichier présent"
    sleep 2
else
    echo "Fichier absent"
    sleep 2
    youtube-dl -o "$SCRATCHESDIR/$SCRATCHES" -f best https://www.youtube.com/watch?v=w9iQBNyn4Ac


fi


    if [ -e "$SCRATCHESDIR/$PROJECTOR_FILM" ]; then
    echo "Fichier présent"
    sleep 2
else
    echo "Fichier absent"
    sleep 2
    youtube-dl -o "$SCRATCHESDIR/$PROJECTOR_FILM" -f m4a  https://www.youtube.com/watch?v=xlobOQZ9Wqk


fi

     
    if [ ! -d "$JOBDIR" ]; then
    mkdir  "$JOBDIR"

fi

    mplayer -dvd-device "$DEVICE" -dumpstream dvdnav://"$LONGEST" -dumpfile "$JOBDIR/$TITLE.dump"

#    TAG="-metadata:s:a:0 language=fra"
#       SHOW_TAG=$(mplayer -vo null -ao null -frames 0 -identify dvd://01 -dvd-device /dev/sr0  2>/dev/null | awk '/stream: 0/  {printf "-metadata:s:a:"$3" language="$8" -metadata:s:a:"$3" title="$5$6" "}')    
   
   
    MAP_ID_STREAMS_FR=$(lsdvd -a "$DEVICE" -t "$LONGEST" 2> /dev/null | \
             grep "Language: fr" | sed -n -e "s/.*\(0x\)/\1/p" | sed -e 's/c/1c/g' | \
             awk '/0x/{gsub (/^/,"-map i:")}1')
             
    MAP_ID_STREAMS_XX=$(lsdvd -a "$DEVICE" -t "$LONGEST" 2> /dev/null | \
             grep "Language: xx" | sed -n -e "s/.*\(0x\)/\1/p" | sed -e 's/c/1c/g' | \
             awk '/0x/{gsub (/^/,"-map i:")}1')
             
    MAP_ID_STREAMS_UNIQUE=$(lsdvd -a "$DEVICE" -t "$LONGEST" 2> /dev/null | \
             grep "Language:" | sed -n -e "s/.*\(0x\)/\1/p" | sed -e 's/c/1c/g' | \
             awk '/0x/{gsub (/^/,"-map i:")}1')                            

   
    COUNT_MAP_ID_STREAMS=$(lsdvd -a "$DEVICE" -t "$LONGEST" 2> /dev/null | grep -c "Audio:")
    COUNT_MAP_ID_STREAMS_FR=$(lsdvd -a "$DEVICE" -t "$LONGEST" 2> /dev/null | grep -c "Language: fr")
    COUNT_MAP_ID_STREAMS_XX=$(lsdvd -a "$DEVICE" -t "$LONGEST" 2> /dev/null | grep -c "Language: xx")
       
   
     if [[ "$COUNT_MAP_ID_STREAMS_FR" -ge "1" ]] && [[ "$COUNT_MAP_ID_STREAMS" -ge "1" ]]

    then      
       
        ffmpeg -hwaccel auto -c:v mpeg2_cuvid -analyzeduration 1000M -probesize 1000M -vsync passthrough -i "$JOBDIR/$TITLE.dump" \
            -map 0:v -metadata title="$TITLE" \
            -c:v h264_nvenc -preset hp -profile:v high -level 4.2 \
            -loglevel repeat+verbose  ${MAP_ID_STREAMS_FR} \
            -c:a ac3 -b:a 160k -movflags +faststart -qmin 18 -qmax 23 \
            -y "$JOBDIR/$TITLE.mkv"
           
fi
           
           
     if [[ "$COUNT_MAP_ID_STREAMS_XX" -ge "1" ]] && [[ "$COUNT_MAP_ID_STREAMS" -ge "1" ]]

    then      
       
        ffmpeg -hwaccel auto -c:v mpeg2_cuvid -analyzeduration 1000M -probesize 1000M -vsync passthrough -i "$JOBDIR/$TITLE.dump" \
            -map 0:v -metadata title="$TITLE" \
            -c:v h264_nvenc -preset hp -profile:v high -level 4.2 \
            -loglevel repeat+verbose  ${MAP_ID_STREAMS_XX} \
            -c:a ac3 -b:a 160k $TAG -movflags +faststart -qmin 18 -qmax 23 \
            -y "$JOBDIR/$TITLE.mkv"            


fi



     if [[ "$COUNT_MAP_ID_STREAMS_FR" -eq "0" ]] && [[ "$COUNT_MAP_ID_STREAMS" -eq "1" ]]

    then      
       
        ffmpeg -hwaccel auto -c:v mpeg2_cuvid -analyzeduration 1000M -probesize 1000M -vsync passthrough -i "$JOBDIR/$TITLE.dump" \
            -map 0:v -metadata title="$TITLE" \
            -c:v h264_nvenc -preset hp -profile:v high -level 4.2 \
            -loglevel repeat+verbose  ${MAP_ID_STREAMS_UNIQUE} \
            -c:a ac3 -b:a 160k $TAG -movflags +faststart -qmin 18 -qmax 23 \
            -y "$JOBDIR/$TITLE.mkv"            


fi



            rm -f "$JOBDIR/$TITLE.dump"    
                   
    DURATION=$(ffprobe "$JOBDIR/$TITLE.mkv" -show_format 2>&1 | sed -n 's/duration=//p')
    echo $DURATION
         
         ffmpeg -i "$SCRATCHESDIR/$SCRATCHES" -r 1 -f image2 "$SCRATCHESDIR/image_damage_effect_%4d.png"

         ffmpeg -loop 1 -r 7 -f image2 -i "$SCRATCHESDIR/image_damage_effect_%4d.png" \
            -c:v h264_nvenc -preset hp \
            -filter:v scale=-720:576 -pix_fmt yuv420p \
            -t $DURATION -y "$JOBDIR/SCRATCH.mkv"
                               
        ffmpeg -i "$JOBDIR/$TITLE.mkv" -i "$JOBDIR/SCRATCH.mkv" \
            -loglevel repeat+verbose \
            -c:v h264_nvenc -preset hp \
            -filter_complex "blend=all_mode='overlay':all_opacity=0.4,\
           colorchannelmixer=0.98786:0.01538:0.00378:0.0:0.00698:0.99372:0.00336:0.0:0.00544:0.01068:0.98262:0.0"
\
            -pix_fmt yuv420p -map 0:1 -acodec copy -y "$JOBDIR/$TITLE+[SCRATCH].mkv"
           
            rm -f "$JOBDIR/$TITLE.mkv"
            rm -f "$JOBDIR/SCRATCH.mkv"
     
    ffmpeg -ss 00:00:03.000 -i "$SCRATCHESDIR/$PROJECTOR_FILM"  -filter:a "volume=0.2" -ac 6 -acodec ac3 -b:a 160k -y "$JOBDIR/[REDUCE_DB]-$PROJECTOR_FILM"
    ffmpeg -stream_loop -1 -i "$JOBDIR/[REDUCE_DB]-$PROJECTOR_FILM" -acodec copy -ss 00:00:00.000 -t $DURATION -y "$JOBDIR/long_output.ac3"
   
           rm -f "$JOBDIR/[REDUCE_DB]-$PROJECTOR_FILM"
   
        ffmpeg -y -i "$JOBDIR/$TITLE+[SCRATCH].mkv" -stream_loop -1 -i "$JOBDIR/long_output.ac3" \
             -filter_complex "[0:a][1:a]amix=inputs=2:duration=longest[out]" \
             -map 0:v -c:v h264_nvenc -preset hp -map [out] -ss 00:00:00.000 -t $DURATION -y "$DIR/$TITLE[Vintage].mkv"
           
          rm -r "$JOBDIR"
 

Dernière modification par Anonyme (29-05-2020 17:57:46)

Pied de page des forums