Використання ffmpeg для створення фільму з файлів png


11

У мене 277 файлів 800x600 png з назви файлів у форматі island_size-CSH (II) - ###. Png, де ### - це число, починаючи з 084 і закінчуючи на 360.

Я роблю

ffmpeg -i island_sizes-CSH\(II\)-*.png output.mpg -y

але це не працює:

ffmpeg -f image2 -i острів_ розміри-CSH \ (II \) - *. png video.mpg -y
ffmpeg версія 1.2.1 Авторські права (c) 2000-2013 розробники FFmpeg
  побудований 10 травня 2013 15:14:14 з gcc 4.4.6 (GCC) 20120305 (Red Hat 4.4.6-4)
  конфігурація: --prefix = / usr --libdir = / usr / lib64 --shlibdir = / usr / lib64 --mandir = / usr / share / man --enable-shared --enable-runtime-cpudetect --enable- gpl --enable-version3 --enable-postproc --enable-avfilter --enable-pthreads --enable-x11grab --enable-vdpau --disable-avisynth --enable-frei0r --enable-libopencv --enable- libdc1394 --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --extra-cflags = '- O2 -g -pipe -Wall -Wp, -D_FORTIFY_SOURCE = 2 -fexceptions - fstack-protector --param = ssp-buffer-size = 4 -m64 -mtune = generic -fPIC '- відключити-знімати
  libavutil 52. 18.100 / 52. 18.100
  libavcodec 54. 92.100 / 54. 92.100
  libavformat 54. 63.104 / 54. 63.104
  libavdevice 54. 3.103 / 54. 3.103
  libavfilter 3. 42.103 / 3. 42.103
  libswscale 2. 2.100 / 2. 2.100
  libswresample 0. 17.102 / 0. 17.102
  libpostproc 52. 2.100 / 52. 2.100
Введення № 0, зображення2, з 'island_sizes-CSH (II) -084.png':
  Тривалість: 00: 00: 00.04, початок: 0,000000, бітрейт: N / A
    Потік № 0: 0: Відео: png, rgba, 800x600 [SAR 3937: 3937 DAR 4: 3], 25 tbr, 25 tbn, 25 tbc
[png @ 0x1468c20] помилка ff_frame_thread_encoder_init
Виведіть # 0, image2, для 'island_size-CSH (II) -085.png':
    Потік № 0: 0: Відео: png, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90k tbn, 25 tbc
Виведіть №1, image2, на 'island_size-CSH (II) -086.png':
    Потік №1: 0: Відео: png, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90k tbn, 25 tbc
...
Виведіть # 274, image2, для 'island_size-CSH (II) -359.png':
    Потік №274: 0: Відео: немає, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90k tbn, 25 tbc
Виведіть № 275, image2, для 'island_sizes-CSH (II) -360.png':
    Потік № 275: 0: Відео: немає, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90k tbn, 25 tbc
Виведіть № 276, mpeg, на "video.mpg":
    Потік №276: 0: Відео: жодне, yuv420p, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90k tbn, 25 tbc
Потокове відображення:
  Потік № 0: 0 -> # 0: 0 (png -> png)
  Потік № 0: 0 -> # 1: 0 (png -> png)
...
  Потік № 0: 0 -> # 274: 0 (png -> png)
  Потік № 0: 0 -> # 275: 0 (png -> png)
  Потік № 0: 0 -> # 276: 0 (png -> mpeg1video)
Помилка під час відкриття кодера для вихідного потоку №218: 0 - можливо, неправильні параметри, такі як бітрейт, швидкість, ширина або висота

Від man mencoder:, mencoder "mf://*.jpg" -mf fps=25 -o output.avi -ovc lavc -lavcopts vcodec=mpeg4схоже на ffmpeg
Eddy_Em

1
@Eddy_Em Це не схоже на ffmpeg- mencoderмає зовсім інший синтаксис, на жаль.
slhck

1
mencoder працював на мене! Дякую. Мені чесно все одно, якою програмою я користуюся - тільки що я отримаю фільм.
rhombidodecahedron

Відповіді:


23

Це неправильний синтаксис для передачі декількох зображень як вхідних даних ffmpeg. Перегляньте посібник з Вікі FFmpeg про створення відео слайд-шоу та параметри image2деміксера .

Потрібно сказати йому, щоб використовувати три цифри для порядкових чисел, і почати з 84, тобто

ffmpeg -start_number 84 -i island_sizes-CSH\(II\)-%03d.png output.mpg

Ще кілька порад:

  • MPEG-1 як відеокодек є менш оптимальним і забезпечує низьку якість при великих розмірах файлів. Якщо ви не хочете сумісності із старими пристроями чи комп’ютерами (або Windows XP без кодеків), подряпайте їх та використовуйте кодер MPEG-4, частина 10 (H.264), наприклад libx264:

    ffmpeg -i … -c:v libx264 out.mp4
    

    Для підручника з параметрами x264 (як змінити якість тощо) перевірте посібник з кодування x264 .

  • Файли PNG використовують формат пікселів RGB, який не підтримується у звичайних відеокодеках. З MPEG-1 це не має значення, але з кодеками MPEG-4 це буде, оскільки ffmpegавтоматично перетворить формат пікселів у непідпробований YUV. У такому випадку вам потрібно перекласти це у формати, що не містять кольорів, таких як YUV 4: 2: 0, інакше ваше відео може не відтворюватися у більшості програм:

    ffmpeg -i … -c:v libx264 -pix_fmt yuv420p out.mp4
    

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