Ir a contenido

  • Ver nuevo contenido
  •  
  •  








Pausing RSS Scroller demo

Pegar subtítulos con mencoder


  • Identifícate para comentar
Se han realizado 2 comentarios. Contamos con el tuyo!

#1 Scarface - 03 November 2007 - 14:07

    Cambia esto por Dios!

  • General
  • 4697 Mensajes
Realicé hace poco este minitutorial para pegar subtítulos en los vídeos mediante mencoder. Tengo algunas dudas con respecto a la calidad del vídeo de salida, a ver si alguien tiene algo de idea de mencoder y me puede aconsejar que parámetros son los mejores para que no haya apenas pérdida de calidad. También tengo un pequeño problema con algunos símbolos que explico al final:

Cita

Primero empezaremos por los requisitos, lo único que necesitamos es el paquete mencoder (y las dependencias que pueda tener) y una fuente instalada en nuestro sistema que sea de nuestro agrado, en mi caso utilizo FreeSans Bold (incluida en el paquete ttf-freefont), que me gusta mucho como queda y se lee a la perfección en el vídeo. Instalemos pues:

# aptitude install mencoder ttf-freefont

Lo próximo será ponernos manos a la obra. Abriremos un terminal y nos situaremos en la carpeta donde tenemos el vídeo y los subtítulos, pues nos será mucho más cómodo a la hora de introducir el comando.

Bien, supongamos que estamos en este caso:

   * Archivo de vídeo: Heroes.S02E01.HDTV.XviD-XOR.avi
   * Archivo de subtítulos: Heroes.S02E01.HDTV.XviD-XOR.srt
   * Archivo de salida deseado: Heroes.S02E01.avi

Situados en la carpeta en cuestión introducimos el siguiente comando:

$ mencoder -ovc lavc -lavcopts vcodec=mpeg4 -oac copy Heroes.S02E01.HDTV.XviD-XOR.avi -o Heroes.S02E01.avi -sub Heroes.S02E01.HDTV.XviD-XOR.srt -font /usr/share/fonts/truetype/freefont/FreeSansBold.ttf -subfont-autoscale 1

Tras esto mencoder empezará a codificar el vídeo creando el nuevo archivo .avi con los subtítulos ya pegados en él.

Como se puede ver, el comando es un poco engorroso de recordar, y como tiene varias variables no se le podría poner un alias, pero para eso he creado un script (sí, yo solito!!!) que aunque es muy básico nos sirve para no tener que recordar todos los parámetros. Es el siguiente:

    #!/bin/bash
    read -p "Selecciona el archivo de vídeo: " video_ini
    read -p "Selecciona el archivo de subtitulos: " subs
    read -p "Selecciona el nombre del archivo de salida: " video_fin
    mencoder -ovc lavc -lavcopts vcodec=mpeg4 -oac copy $video_ini -o $video_fin -sub $subs -font /usr/share/fonts/truetype/freefont/FreeSansBold.ttf -subfont-autoscale 1


En el script lo único que deberíais cambiar sería la ruta de la fuente, en caso de que queráis utilizar otra distinta. Como se utiliza el script? Muy sencillo:

Primero lo creamos, con kate, gedit, nano o lo que más rabia os de, le dáis un nombre, por ejemplo yo le he puesto como nombre pegar_subs, después le damos permisos de ejecución y lo copiamos a la carpeta /usr/bin (así no tendremos que indicar la ruta al script ya que estará en nuestro PATH):

# nano pegar_subs

# chmod +x pegar_subs

#  cp pegar_subs /usr/bin


Para usarlo, abrimos un terminal y nos vamos a la carpeta donde tenemos el vídeo y los subtítulos y tecleamos:

$ pegar_subs

Nos preguntará por el nombre del vídeo, el nombre de los subtítulos y el nombre que le queremos dar al archivo de salida. Como en ese diálogo no hay autocompletado, lo mejor es copiar el nombre del archivo directamente y pegarlo en el terminal. Tras esto tendremos nuestro vídeo con los subtítulos integrados.

Con la fuente FreeSans que le tengo puesta podéis ver una muestra de como queda:

Ántes:
Imagen enviada

Después:
Imagen enviada


El único problema que me he encontrado es con los símbolos "¡" y "º", si alguien sabe qué parámetro hay que introducir para conseguir que salgan bien (se sustituyen por "¿"), ya sabe donde decirlo :P

Deberían ponerse correctamente usando la codificación ISO 8859-15, pero por más que miro el manpage no doy con el parámetro correcto.

Por cierto, se me olvidaba mencionarlo, los comandos que tienen delante # se introducen como root y los que tienen $ se introducen como usuario normal.

Este tema ha sido editado por Scarface: 03 November 2007 - 14:38


#2 Invitado - 22 April 2009 - 15:35

  • Invitado
un millón de gracias por el script!!

#3 carlos - 02 October 2011 - 01:40

  • Invitado
Probablemente puedas indicar la codificación con -subcp, por ejemplo:
-subcp iso-8859-1




Experimental: Ahora también se puede usar el sistema Disqus para comentar en los hilos del foro.


comments powered by Disqus