Недостаточно памяти на ffmpeg при конвертации в H265

У меня есть куча видеофайлов, в основном H264. Чтобы сохранить память, я написал пакетный скрипт, который конвертирует их в H265 с помощью ffmpeg. Проблема: из-за некоторых файлов ffmpeg использует ВСЕ мою память (24 ГБ). Затем происходит сбой (потому что он пытается выделить еще больше оперативной памяти), что останавливает процесс преобразования.

Я думаю, что эти файлы повреждены в некотором роде. Потому что с другими файлами он хорошо работает с низким потреблением памяти. Теперь я хочу отклонить эти сломанные, так что возможно автоматическое преобразование.

Как можно обнаружить такую ​​коррупцию? Может ли ffmpeg сделать это, или требуется сторонний инструмент?

Мой вызов ffmpeg

set crf=20
set codec=265

ffmpeg -hide_banner -i "!fullSourcePath!" -c:v libx%codec% -crf %crf% "%targetPath%\!targetFileName!"

мквалидатор не может помочь

mkvalidator говорит, что поврежденный файл действителен:

mkvalidator.exe "V:\Filme\_LegacyFormat\22 Jump Street.mkv"
........................................................................................................................
WRN0D0: There are 5306 bytes of void data..

mkvalidator 0.5.0: the file appears to be valid
        file created with libebml v1.3.0 + libmatroska v1.4.1 / mkvmerge v6.9.1 ('Blue Panther') 64bit built on Apr 18 2014 18:23:38

eac3to331 тоже не может помочь

Я нашел инструмент eac3to331, который имеет check флаг. Но это не дало мне никаких ошибок, хотя проверенный файл кажется поврежденным (приводил к падению моего компьютера через несколько минут после запуска ffmpeg)

eac3to.exe -check "V:\Filme\_LegacyFormat\22 Jump Street.mkv"
MKV, 1 video track, 2 audio tracks, 1 subtitle track, 1:51:57, 24p /1.001
1: h264/AVC, English, 1920x808 24p /1.001 (240:101)
2: DTS, German, 5.1 channels, 1509kbps, 48kHz
3: DTS, English, 5.1 channels, 1509kbps, 48kHz
4: Subtitle (SRT), German
v01 Extracting video track number 1...
a02 Extracting audio track number 2...
a03 Extracting audio track number 3...
s04 Extracting subtitle track number 4...
Video track 1 contains 161039 frames.
eac3to processing took 1 minute, 26 seconds.
Done.

0 ответов

Другие вопросы по тегам