1 votos

¿Cómo extraer video y audio de un archivo dañado con la falta de coincidencia de ID de códec (tipo de pista incorrecta)?

El Problema:
Hay un montón de archivos de vídeo que sólo se puede reproducir con un reproductor personalizado y me gustaría aplicar ingeniería inversa para que el vídeo pueda ser reproducido en común de los medios de comunicación los jugadores (como VLC o MPC).

Lo que he descubierto hasta ahora:

  • El sondeo de los archivos reveló que se EBML tipo que es utilizado por el Matroska Medios de contenedores.

  • Así que he cambiado la extensión de archivo .mkv y examinó el archivo con MKVToolNix y FFMPEG.

  • MKVToolNix sondeo reveló que había una pista de vídeo codificados con h.264 y una pista de audio codificados con AC3 codificación.

  • Pero la pista de audio que había sido "marcado" como un vídeo y la pista de vídeo como de audio, haciendo deliberadamente el cambio de la "pista" tipo de etiqueta.

MKVToolNix captura de pantalla de la información de la ruta:

MKVToolNix screenshot of the track info

  • FFMPEG también confirma la misma:

[matroska,webm @ 0x7f966c800a00] no se pudo abrir el códec en avformat_find_stream_info

[h264 @ 0x7f966c811a00] tipo de Códec o de identificación de los desajustes
[ac3 @ 0x7f966c812600] tipo de Códec o de identificación de los desajustes

[matroska,webm @ 0x7f966c800a00] no se Pudo encontrar el códec de parámetros de corriente de 0 (Audio: h264 (Alta), 0 canales): sin especificar frecuencia de muestreo Considere la posibilidad de aumentar el valor de la 'analyzeduration' y 'probesize' opciones

[matroska,webm @ 0x7f966c800a00] no se Pudo encontrar los parámetros de codec para la secuencia 1 (Video: ac3, ninguno, 192 kb/s): sin especificar tamaño Considere la posibilidad de aumentar el valor de la 'analyzeduration' y 'probesize' opciones

(redactado)

Duración: 01:46:42.00, inicial: 0.035000, el bitrate: 2629 kb/s
... Flujo de #0:0(eng): Audio: h264 (Alta), 0 canales (por defecto)

Secuencia #0:1(eng): Video: ac3, ninguno, 192 kb/s, 31.25 fps, 31.25 tbr, 1k tbn, 1k tbc (predeterminado)

Dudas:

  1. Es posible editar el contenedor Matroska y cambiar el "tipo de pista" etiqueta de los medios de comunicación pistas?

  2. Es posible el uso de ffmpeg para especificar la entrada correcta códec de vídeo y la pista de audio, y extraer de ellos (preferiblemente sin reencoding)?

1voto

sfxedit Puntos 16

Yo no podía presentar cualquier EBML editor o Matroska contenedor Multimedia editor que me permita cambiar fácilmente los valores de la "tipo de pista" en la Matroska.

Así que fue por usar un Editor Hexadecimal para editar los archivos binarios directamente. Habría sido una tarea que requiere tiempo si no para el MKVToolNix. El MKVToolNix herramienta de Información incluye ahora la ingeniosa función de especificar la posición de los datos (de una etiqueta) en un archivo Matroska!

Según el "Tipo de Pista: audio" se encuentra en la posición 414 y "Tipo de Pista: video" se encuentra en la posición 532 en el archivo Matroska.

Captura de pantalla de MKVToolNix Vista de la Información:

screenshot of MKVToolNix Info View

Después de abrir el archivo en el editor hexadecimal, sólo la búsqueda de los datos en la posición apuntada por MKVToolNix Info. Captura de pantalla:

screenshot of Hex Editor

Encontramos que la posición 414 contiene los datos 83 81 02 (audio - para la etiqueta 'el Tipo de Pista') y la posición 532 tiene los datos 83 81 01 (video - para la etiqueta 'el Tipo de Pista'). Tan sólo necesitamos de intercambio y reemplazar este tipo de datos.

(Un grito a Synalyze! Pro para macOS - he utilizado la versión de prueba - para la fabricación de hex de edición así de simple!!!)

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: