¿Por qué FFmpeg agrega video negro en blanco al final de mis archivos MP4 cuando los comprimo desde MOV?

¿Por qué FFmpeg agrega video negro en blanco al final de mis archivos MP4 cuando los comprimo desde MOV?

Tengovarios archivos MOV grandesque quiero comprimir a MP4.

Desafortunadamente, cuando uso FFmpeg, agrega muchos videos negros (en blanco) al final.

(El archivo de destino es más largo que el archivo de origen).

Por ejemplo, tengo un archivo que tiene una duración de 02:22:01 (y los registros de salida de FFmpeg lo confirman).

Pero cuando ejecuto el siguiente comando (que tarda más de 20 minutos incluso en "ultrarápido"), obtengo un archivo MP4 que se ve bastante bien pero tiene muchos fotogramas negros añadidos al final, de modo que la duración total del vídeo es 3:59. :59.

ffmpeg -i "F:\video_project\uncompressed\Tape_12.mov" -vcodec libx264 -preset ultrafast -crf 18 -n -threads 16 -f mp4 "F:\video_project\compressed\Tape_12.mp4" 2>&1

Esto también sucede con mis otras conversiones de MOV a MP4. La duración del vídeo negro añadido al final puede ser de 20 a 80+ minutos (no es la misma para cada vídeo diferente).

¿Qué estoy haciendo mal?

Mis registros están aquí.

PD: Estoy usando PowerShell 4 en Windows 7.

Actualizar:

En respuesta a Lord NeckBeard, cuando ejecuto ffmpeg.exe -i F:\video_project\compressed\Tape_12.mp4, el resultado es:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'F:\video_project\compressed\Tape_12.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf55.22.101
  Duration: 03:59:59.94, start: 0.033333, bitrate: 5389 kb/s
    Stream #0:0(eng): Video: h264 (High 4:2:2) (avc1 / 0x31637661), yuv422p, 720x480 [SAR 10:11 DAR 15:11], 5252 kb/s, 29.97 fps, 29.97 tbr, 11988 tbn, 59.94 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 128 kb/s (default)
    Metadata:
      handler_name    : SoundHandler

En respuesta a Rajib, cuando ejecuto ffmpeg.exe -i F:\video_project\uncompressed\Tape_12.mov, el resultado es:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'F:\video_project\uncompressed\Tape_12.mov':
  Metadata:
    creation_time   : 2014-01-05 02:35:17
  Duration: 02:22:01.04, start: -6.064083, bitrate: 51226 kb/s
    Stream #0:0(eng): Video: dvvideo (dvc  / 0x20637664), yuv411p, 720x480 [SAR 8:9 DAR 4:3], 28771 kb/s, SAR 10:11 DAR
15:11, 29.97 fps, 29.97 tbr, 2997 tbn, 29.97 tbc (default)
    Metadata:
      creation_time   : 2014-01-05 06:35:18
      handler_name    : Apple Alias Data Handler
    Stream #0:1(eng): Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, mono, s16, 768 kb/s (default)
    Metadata:
      creation_time   : 2014-01-05 06:35:18
      handler_name    : Apple Alias Data Handler
    Stream #0:2(eng): Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, mono, s16, 768 kb/s (default)
    Metadata:
      creation_time   : 2014-01-05 06:35:18
      handler_name    : Apple Alias Data Handler

Respuesta1

El problema probablemente sea que no estás acelerando la pista de audio por lo que el nuevo vídeo dura tanto como el original. Elimine la pista de audio con la opción -an o acelere según corresponda con la opciónatempofiltro de audio.

información relacionada