ffpmeg отбрасывает последний кадр при сжатии из MP4 в MP4 (libx264)

Итак, я использую этот код для сжатия моего файла * mp4. Мне нужно снизить качество и снизить битрейт:

ffmpeg -i input.mp4 -c:v libx264 output.mp4

Проблема в том, что последний кадр отснятого материала теряется после сжатия ffmpeg. Снимок экрана находится здесь: screenshot_ffmpeg_drop frame

Я попытался использовать все необходимые мне настройки, но проблема та же.

ffmpeg -i input.mp4 -c:v libx264 -vf scale=1280:720 -preset fast -crf 29 -r 25 -c:a copy output.mp4

файл журнала во время кодирования ffmpeg:

Вход # 0, mov, mp4, m4a, 3gp, 3g2, mj2, из '\ input.mp4': Метаданные: major_brand: mp42 minor_version: 0 Compatible_brands: mp42mp41 creation_time: 2018-10-28T11: 06: 03.000000Z Продолжительность: 00 : 00: 12.76, начало: 0.000000, битрейт: 5374 кб / с Поток # 0: 0 (eng): Видео: h264 (High) (avc1 / 0x31637661), yuv420p (tv, bt709), 1920x1080 [SAR 1: 1 DAR 16: 9], 5368 кб / с, 25 кадров в секунду, 25 tbr, 50k tbn, 50 tbc (по умолчанию) Метаданные: creation_time: 2018-10-28T11: 06: 03.000000Z handler_name: Alias ​​Data Handler encoder: кодирование AVC

Отображение потока: поток № 0: 0 -> # 0: 0 (h264 (собственный) -> h264 (libx264)) Нажмите [q], чтобы остановить, [?] Для получения справки [libx264 @ 000002fae8b50780] с использованием SAR = 1/1 [ libx264 @ 000002fae8b50780] с использованием возможностей процессора: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 [libx264 @ 000002fae8b50780] профиль Высокий, уровень 3.1 [libx264 @ 000002fae8b50780 / код MPX1 - 7d AVC 155-290] 264 - 7d AVC Copyleft 2003-2018 - http://www.videolan.org/x264.html - параметры : cabac = 1 ref = 2 deblock = 1: 0: 0 analysis = 0x3: 0x113 me = hex subme = 6 psy = 1 psy_rd = 1.00: 0.00 mixed_ref = 1 me_range = 16 chroma_me = 1 trellis = 1 8x8dct = 1 cqm = 0 мертвая зона = 21,11 fast_pskip = 1 chroma_qp_offset = -2 потока = 12 lookahead_threads = 2 sled_threads = 0 nr = 0 decimate = 1 interlaced = 0 bluray_compat = 0 constrained_intra = 0 bframes = 3 b_pyramid = 2 b_adapt = 0 direct b_bias = 1 weightb = 1 open_gop = 0 weightp = 1 keyint = 250 keyint_min = 25 scenecut = 40 intra_refresh = 0 rc_lookahe ad = 30 rc = crf mbtree = 1 crf = 29.0 qcomp = 0.60 qpmin = 0 qpmax = 69 qpstep = 4 ip_ratio = 1.40 aq = 1: 1.00 Выход # 0, mp4, to '\ output.mp4': Метаданные: major_brand: mp42 minor_version: 0 совместимые_бренды: mp42mp41 кодировщик: Lavf58.17.100 Поток # 0: 0 (eng): Видео: h264 (libx264) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1: 1 DAR 16: 9], q = - 1--1, 25 кадров в секунду, 12800 бит в секунду, 25 бит в секунду (по умолчанию) Метаданные: creation_time: 2018-10-28T11: 06: 03.000000Z handler_name: Alias ​​Data Handler encoder: Lavc58.19.104 libx264 Дополнительные данные: cpb: битрейт макс / мин / avg: 0/0/0 размер буфера: 0 vbv_delay: -1

кадр = 318 кадров в секунду = 127 q = -1,0 Lsize = 855 кБ время = 00: 00: 12,60 битрейта = 556,0 кбит / с скорость = 5,05x видео: 851 кбайт аудио: 0 кбайт субтитры: 0 кбайт другие потоки: 0 кбайт глобальные заголовки: 0 кбайт накладные расходы на мультиплексирование: 0,534683% [libx264 @ 0000015d5cef0500] кадр I: 2 Средний QP: 26,18 размер: 67800 [libx264 @ 0000015d5cef0500] кадр P: 80 Средний QP: 27,93 размер: 5439 [libx264 @ 0000015d5cef0500] кадр B: 236 Средний размер QP: 32,469 [libx264 @ 0000015d5cef0500] последовательные B-кадры: 0,9% 0,0% 0,9% 98,1% [libx264 @ 0000015d5cef0500] mb I I16..4: 10,6% 62,5% 26,8% [libx264 @ 0000015d5cef0500] mb P I16..4: 0,5% 1,0% 0,2% P16..4: 36,1% 5,1% 3,6% 0,0% 0,0% skip: 53,6% [libx264 @ 0000015d5cef0500] mb B I16..4: 0,6% 0,5% 0,0% B16..8: 22,2% 0,6% 0,0% прямой: 2,0% пропуск: 74,2% L0: 44,9% L1: 54,5% BI: 0,6% [libx264 @ 0000015d5cef0500] 8x8 преобразование intra: 55,0% inter: 86,2% [libx264 @ 0000015d5cef0500] закодировано y, uvDC, uvAC intra: 48,1% 54,9% 27,0% между: 3,2% 5,2% 0,2% [libx264 @ 0000015d5ce f0500] i16 v, h, dc, p: 19% 56% 10% 15% [libx264 @ 0000015d5cef0500] i8 v, h, dc, ddl, ddr, vr, hd, vl, hu: 19% 25% 18% 5 % 6% 5% 8% 5% 8% [libx264 @ 0000015d5cef0500] i4 v, h, dc, ddl, ddr, vr, hd, vl, hu: 27% 24% 9% 5% 8% 7% 9% 5 % 7% [libx264 @ 0000015d5cef0500] i8c dc, h, v, p: 60% 20% 15% 4% [libx264 @ 0000015d5cef0500] Взвешенные P-кадры: Y: 0,0% UV: 0,0% [libx264 @ 0000015d5cef0500] ref P L0: 67,7% 32,3% [libx264 @ 0000015d5cef0500] ref B L0: 80,4% 19,6% [libx264 @ 0000015d5cef0500] ref B L1: 92,1% 7,9% [libx264 @ 0000015d5cef0500] кбит / с: 547,35


person Usoboi    schedule 28.10.2018    source источник


Ответы (1)


Использовать

ffmpeg -ignore_editlist 1 -i input.mp4 ... output.mp4
person Gyan    schedule 28.10.2018
comment
Гиан, спасибо за помощь. Я попробовал ваш код, но последний кадр все равно пропал. Кстати, у меня нет аудиопотока во входном видео (если это имеет значение) - person Usoboi; 28.10.2018
comment
Это справочный видеофайл: 127923.selcdn.ru/links/input.mp4 Тайм-код на экране 00: 00: 12: 18 в последнем кадре, но после сжатия ffmpeg это 00: 00: 12: 17 - person Usoboi; 28.10.2018
comment
Вот почему вы должны опубликовать полный журнал. Соответствующие сообщения были напечатаны перед вставленной частью. Cmd отредактировал. Вам нужно добавить только один вариант. - person Gyan; 28.10.2018
comment
Спасибо! Работает нормально! Я был бы очень признателен, если бы вы могли объяснить решение. - person Usoboi; 28.10.2018