MCEBuddy Recortes y subtítulos personalizados

Estoy intentando usar MCEBuddy Custom Cuts y, aunque parece que el EDL funciona y el archivo se genera como se espera, parece haber un problema al conservar los subtítulos.

Al revisar el archivo de registro, parece que la sonda encuentra los subtítulos en la fuente, pero estos no llegan a la copia .ts de la carpeta temporal working0:

2019-09-25T12:02:50 MCEBuddy.AppWrapper.FFmpeg --> Launching process C:\Program Files\MCEBuddy2x\ffmpeg\ffmpeg.exe
2019-09-25T12:02:50 MCEBuddy.AppWrapper.FFmpeg --> Process arguments  -hide_banner -probesize 100M -analyzeduration 300M -y -i "E:\Inbound\NFL Football\NFL Football - S2019E2037 - Los Angeles Chargers at Detroit Lions.m4v"  -ss 0 -vcodec copy -acodec copy -map 0:a -map 0:0 -f mpegts "C:\Program Files\MCEBuddy2x\working0\NFL Football - S2019E2037 - Los Angeles Chargers at Detroit Lions.ts"
2019-09-25T12:02:50 MCEBuddy.AppWrapper.FFmpeg --> UI Session Admin Process : True
2019-09-25T12:02:50 MCEBuddy.AppWrapper.FFmpeg --> Starting process as a UISession process with Admin privileges. This requires atleast 1 user to be logged into the system (remote desktop or locally)
2019-09-25T12:02:50 MCEBuddy.AppWrapper.FFmpeg --> Setting process priority to Normal
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg --> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'E:\Inbound\NFL Football\NFL Football - S2019E2037 - Los Angeles Chargers at Detroit Lions.m4v':
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->   Metadata:
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     major_brand     : mp42
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     minor_version   : 512
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     compatible_brands: isomiso2mp41
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     creation_time   : 2019-09-15T21:33:58.000000Z
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     encoder         : MCEBuddy
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     date            : 1900-01-01T12:00:00Z
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     RecordingTimestamp: 1900-01-01T12:00:00
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     SeriesPremiere  : 1900-01-01T12:00:00
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     CopyProtected   : False
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     title           : Los Angeles Chargers at Detroit Lions
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     show            : NFL Football
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     season_number   : 227
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     episode_sort    : 245
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     media_type      : 10
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->   Duration: 02:52:45.53, start: 0.000000, bitrate: 12369 kb/s
--> Video duration=10365.53
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     Stream #0:0(und): Video: hevc (Main) (hvc1 / 0x31637668), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 12199 kb/s, 29.67 fps, 29.97 tbr, 90k tbn, 29.97 tbc (default)
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     Metadata:
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->       creation_time   : 2019-09-15T21:33:58.000000Z
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->       handler_name    : VideoHandler
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 160 kb/s (default)
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     Metadata:
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->       creation_time   : 2019-09-15T21:33:58.000000Z
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->       handler_name    : SoundHandler
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     Stream #0:2(spa): Subtitle: mov_text (tx3g / 0x67337874), 1920x162, 0 kb/s (default)
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     Metadata:
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->       creation_time   : 2019-09-15T21:33:58.000000Z
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->       handler_name    : SubtitleHandler
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg --> Output #0, mpegts, to 'C:\Program Files\MCEBuddy2x\working0\NFL Football - S2019E2037 - Los Angeles Chargers at Detroit Lions.ts':
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->   Metadata:
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     major_brand     : mp42
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     minor_version   : 512
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     compatible_brands: isomiso2mp41
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     media_type      : 10
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     episode_sort    : 245
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     date            : 1900-01-01T12:00:00Z
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     RecordingTimestamp: 1900-01-01T12:00:00
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     SeriesPremiere  : 1900-01-01T12:00:00
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     CopyProtected   : False
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     title           : Los Angeles Chargers at Detroit Lions
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     show            : NFL Football
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     season_number   : 227
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     encoder         : Lavf58.24.100
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     Stream #0:0(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 160 kb/s (default)
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     Metadata:
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->       creation_time   : 2019-09-15T21:33:58.000000Z
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->       handler_name    : SoundHandler
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     Stream #0:1(und): Video: hevc (Main) (hvc1 / 0x31637668), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 12199 kb/s, 29.67 fps, 29.97 tbr, 90k tbn, 90k tbc (default)
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->     Metadata:
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->       creation_time   : 2019-09-15T21:33:58.000000Z
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->       handler_name    : VideoHandler
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg --> Stream mapping:
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->   Stream #0:1 -> #0:0 (copy)
2019-09-25T12:02:51 MCEBuddy.AppWrapper.FFmpeg -->   Stream #0:0 -> #0:1 (copy)

También adjunto el registro completo a esta publicación. ¿Hay algo muy obvio que esté pasando por alto? ¡Gracias de antemano por cualquier ayuda que puedan brindar!
NFL Football - S2019E2037 - Los Angeles Chargers at Detroit Lions.m4v-Football-2019-09-25T12-02-07.0358516-04-00.log (3.3 MB)

Profundizando más en esto. Resulta que tengo un script que uso debido a otro problema reciente que he encontrado para extraer archivos .srt. Usando este script puedo extraer el archivo .srt que es detectado por MCEBuddy cuando se añade a la cola. Desafortunadamente, parece que el archivo .srt se copia y no se incrusta.

Luego tengo que subir el .srt a Plex, ya que no se reconoce ni se actualiza fácilmente por cualquier razón.

No es ideal, y son muchos pasos. Agradecería cualquier idea o sugerencia adicional para mejorar este flujo de trabajo. :+1:

No has habilitado la opción Exact closed captions and subtitles en la tarea de conversión, por lo que nunca los extrae (y en consecuencia tampoco los incrusta aunque hayas activado esa opción)

Closed Captions →

Ahhh, desafortunadamente eso no resolvió el problema. Al seleccionar Extract closed captions and subtitles en la tarea de conversión, se extrae un archivo .srt y se coloca en la misma carpeta que el archivo .mp4 de salida cuando ingreso un archivo .ts. El archivo .mp4 resultante también tiene los subtítulos incrustados.

(Debo señalar que los subtítulos también se incrustan en el .mp4 sin usar Extract closed captions and subtitles, también).

Hasta aquí, todo bien.

Sin embargo, cuando luego uso Custom Cuts para crear ediciones adicionales en un archivo .edl y posteriormente Process with MCEBuddy, el archivo se añade a la cola, se procesa con la misma tarea de conversión, pero el archivo .srt extraído nunca se incrusta.

¿Quizás estoy haciendo algo terriblemente mal?

Registros, por favor

¡Boh! Lo siento por eso.

Aquí están los registros de la primera conversión (exitosa, funciona como se espera), de .ts.m4v:

NFL Football - S2019E2037 - Los Angeles Chargers at Detroit Lions.ts-Football-2019-09-27T07-52-33.2881663-04-00.log (7.3 MB)

Esto genera un .m4v que es exactamente como se espera, conteniendo los subtítulos incrustados. En consecuencia, ahora que he marcado Extraer subtítulos ocultos y subtítulos en la tarea de conversión, también hay un archivo .srt correspondiente en el directorio de salida.

Luego abro este archivo .m4v recién creado en Custom Cuts, creo puntos de corte y luego guardo el .edl.

Así que ahora en mi directorio de salida tengo:

  • Archivo .m4v
  • Archivo .srt
  • Archivo .edl

Tenga en cuenta que el archivo .m4v contiene subtítulos incrustados como se esperaba.

Luego hago clic en Procesar con MCEBuddy en Custom Cuts, lo que genera esta salida:

NFL Football - S2019E2037 - Los Angeles Chargers at Detroit Lions.m4v-Football-2019-09-27T10-47-49.2347885-04-00.log (2.5 MB)

Ahora tengo los 3 archivos mencionados arriba, y un nuevo archivo .srt más pequeño que fue generado a partir de lo anterior, pero con un 0 adjunto al nombre principal (NFL Football - S2019E2037 - Los Angeles Chargers at Detroit Lions0.srt).

Además, el archivo .m4v ya no tiene subtítulos incrustados como lo hacía en la conversión de .ts.m4v.

Por favor, avíseme si necesita alguna información adicional para diagnosticar más a fondo este problema.

Hay algo mal con tu archivo SRT o el archivo de video, MCEBuddy no puede agregarlo:

2019-09-27T11:18:58 MCEBuddy.AppWrapper.MP4Box → Launching process C:\Program Files\MCEBuddy2x\mp4Box\mp4box.exe
2019-09-27T11:18:58 MCEBuddy.AppWrapper.MP4Box → Process arguments -add “C:\Program Files\MCEBuddy2x\working0\NFL Football - S2019E2037 - Los Angeles Chargers at Detroit Lions.srt”:hdlr=sbtl:lang=eng “C:\Program Files\MCEBuddy2x\working0\NFL Football - S2019E2037 - Los Angeles Chargers at Detroit Lions.m4v”
2019-09-27T11:18:58 MCEBuddy.AppWrapper.MP4Box → UI Session Admin Process : False
2019-09-27T11:18:58 MCEBuddy.AppWrapper.MP4Box → Setting process priority to Normal
→ Process exited with code -1073741515

Si puedes subir el archivo SRT original, EDL y M4V podemos investigarlo.

¡Excelente! Gracias por tu ayuda. He proporcionado los archivos para tu revisión aquí:

Por favor, avísame si necesitas más información o artículos para solucionar este problema.

Estoy un poco confundido aquí. Según el archivo de registro que adjuntaste arriba, muestra un archivo TS convertido a M4V y no había pistas de subtítulos incrustadas en el archivo M4V final como señalé en los registros anteriores.

Sin embargo, el archivo M4V que has subido tiene una pista de subtítulos incrustada y puedo reproducirla. Entonces, ¿qué archivo subiste?

Disculpas por el retraso, @RBoy. Estaba fuera de la ciudad y regresé ayer; esta mañana pude subir más información para ti.

Para reiterar, en el escenario que estamos comentando se producen dos conversiones:

  1. (Referida como First) .ts.m4v. MCEBuddy realiza esta conversión bien cuando Plex ejecuta el posprocesamiento o al añadir un archivo .ts directamente a la cola de MCEBuddy. Cada vez que ocurre esta conversión funciona exactamente como se espera: el archivo se convierte y los subtítulos se incrustan en el .m4v resultante. Nótese que no fue necesario activar Extract closed captions and subtitles para que esto ocurriera. Cuando digo subtítulos “incrustados” me refiero a que están dentro del .m4v resultante y puedo verlos si copio ese .m4v a un directorio nuevo y lo analizo con Handbrake:

  2. (Referida como Second) .m4v.m4v. Con esta conversión tomo la salida de la conversión First (que ya tiene subtítulos incrustados), uso Custom Cuts para crear el archivo .edl y luego Process with MCEBuddy para enviarlo a la cola de MCEBuddy. Aunque la entrada de First sí contiene subtítulos incrustados, estos subtítulos nunca aparecen en la salida de esta segunda tarea de conversión, esté o no activada la opción Extract closed captions and subtitles.

Como mencioné antes, he subido un ejemplo adicional de este escenario creado desde cero en la carpeta compartida (y archivé el ejemplo anterior). En la carpeta compartida ahora deberías ver tres carpetas:

  1. .Archive contiene los archivos anteriores. Puedes ignorarla; solo existe con fines históricos.
  2. First contiene la entrada (.ts), las salidas (.m4v) y el archivo .log de la conversión First descrita arriba. Es decir, la conversión .ts.m4v que funciona correctamente y produce subtítulos incrustados. Las salidas de esta conversión se copiaron a una carpeta nueva y se usaron como entrada para la siguiente tarea (Second).
  3. Second contiene las salidas de la conversión Second descrita. Es decir, la conversión .m4v.m4v junto con su .log tras usar Custom Cuts. Esta carpeta contiene el .m4v resultante que presenta el problema de que los subtítulos no se incrustan.

En resumen, verás que First\NFL Football - S2019E2069 - Kansas City Chiefs at Detroit Lions.m4v contiene subtítulos incrustados, mientras que Second\NFL Football - S2019E2069 - Kansas City Chiefs at Detroit Lions.m4v no los contiene.

Avísame si necesitas cualquier otra información.

Quería consultar sobre este problema. Por favor, házmelo saber si hay alguna información adicional que pueda proporcionar para ayudar a diagnosticarlo y/o resolverlo. También sería valioso saber si la información que he proporcionado es útil y/o si han podido reproducir el problema en su entorno con los datos proporcionados. ¡Gracias!

Veo en los registros que no se pudieron añadir los subtítulos a tu archivo:

→ El proceso terminó con el código -1073741515

Cuando intenté replicarlo aquí con tu configuración y el archivo M4V original, funcionó sin problemas:

2019-10-16T13:53:27 MCEBuddy.AppWrapper.MP4Box → Escritura de archivo ISO: |====================| (100/100)
2019-10-16T13:56:29 MCEBuddy.AppWrapper.MP4Box →
→ El proceso terminó con el código 0
2019-10-16T13:56:38 MCEBuddy.Engine.ConversionJob → Finalizada la adición de subtítulos y capítulos al archivo, tamaño del archivo [KB] 10,283,663.00

Hay algún problema con tu configuración que impide que MP4Box añada los subtítulos. Veo que tienes espacio suficiente, así que realmente no sé. Solo puedo sugerir que pruebes con una unidad de disco diferente para tu carpeta temporal o con otro ordenador.

OK, genial, gracias por tu ayuda y tu respuesta, @RBoy… Todavía estoy tratando de entender las distintas configuraciones aquí, así que por favor ten paciencia. En la tarea de conversión First también veo este mismo código de error por parte de MP4Box, pero en esta tarea logra incrustar los subtítulos como se espera.

También tenía la impresión de que Handbrake se usa para incrustar subtítulos, así que no estoy 100% seguro de que MP4Box sea el culpable aquí (o al menos aún no lo entiendo). Hay muchas piezas en movimiento, sin duda. :sweat_smile:

Handbrake se usa para grabar subtítulos (no para incrustarlos).

MP4Box es el último paso del proceso para incrustar los subtítulos; los registros muestran que no hay subtítulos en el archivo después de terminar, ahí radica el problema. No estoy seguro del porqué, como dije, tu archivo y perfil funcionan bien aquí. Puedes probar con un disco duro/computadora diferente y ver si eso ayuda.

Volví a revisar tus registros; en el primer caso los subtítulos formaban parte del flujo TS almacenado como subtítulos ocultos. Usabas un perfil personalizado que indicaba a HandBrake que utilizara esos subtítulos ocultos integrados y los conservara, por eso funcionó:

2019-09-27T08:19:21 MCEBuddy.AppWrapper.Handbrake → + subtitle tracks:
2019-09-27T08:19:21 MCEBuddy.AppWrapper.Handbrake → + 1, español, Closed Caption [CC608]

Una opción que puedes probar es activar la opción Skip remuxing en la configuración experta, lo que permitirá que HandBrake trabaje directamente sobre el archivo M4V original en lugar del archivo TS remuxado; así podría detectar los subtítulos integrados y funcionar con ellos.

Ah, así que para asegurarme de entender, ¿estás diciendo que los registros indican que los subtítulos no están incrustados, pero en realidad sí lo están en el archivo resultante? Puedo abrir First\\NFL Football - S2019E2069 - Kansas City Chiefs at Detroit Lions.m4v en Handbrake o VLC y ver los subtítulos incrustados como resultado de la primera tarea de conversión. Nuevamente, el archivo de registro para esta tarea contiene el mismo código de error que se encuentra en ese archivo de registro que mencionaste anteriormente con Second.

Desafortunadamente, no tengo otra máquina/entorno disponible para probar esto, así que tendré que ver si puedo hacer que funcione con la configuración actual si es posible.

En la primera conversión, tu archivo original es un archivo TS que contiene subtítulos cerrados. MCEBuddy extrae esos subtítulos como un archivo SRT, pero no puede incrustarlos porque MP4Box falla.

Sin embargo, tienes un perfil personalizado y en tu perfil indicas a HandBrake que busque subtítulos cerrados durante la conversión; este encuentra esos subtítulos cerrados multiplexados en el flujo TS y automáticamente los convierte en un archivo SRT incrustado.

Durante la segunda conversión, comienzas con un archivo M4V que ya tiene el archivo SRT incrustado; MCEBuddy extrae el archivo SRT y remultiplexa el M4V al formato TS para procesarlo (lo cual no contiene subtítulos ni subtítulos cerrados), por lo que cuando llega a HandBrake no detecta nada y cuando MCEBuddy intenta finalmente devolver esos subtítulos al contenedor, falla en tu configuración.

Tienes tres opciones:

  1. Probar en otro equipo donde MP4Box no falle (aquí funciona en Windows 10, 64 bits).
  2. Habilitar la opción Skip remuxing para tu segunda tarea de conversión (de esta forma MCEBuddy no remultiplexará el M4V a TS y, cuando HandBrake reciba el M4V original, podrá detectar el archivo SRT incrustado y conservarlo).
  3. Modificar tu perfil para la segunda conversión para indicarle a HandBrake que use el archivo SRT que extrae MCEBuddy junto con el archivo TS remultiplexado en la carpeta temporal e incrustarlo en tu M4V convertido. Intenta añadir --srt-file <source_without_ext>.srt a la línea handbrake-video de tu perfil. Consulta inserting special commands para más detalles sobre cómo funciona <source_without_ext>.

¡Ok! Ahora tiene sentido para mí, @RBoy. Gracias por tomarte el tiempo y tener la paciencia de explicármelo. Creo que ahora tengo suficiente para dar los próximos pasos. Intentaré ver si puedo hacer que funcione el comando --srt-file, y si no, veré si puedo averiguar qué está pasando con la máquina que arroja el error de MP4Box.

Gracias de nuevo a ti y a todos allí por su gran trabajo con este producto y —aún más importante— por brindarle soporte. :+1:

De nada, tómate un minuto para ayudarnos a difundir la palabra

Qué curioso, mientras probaba cosas aquí. :sweat_smile: Estaba revisando este hilo y parece que pasé por alto tu publicación anterior y esta sugerencia posterior.

Intenté crear una nueva tarea de conversión con SkipRemux=True. Cuando la ejecuto sobre el .m4v de la primera tarea, parece que los subtítulos se exportan correctamente, ¡hurra! Sin embargo, no parece respetar el .edl creado por Custom Cuts, ¡uf!

Así que quería ver si hay algo obvio que considerar. Lo que me gusta de este enfoque es que puedo desactivar la opción Extract closed captions and subtitles y ahorrarme un archivo extra por cada conversión.