Чому FFmpeg додає чистий чорний відео до кінця моїх файлів MP4 при стисненні з MOV?


1

У мене є кілька великих MOV файлів що я хочу стиснути до MP4.

На жаль, коли я використовую FFmpeg, він додає багато чорного (порожнього) відео в кінці.

(Файл призначення довший за вихідний файл.)

Наприклад, у мене є файл, який є 02:22:01 за тривалістю (і FFmpeg вихідні журнали підтверджують це).

Але коли я запускаю наступну команду (яка займає більше 20 хвилин, навіть на "ультрашвидкий"), я отримую MP4 файл, який виглядає в основному добре, але має багато чорних кадрів додається до кінця, так що загальна тривалість відео стає 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

Це відбувається і з іншими перетвореннями MOV-MP4. Тривалість чорного відео, що додається до кінця, може становити від 20 до 80 хвилин (це не однаково для кожного відео).

Що я роблю неправильно?

Мої журнали тут .

P.S. Я використовую PowerShell 4 у Windows 7.

Оновити:

У відповідь на LordNeckBeard, коли я біжу ffmpeg.exe -i F:\video_project\compressed\Tape_12.mp4, результатом є:

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

У відповідь на Раджиба, коли я біжу ffmpeg.exe -i F:\video_project\uncompressed\Tape_12.mov, результатом є:

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

Що робить ffmpeg скажімо про тривалість виходу? ffmpeg -i Tape_12.mp4 Що говорить вам тривалість 3:59:59? Вся інформація повинна бути включена у ваше запитання, замість того, щоб покладатися на зовнішні ресурси (можна пропустити багаторазове повторення) frame= рядків).
llogan

@LordNeckbeard, ffmpeg та Windows Explorer (перегляд "Деталі") обидва кажуть, що тривалість mp4 становить 3:59:59. Я вставлю результат вашого запропонованого запиту вище.
Ryan

@Rajib Я додав потрібну інформацію.
Ryan

@Rajib Я зробив, як ви доручили, і отримані відео були ідентичні MP4 від раніше; кожна з них мала таку ж кількість чорного відео, яке було додано до кожного з них раніше. Журнали знаходяться тут: drive.google.com/…
Ryan

Добре обійти це поставити -t 02:22:01.04 в команді явно, але це не вирішує проблему.
Rajib

Відповіді:


0

Можливо, проблема полягає в тому, що ви не пришвидшуєте звукову доріжку, щоб новий відеозапис залишався таким, як оригінал. Видаліть звукову доріжку за допомогою опції -an або прискоріть її відповідно до атемпо аудіофільтр.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.