Я намагаюся сфотографувати набір зображень, зроблених з інтервалом у 1 секунду, щоб сформувати відео із затримкою. Я подумав, що це буде легко за допомогою ffmpeg, але я стикаюся з криптовалютними помилками.
Усі зображення - yuv420 jpegs, зняті з андроїд-камери. Вони зберігаються як окремі jpegs у папці, всі вони мають однаковий розмір та відформатовані. Вони названі як послідовність 7-значних імен, починаючи з нуля (так "0000000.jpg" до "0001000.jpg", як приклад).
Це мій рядок (імена папок, відредаговані для наочності):
avconv -r 1 -f image2 -i %07d.jpg -vcodec libx264 -crf 18 -preset slower video.mp4
Здається чудово, я бачу безліч дописів від людей, які кажуть, що працює на них.
Однак ffmpeg дає мені це (жирний шрифт вказує на помилку)
ffmpeg версія 0.8.5-6: 0.8.5-1, Copyright (c) 2000-2012 розробники Libav побудований 13 січня 2013 12:05:48 з gcc 4.7.2 *** ЦЕ ПРОГРАМА ЗАВЕРШЕНО *** Ця програма передбачена лише для сумісності і буде видалена в майбутньому випуску. Будь ласка, використовуйте замість avconv. [mjpeg @ 0x233aea0] перечитав 8 Введення № 0, image2, з '% 07d.jpg': Тривалість: 00: 00: 00.04, початок: 0,000000, бітрейт: N / A Потік № 0,0: Відео: mjpeg, yuvj420p, 640x480 [PAR 1: 1 DAR 4: 3], 25 tbr, 25 tbn, 25 tbc Файл "video.mp4" вже існує. Перезаписати? [у / н] у [буфер @ 0x233b340] ш: 640 год: 480 pixfmt: yuvj420p [libx264 @ 0x2339fa0], використовуючи SAR = 1/1 [libx264 @ 0x2339fa0] з використанням можливостей процесора: MMX2 SSE2Fast FastShuffle SSEMislign LZCNT [libx264 @ 0x2339fa0] профіль Головний, рівень 3.1 [libx264 @ 0x2339fa0] 264 - ядро 123 r2189 35cf912 - H.264 / MPEG-4 AVC кодек - Copyleft 2003-2012 - http://www.videolan.org/x264.html - параметри: cabac = 1 ref = 8 deblock = 1: 0: 0 проаналізувати = 0x1: 0x131 мені = umh subme = 9 psi = 1 psy_rd = 1,00: 0,00 змішаний_реф = 0 ме_ранж = 16 chroma_me = 1 треліс = 2 8x8dct = 0 cqm = 0 deadzone = 21,11 fast_pskip = 1 chroma_qp_offset = -2 нитки = 1 sliced_threads = 0 nr = 0 decimate = 1 переплетення = 0 bluray_compat = 0 constrained_intra = 0 bframes = 3 b_pyramid = 0 b_adapt = 2 b_bias = 0 direct = 3 weightb = 0 open_gop = 1 weightp = 2 keyint = 250 keyint_min = 25 scenecut = 40 intra_refresh = 0 rc_lookahead = 60 rc = crf mbtree = 1 crf = 18,0 qcomp = 0,60 qpmin = 0 qpmax = 69 qpstep = 4 ip_ratio = 1,25 aq = 1: 1,00 Вихід №0, mp4, до "video.mp4": Метадані: кодер: Lavf53.21.1 Потік № 0,0: Відео: libx264, yuvj420p, 640x480 [PAR 1: 1 DAR 4: 3], q = -1--1, 25 tbn, 25 tbc Потокове відображення: Потік № 0,0 -> # 0,0 Натисніть ctrl-c, щоб зупинити кодування [mjpeg @ 0x233aea0] перечитав 8 кадр = 0 кадрів в секунду = 0 q = 0,0 Lsize = 0kB час = 10000000000.00 бітрейт = 0,0kbit / s відео: аудіо 0kB: загальні заголовки 0kB: 0kB муксинг накладних 610,000000%
Рядки імпорту (які відображаються червоним кольором) - це ті, що кажуть " [mjpeg @ 0x233aea0] перечитати 8 ".
Це змушує мене думати, що, можливо, він намагається читати зображення як рух jpegs замість простих файлів jpeg, і якимось чином не вдається. Я намагався з / без "-f image2", з тим же результатом. І я також намагався використовувати avconv, з тим же результатом.
Я мушу зазначити, що зображення є дійсними, і якщо я конвертую їх усі в * .png (дорогий і трудомісткий процес), вся справа працює. Але я вважаю за краще просто мати можливість використовувати jpegs без проміжного перетворення. Зрештою, саме для цього є ffmpeg, перекодування.
Хтось має хороший спосіб перетворити * .jpg у відео за допомогою ffmpeg?
convert <input> <output>
?
ffmpeg
від Libav (вилка FFmpeg), що постачається з Ubuntu. Замість цього скористайтеся нещодавньою статичною збіркою зі сторінки завантажень або складіть її самостійно , а потім спробуйте ще раз. Можливо, це була б помилка, яку довго виправляли. Зауважте, що MJPEG чудово підходить як декодер.