Así que descargué el archivo gratuito creado por fans.Star Trek continúaISO de rayos azules paraEpisodios 1-3y estoy intentando convertir FHD 1920x1080 a SD 960x540 para poder mirar en mi teléfono:
ffmpeg -canvas_size 960x540 \
-i /media/STC_VOL1_BR/BDMV/STREAM/00000.m2ts \
-map_metadata -1 \
-c:v libx264 -map 0:0 -strict -2 -r 24 -s 960x540 \
-c:a libmp3lame -map 0:1 -b:a 384K \
-metadata:s:s:0 language=EN -c:s dvdsub -map 0:2 \
/media/Videos/Star\ Trek\ Continues/S01E01\ Pilgrim\ Of\ Eternity.mkv
pero después de unos segundos de ver el mkv convertido, los subtítulos se convierten en:
- ilegible debido a la superposición
- son un poco grandes (no hay problema)
- desplazado hacia la derecha y hacia abajo de la pantalla
Salida completa de ffmpeg aquí
¿Qué estoy haciendo mal?
Nota 1:Solo he trabajado con srt
subtítulos y sé que los DVDsubs son imágenes, por eso pensé que el canvas_size
parámetro podría ser de ayuda, pero no hace ninguna diferencia.
Nota 2:Sí, en realidad no es una cuestión pura del sistema operativo Ubuntu, pero vamos.video.seno conseguircualquier atención, incluso con una recompensaAsí que intente aquí si alguien realiza alguna conversión de video y se ha encontrado con la misma situación.
Respuesta1
Técnicamente elmás limpiomirar con estos subtítulos sería:
- extraer los subtitulos
- Conviértelos en texto usando tu aplicación OCR favorita
- Revisa y edita cuidadosamente el texto.
- Vuelva a grabarlos en el flujo multimedia en el tamaño, color, orientación y formato que elija.
Este es un trabajo grande y que requiere mucho tiempo y queHe emprendido personalmente en el pasadopero probablemente seaexageraren este caso.
ElmejorLa opción es simplemente agregar la opción FFmpeg -fix_sub_duration
(colocadaantesel archivo de entrada) y esto arreglará los subtítulos duplicados como lo ilustro a continuación, y hará que los subtítulos sean fácilmente legibles:
Los detalles de la -fix_sub_duration
opción se pueden encontrar en las páginas de manual de FFmpeg-all, pero me he tomado la libertad de citar estos detalles aquí:
-fix_sub_duración
Corregir la duración de los subtítulos. Para cada subtítulo, espere el siguiente paquete en la misma secuencia y ajuste la duración del primero para evitar superposiciones. Esto es necesario con algunos códecs de subtítulos, especialmente los subtítulos DVB, porque la duración en el paquete original es sólo una estimación aproximada y el final en realidad está marcado por un cuadro de subtítulo vacío. No utilizar esta opción cuando sea necesario puede dar lugar a duraciones exageradas o fallos de mezcla debido a marcas de tiempo no monótonas.
Tenga en cuenta que esta opción retrasará la salida de todos los datos hasta que se decodifique el siguiente paquete de subtítulos: puede aumentar mucho el consumo de memoria y la latencia.
Notarás que este es elprimerode las opciones de subtítulos avanzados, elsegundosiendo el -canvas_size
que ya has usado...