Quiero convertir por lotes todos los archivos .mkv en una carpeta a .mp4 con VLC.
Debería usar la transmisión original de audio y video y, si es posible, el subtítulo .ass del .mkv. No es realmente una conversión, es más como cambiar el contenedor: mi reproductor no puede leer los videos de MKV.
Si hago esta conversión a mano (manualmente) funciona, pero tengo muchos archivos MKV para convertir, por lo que tomaría mucho tiempo.
He buscado en Internet un archivo por lotes para hacer esto y encontré algunos. Intenté modificarlos a mi gusto, pero todos los intentos que probé acaban de crear un archivo .mp4 que no contiene la transmisión de audio y la transmisión de video tampoco puede ser reproducida por todos mis reproductores multimedia en la PC.
Entonces, ¿podría alguien decirme cómo debe verse el lote, para que funcione con el video original y la transmisión de audio (y tal vez los subtítulos .ass)?
fuente
Respuestas:
mkvtomp4
Parece que
mkvtomp4
es lo que quieres?Puede descargar versiones de Windows y Linux en la página de Google Code. Sin embargo, necesitará software adicional.
Verifique los sitios para descargas para Windows o Linux. En OS X, solo necesita hacerlo
brew install mkvtoolnix mp4box
si tiene Homebrew .Sin embargo, esto no copiará tus subtítulos. Necesitarás un paso adicional.
FFmpeg batch
Si mkvtomp4 no funciona para usted, también podría funcionar un simple archivo por lotes de FFmpeg . Para Windows, puede descargar las compilaciones de Zeranoe . En Linux, verifique FFmpeg desde las fuentes del paquete. En OS X, use
brew install ffmpeg
.Entonces, solo llame:
Esto creará un contenedor MP4 válido sin volver a codificar. Recorra los archivos según sea necesario y esté disponible por su sistema operativo. Sin embargo, este lote no copiará subtítulos.
En * nix, puede hacer lo siguiente. Solo crea un archivo
convert.sh
:Reemplace la ruta a su carpeta de video aquí. Hazlo ejecutable con
chmod +x convert.sh
, luego ejecútalo con./convert.sh
.En Windows, probablemente necesite dos archivos Batch (un complemento descarado desde aquí ), uno de ellos es
startconvert.bat
:Y uno que realiza la conversión:
Guarde ambos en la carpeta de video. Simplemente ejecute
startconvert.bat
desde la carpeta desde la que desea iniciar la conversión.Subtítulos
Si desea agregar los subtítulos, es posible que necesite un procedimiento manual si lo siguiente no funciona para usted:
Para extraer subtítulos, use:
Esto supone que su archivo realmente contiene los subtítulos en el número de identificación de la pista 3 y se pueden exportar al formato SRT. Para verificar si un archivo realmente contiene subtítulos en la pista 3, use
mkvmerge -i input.mkv
.Luego, use MP4Box para volver a agregar los subtítulos al archivo MP4.
fuente
Este es un ajuste de parte de la respuesta que dio slhck (y gracias, ¡slhck!) Porque descubrí que el comando no funcionó para el último ffmpeg (al momento de escribir esto), ¿tal vez los parámetros han cambiado entre versiones?
En Windows 7, usando ffmpeg v.20130103-git-9e36d9e-win64-static (descomprímalo con la utilidad 7zip), que se encuentra en http://ffmpeg.zeranoe.com/builds/ a su vez en http://ffmpeg.org /download.html , el siguiente comando convirtió un archivo .mov (tomado de un iPhone) en un archivo .mp4:
Descubrí que cambiar la parte .mp4 de esto a .avi también funcionaba, cambiarlo a un contenedor .avi. Con cualquiera de los contenedores de destino, el uso de estos parámetros "-vcodec copy -acodec copy" parece copiar solo las secuencias de origen en un nuevo contenedor (en el destino), por lo que es una conversión sin pérdidas (y supongo que ese sería el caso con un variedad de contenedores de destino, también).
Estos ajustes de los lotes que slhck me dio también funcionaron para mí:
callConvert.bat:
convert.bat:
fuente
-c:a
y-acodec
, o-c:v
y-vcodec
. De hecho, todavía estoy usando el primero hoy, ya que es la sintaxis recomendada, y ambas se mencionan en la documentación de FFmpeg . Tenga en cuenta que la conversión del contenedor a AVI puede romperse para muchos códecs de video y audio, ya que los archivos AVI carecen de soporte para la codificación predictiva (que utiliza el video H.264, el que le brinda el iPhone). Si no utiliza un contenedor MP4 o MOV como destino, siempre es mejor volver a codificar.Antigua pregunta, pero aquí está mi respuesta, para que conste. MP4 no puede hacer subtítulos a menos que formen parte del cuadro de video, pero así es como convierto archivos .mkv a .mp4:
Guárdelo como mkv2mp4.ps1 y suéltelo en la carpeta con la que está trabajando. Haga clic derecho y "Abrir en Powershell" y hará lo suyo.
Esta es la primera vez que he visto Powershell (y la última que espero, ¿por qué MS no pudo simplemente portar Bash?) Pero funciona para mí y se basa en el código que encontré aquí: https: // wiki .videolan.org / How_to_Batch_Encode / # Powershell
fuente
Makefile
- para poder volver a ejecutarla y convertir solo las nuevas fuentes, así como para poder ejecutar múltiples conversiones en paralelo (para hacer uso de todas sus CPU )