Bueno, hace un tiempo hice un pequeño script para recodificar varios videos a formato h264 con mencoder a la vez, lo llamé h264. Funciona bien, lo malo es que es un poco coñazo tener que abrir una consola, ir escribiendo los nombres de todos los videos que quieres recodificar....
 
+---------------------------------------------------------------------------+
+----------------------------------------------------------------------------+
Solución: ServiceMenus de KDE.
Un serviceMenu de kde es un item de cuando pulsas botón derecho en el gestor de ficheros, por ejemplo dolphin o el plasmoid de quickaccess. En el menú contextual que se abre al pulsar el boton derecho hay un apartado de "Acciones", pos allí aparecen varios ServiceMenus.
Crearemos un service menú para recodificar uno o varios archivos seleccionados directamente de dolphin tal que ejecutara el script h264.sh (modificado) para que deje el archivo recodificado en el mismo sitio que el archivo original, con la extension .h264. Pasos:
- Crear serviceMenu en kde
- Script h264-service.sh que llamará la opcion de menú
SERVICEMENU
El serviceMenu se traduce en un archivo .desktop que tenemos que crear en uno de los directorios que nos idique el comando 
kde4-config --path services
en mi caso lo he guardado en $HOME/.kde/share/kde4/services/h264.desktop
[Desktop Entry]                                                                        
Type=Service                                                                           
ServiceTypes=KonqPopupMenu/Plugin                                                      
MimeType=video/*;                                                                      
Actions=toh264
[Desktop Action toh264]                                                                
Name=Passar a h264                                                                     
Icon=video-x-generic                                                                   
Exec=/path/h264-service.sh %U 
Básicamente decimos que esta opción solo aparezca en archivos con mimeType de video y que la accion ejecutara el script h264-service.sh pasandole como parametros %U, que se traduce en una lista de archivos (con path completo) de los archivos seleccionados en dolphin.
SCRIPT H264-service.sh
+---------------------------------------------------------------------------+
#!/bin/bash
AUDIOOPTS="cbr:br=128:mode=1"
VIDEOOPTS="subq=6:8x8dct:frameref=4:partitions=all:bframes=3:b_pyramid=normal:weight_b:threads=auto:me=umh:cabac"
BITRATE=$(kdialog --title "BITRATE" --inputbox "Posa el bitrate" "500")
SCALE=$(kdialog --title "REESCALAR" --inputbox "Vols escalar el video? (width:height - 0 per no escalar)" "0")
echo $BITRATE
SCRIPTFILE="$HOME/run.sh"
rm -rf $SCRIPTFILE
while (( $# ))
do
  INFILE=$1
  shift
  if [ "$SCALE" == "0" ]
  then
    SCALEOPTS=""
  else
    SCALEOPTS="-vf scale=$SCALE"
  fi
  #pas 1
  echo mencoder \""$INFILE"\" -forceidx -oac mp3lame -lameopts "$AUDIOOPTS" -ovc x264 -x264encopts "$VIDEOOPTS:pass=1" -o /dev/null "$SCALEOPTS" >> $SCRIPTFILE
  
  #pas 2
  echo mencoder \""$INFILE"\" -forceidx -oac mp3lame -lameopts "$AUDIOOPTS" -ovc x264 -x264encopts "$VIDEOOPTS:pass=2:bitrate=$BITRATE" -o \""$INFILE".h264\" "$SCALEOPTS" >> $SCRIPTFILE
  #neteja
  echo rm -rf divx2pass.log.mbtree divx2pass.log >> $SCRIPTFILE
  
done
chmod +x $SCRIPTFILE
konsole --noclose -e /bin/sh -c ${SCRIPTFILE}
+----------------------------------------------------------------------------+
Basicamente lo que hace es preguntar por el bitrate que se quiere usar, las dimensiones del video resultante si se quiere reescalar y lo que hace es crear otro script en $HOME/run.sh con todas las llamadas a mencoder necesarias para hacer las recodificaciones de los videos. Acto seguido, abre una konsole ejecutando el run.sh
Comentarios