Automatización ripeado de audio y video

Me gusta ver pelis, me gusta que estén en buena calidad por lo que cuando las pillo las intento pillar con buena resolución (1080p) y con buen audio (5.1, 6 canales mono, etc). Eso implica que suelen ocupar >4 Gb espacio una peli de 90-120 minutos.

Mi tele no tiene ni surround ni pollas, solo es stereo. Asi que a las pelis les hago lo siguiente:

  1. Ripear el video en h265 por un lado
  2. Ripear las pistas de audio a estereo uniendo los diferentes canales.
Todo ello lo realizo con scripts y con servicesMenus de KDE para facilitar el lanzado

Video


ffmpeg -i \""$INFILE"\" -c:v libx265 -preset medium -x265-params crf=26 -an \""$INFILE".h265.mkv\"


Audio

ffmpeg -i "$INFILE.wav" -c:a libvo_aacenc -vbr 3 -af "pan=stereo|c0=FL+FC+LFE+BL|c1=FR+FC+LFE+BR" salida.aac

Espero poder aumentar la versión de ffmpeg para utilizar un mejor codec de AAC.

Para automatizar, creo un script tal que así:

#!/bin/bash
#################################################
##
## Extreu el audio dun arxiu i el ripeja encoded
##
#################################################

declare -a pistas

while (( $# ))
do
  FULLPATH="$1"
  DIR=$(dirname "$FULLPATH")
  FILE=$(basename "$FULLPATH")
    
  shift
  
  pistas=($(mkvmerge -i "$FULLPATH" | grep audio | cut -d \  -f 6 | cut -d : -f 1))
  
  for track in ${pistas[*]} 
  do
     OUT="$DIR/${FILE:0:5}_$track.aac"
     echo "-------------------------------------------------"
     echo "Ripping pista $track to $OUT..."
     echo "-------------------------------------------------" 
     
     #extraccion de pistas de audio
     mkvextract tracks "$FULLPATH" $track:"$DIR/$track.snd" 
     
     #se pasa a AAC en stereo
     ffmpeg -i "$DIR/$track.snd" -c:a libvo_aacenc -vbr 3 -af "pan=stereo|c0=FL+FC+LFE+BL|c1=FR+FC+LFE+BR" "$OUT" 
          
     rm -f "$DIR/$track.snd" 
          
     echo
  done
done



Comentarios