Виправте погані файли та потоки за допомогою ffmpeg, щоб VLC та інші плеєри не вийшли з ладу


17

У мене багато разів траплялося, що я міг опинитися у зіпсованих відеофайлах:

  • відео, завантажене з офіційних джерел, але з торрентами, і чомусь не всі фрагменти є у .mkv, .ts або .mp4
  • записи у форматі .ts, де в певний момент дані відсутні
  • скопійовано відео зі старого жорсткого диска з пошкодженими секторами

Коли я відтворюю це відео з VLC або іншими програвачами, вони грають до певного моменту, а потім миттєво виходять. Іноді я можу спробувати пропустити погану частину, але я можу зустріти інший поганий сектор і знову встановити кинець.

Питання:

Чи можу я виправити цю проблему (я вважаю, пов’язану з потоком та ключовими кадрами) за допомогою ffmpeg, а може бути, в режимі копіювання -c, тому мені не доведеться все перетискати?

Що я хочу досягти - це відео з повною довжиною, де пропущені деталі пропускаються, я вважаю за краще збій, а не збій моїх відео.


Відповіді:


26

Якщо частини файлу знаходяться на фізично поганих секторах або з будь-якої причини ОС не може подати весь файл до FFmpeg, то, природно, FFmpeg нічого не може з цим зробити. Ви повинні отримати утиліту, яка може ігнорувати ці частини та записувати врятовані частини в новий файл, наприклад, ddrescue .

Тепер, якщо файловий протокол не є причиною помилок, можна спробувати

ffmpeg -err_detect ignore_err -i video.mkv -c copy video_fixed.mkv

1
Це працює, але не вдається -c copy. Дивно, що він не працює під час перекодування.
інтуїтоване

Навіть при цьому я все одно отримую Invalid data found when processing input- і ffmpeg здається.
Михайло Т.

Гарне рішення ... якщо атом moov (у файлі MP4) ще десь присутній. Що робити, якщо його навіть немає?
Гвінет

Це працює в моєму кінці з дивовижною добротою :)
shirish

5

У пошуках кращої відповіді можливим способом може бути:

ffmpeg -i video.mkv -c copy video_fixed.mkv

Однак я впевнений, що є кілька додаткових варіантів, які можуть зробити результат ще кращим ..


1
Працює для мене щоразу, коли у мене виникають проблеми з метаданими, часовими позначками або інформацією про контейнери. І це дуже швидко, як правило, швидше, ніж 400x playpeed.
user24601

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