La conversión de FFMPEG mkv a mp4 pierde subtítulos


11

Actualmente estoy tratando de convertir mi biblioteca mkv a mp4 (Iphone 6 plus)

He logrado llegar a la conversión de mkv a mp4 correctamente, pero me falta la parte de subtítulos (SRT)

Aquí está mi código:

dir/b/s *.mkv >mkvlist.txt   ///////// this gets a list of all the mkv files on the directory

for /F "delims=;" %%F in (mkvlist.txt) do ffmpeg.exe  -i "%%F" -format mp4 -vcodec copy -acodec aac -strict -2 -sn "%%~dF%%~pF%%~nF.mp4"   ///////////// this makes the conversion

del mkvlist.txt     ////// this deletes the txt file

Me gustaría incluir subtítulos en el script, pero tengo problemas para insertar el nombre correcto de los subtítulos en el script (ya que este es un lote de conversión múltiple).


Los archivos .mkv son un formato contenedor. Es muy probable que el archivo mkv contenga un archivo .srt que pueda extraer. Asegúrese de que tenga el mismo nombre que el archivo .mp4 y que debería funcionar. El archivo mkv en realidad también puede contener un archivo mp4, pero también puede tener un formato de video .divx, .avi o cualquier otro.
LPChip

Respuestas:


17

MP4 no es compatible con SRT. Puedes usar softsubs o hardsubs.

softsubs

Subtítulos que consisten en una secuencia separada en el archivo. Pueden ser activados / desactivados por el reproductor, y no requieren que la transmisión de video se vuelva a codificar.

ffmpeg -i input.mkv -c copy -c:s mov_text output.mp4

El soporte del reproductor para softsubs de texto cronometrado en MP4 puede ser bastante pobre. Solo tendrás que probarlo.

penurias

Los discos rígidos se "queman" en el video, por lo que el video debe volver a codificarse.

ffmpeg -i input.mkv -vf subtitles=input.mkv output.mp4

Consulte la documentación del filtro de subtítulos para obtener más información, como cómo seleccionar una secuencia de subtítulos en particular si hay más de una.


¿Podrías ayudarme a entender mejor mi código? ¿Dónde y por qué agregaría la codificación de los subs? (¿Y si puede pensar en una solución o una forma de convertir por lotes todos los archivos en las subcarpetas con sus suscripciones correspondientes?) (Si no hay subtítulos, entonces necesitaría omitir el archivo por completo y pasar al siguiente.
dpkmon

2

Tuve un problema similar al pasar de MP4 a MKV de algunos archivos mp4 que rompí con Handbrake. Primero consulté https://en.wikibooks.org/wiki/FFMPEG_An_Intermediate_Guide/subtitle_options , que implicaba formatos de subtítulos particulares para mkv vs mp4. Después de jugar con conversiones de culo y mov_text que no funcionaban, probé algunos archivos y noté que aparecía el formato dvd_subtitle. Después de mucho jugar, lo siguiente funcionó.

ffmpeg -i "\\server\directory\Sourcefile.mp4" -c:v copy -c:a copy -c:s dvd_subtitle "\\server\directory\Outputfile.mkv"

Espero eso ayude.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.