Использование ffmpeg для создания фильма из файлов png


11

У меня есть 277 800x600 png файлов с именами файлов в формате island_sizes-CSH (II) - ###. Png, где ### - это число, начинающееся с 084 и заканчивающееся на 360.

я делаю

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

но это не работает:

ffmpeg -f image2 -i island_sizes-CSH \ (II \) - *. png video.mpg -y
ffmpeg версия 1.2.1 Copyright (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 -exxceptions - fstack-protector --param = ssp-buffer-size = 4 -m64 -mtune = универсальный -fPIC '--disable-stripping
  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, image2, из 'island_sizes-CSH (II) -084.png':
  Длительность: 00: 00: 00.04, старт: 0.000000, битрейт: н / д
    Поток № 0: 0: видео: png, rgba, 800x600 [SAR 3937: 3937 DAR 4: 3], 25 тбр, 25 тбн, 25 тбк
[png @ 0x1468c20] Ошибка ff_frame_thread_encoder_init
Выведите # 0, image2, в 'island_sizes-CSH (II) -085.png':
    Поток # 0: 0: видео: png, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 кбит / с, 90 тыс. Тбн, 25 тбк
Выведите # 1, image2, в 'island_sizes-CSH (II) -086.png':
    Поток # 1: 0: видео: png, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 кбит / с, 90 тыс. Тбн, 25 тбк
...
Выведите # 274, image2, в 'island_sizes-CSH (II) -359.png':
    Поток # 274: 0: Видео: нет, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 кбит / с, 90 тыс. Тбн, 25 тбк
Выведите # 275, image2, в 'island_sizes-CSH (II) -360.png':
    Поток # 275: 0: Видео: нет, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 кбит / с, 90 тыс. Тбн, 25 тбк
Выведите # 276, mpeg, в «video.mpg»:
    Поток # 276: 0: видео: нет, yuv420p, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 кбит / с, 90 тыс. Тбн, 25 тбк
Отображение потока:
  Поток № 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 - возможно, неверные параметры, такие как bit_rate, скорость, ширина или высота

От 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 работал на меня! Спасибо. Мне, честно говоря, все равно, какую программу я использую - только то, что я получаю фильм.
ромбододекаэдр

Ответы:


23

Это неправильный синтаксис для передачи нескольких изображений в качестве входных данных ffmpeg. Пожалуйста, ознакомьтесь с руководством FFmpeg Wiki по созданию видео слайд-шоу и image2опциями демультиплексора .

Вы должны указать, чтобы использовать три цифры для порядковых номеров, и начать с 84, то есть

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

Некоторые дополнительные советы:

  • MPEG-1 в качестве видеокодека менее оптимален и дает плохое качество при больших размерах файлов. Если вам не нужна совместимость со старыми устройствами или компьютерами (или Windows XP без каких-либо кодеков), поцарапайте это и используйте кодер MPEG-4 Part 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
    

Вы. Вы мне нравитесь.
ромбододекаэдр
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.